From 1dc2418f9aa9ede32eb973488a86d194816bca55 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 16 Jul 2025 06:21:30 +0000 Subject: [PATCH 01/10] Refactor dashboard logic, add JsonIgnore, and improve prediction accuracy calculation Co-authored-by: ram.dafale --- .../controller/DashboardController.java | 108 ++++++++++++++++++ .../TennisPredictionController.java | 30 +---- .../java/com/tennis/entity/HeadToHead.java | 3 + src/main/java/com/tennis/entity/Match.java | 2 + .../com/tennis/entity/MatchPrediction.java | 2 + src/main/java/com/tennis/entity/Player.java | 3 + .../repository/MatchPredictionRepository.java | 2 +- .../controller/DashboardController.class | Bin 0 -> 4027 bytes .../TennisPredictionController.class | Bin 18553 -> 17866 bytes .../com/tennis/entity/HeadToHead.class | Bin 14102 -> 14182 bytes target/classes/com/tennis/entity/Match.class | Bin 27930 -> 27994 bytes .../com/tennis/entity/MatchPrediction.class | Bin 14611 -> 14675 bytes target/classes/com/tennis/entity/Player.class | Bin 21563 -> 21643 bytes .../compile/default-compile/createdFiles.lst | 1 + .../compile/default-compile/inputFiles.lst | 9 +- 15 files changed, 126 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/tennis/controller/DashboardController.java create mode 100644 target/classes/com/tennis/controller/DashboardController.class diff --git a/src/main/java/com/tennis/controller/DashboardController.java b/src/main/java/com/tennis/controller/DashboardController.java new file mode 100644 index 0000000..3f153d5 --- /dev/null +++ b/src/main/java/com/tennis/controller/DashboardController.java @@ -0,0 +1,108 @@ +package com.tennis.controller; + +import com.tennis.entity.*; +import com.tennis.repository.*; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * Dashboard Controller for Tennis Prediction Application + * Handles web dashboard views and pages + */ +@Controller +@RequiredArgsConstructor +@Slf4j +public class DashboardController { + + private final PlayerRepository playerRepository; + private final MatchRepository matchRepository; + private final MatchPredictionRepository predictionRepository; + + /** + * Main dashboard page + */ + @GetMapping("/") + public String dashboard(Model model) { + log.info("Loading main dashboard"); + + // Get live matches + List liveMatches = matchRepository.findByMatchStatus("Live"); + + // Get recent predictions + List recentPredictions = predictionRepository.findRecentPredictions( + LocalDateTime.now().minusHours(24)); + + // Get top players + List topPlayers = playerRepository.findTop10ByOrderByCurrentRankingAsc(); + + // Calculate prediction accuracy + Double predictionAccuracy = predictionRepository.calculatePredictionAccuracy(); + + model.addAttribute("liveMatches", liveMatches); + model.addAttribute("recentPredictions", recentPredictions); + model.addAttribute("topPlayers", topPlayers); + model.addAttribute("predictionAccuracy", predictionAccuracy != null ? predictionAccuracy : 0.0); + + return "dashboard"; + } + + /** + * Matches page + */ + @GetMapping("/matches") + public String matches(Model model) { + log.info("Loading matches page"); + + List allMatches = matchRepository.findAll(); + List liveMatches = matchRepository.findByMatchStatus("Live"); + List completedMatches = matchRepository.findByMatchStatus("Completed"); + + model.addAttribute("allMatches", allMatches); + model.addAttribute("liveMatches", liveMatches); + model.addAttribute("completedMatches", completedMatches); + + return "matches"; + } + + /** + * Players page + */ + @GetMapping("/players") + public String players(Model model) { + log.info("Loading players page"); + + List allPlayers = playerRepository.findAll(); + List topPlayers = playerRepository.findTop10ByOrderByCurrentRankingAsc(); + + model.addAttribute("allPlayers", allPlayers); + model.addAttribute("topPlayers", topPlayers); + + return "players"; + } + + /** + * Predictions page + */ + @GetMapping("/predictions") + public String predictions(Model model) { + log.info("Loading predictions page"); + + List allPredictions = predictionRepository.findAll(); + List recentPredictions = predictionRepository.findRecentPredictions( + LocalDateTime.now().minusHours(24)); + + Double predictionAccuracy = predictionRepository.calculatePredictionAccuracy(); + + model.addAttribute("allPredictions", allPredictions); + model.addAttribute("recentPredictions", recentPredictions); + model.addAttribute("predictionAccuracy", predictionAccuracy != null ? predictionAccuracy : 0.0); + + return "predictions"; + } +} \ No newline at end of file diff --git a/src/main/java/com/tennis/controller/TennisPredictionController.java b/src/main/java/com/tennis/controller/TennisPredictionController.java index 3c3b73c..4dbe046 100644 --- a/src/main/java/com/tennis/controller/TennisPredictionController.java +++ b/src/main/java/com/tennis/controller/TennisPredictionController.java @@ -32,35 +32,7 @@ public class TennisPredictionController { private final MatchPredictionRepository predictionRepository; private final HeadToHeadRepository headToHeadRepository; - // ==================== DASHBOARD ENDPOINTS ==================== - - /** - * Main dashboard page - */ - @GetMapping("/") - public String dashboard(Model model) { - log.info("Loading main dashboard"); - - // Get live matches - List liveMatches = matchRepository.findByMatchStatus("Live"); - - // Get recent predictions - List recentPredictions = predictionRepository.findRecentPredictions( - LocalDateTime.now().minusHours(24)); - - // Get top players - List topPlayers = playerRepository.findTop10ByOrderByCurrentRankingAsc(); - - // Calculate prediction accuracy - Double predictionAccuracy = predictionRepository.calculatePredictionAccuracy(); - - model.addAttribute("liveMatches", liveMatches); - model.addAttribute("recentPredictions", recentPredictions); - model.addAttribute("topPlayers", topPlayers); - model.addAttribute("predictionAccuracy", predictionAccuracy != null ? predictionAccuracy : 0.0); - - return "dashboard"; - } + // ==================== PREDICTION ENDPOINTS ==================== diff --git a/src/main/java/com/tennis/entity/HeadToHead.java b/src/main/java/com/tennis/entity/HeadToHead.java index 21f62ef..673f360 100644 --- a/src/main/java/com/tennis/entity/HeadToHead.java +++ b/src/main/java/com/tennis/entity/HeadToHead.java @@ -1,5 +1,6 @@ package com.tennis.entity; +import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.Data; import lombok.NoArgsConstructor; @@ -24,10 +25,12 @@ public class HeadToHead { @ManyToOne @JoinColumn(name = "player1_id", nullable = false) + @JsonIgnore private Player player1; @ManyToOne @JoinColumn(name = "player2_id", nullable = false) + @JsonIgnore private Player player2; @Column(name = "total_matches") diff --git a/src/main/java/com/tennis/entity/Match.java b/src/main/java/com/tennis/entity/Match.java index cf7fdab..30be78f 100644 --- a/src/main/java/com/tennis/entity/Match.java +++ b/src/main/java/com/tennis/entity/Match.java @@ -1,5 +1,6 @@ package com.tennis.entity; +import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.Data; import lombok.NoArgsConstructor; @@ -126,6 +127,7 @@ public class Match { // Relationships @OneToMany(mappedBy = "match", cascade = CascadeType.ALL) + @JsonIgnore private List predictions; @PrePersist diff --git a/src/main/java/com/tennis/entity/MatchPrediction.java b/src/main/java/com/tennis/entity/MatchPrediction.java index 3dc4cdf..28793a0 100644 --- a/src/main/java/com/tennis/entity/MatchPrediction.java +++ b/src/main/java/com/tennis/entity/MatchPrediction.java @@ -1,5 +1,6 @@ package com.tennis.entity; +import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.Data; import lombok.NoArgsConstructor; @@ -24,6 +25,7 @@ public class MatchPrediction { @ManyToOne @JoinColumn(name = "match_id", nullable = false) + @JsonIgnore private Match match; @Column(name = "prediction_type") diff --git a/src/main/java/com/tennis/entity/Player.java b/src/main/java/com/tennis/entity/Player.java index 22cecb2..69a55ce 100644 --- a/src/main/java/com/tennis/entity/Player.java +++ b/src/main/java/com/tennis/entity/Player.java @@ -1,5 +1,6 @@ package com.tennis.entity; +import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.Data; import lombok.NoArgsConstructor; @@ -104,9 +105,11 @@ public class Player { // Relationships @OneToMany(mappedBy = "player1", cascade = CascadeType.ALL) + @JsonIgnore private List headToHeadAsPlayer1; @OneToMany(mappedBy = "player2", cascade = CascadeType.ALL) + @JsonIgnore private List headToHeadAsPlayer2; @PrePersist diff --git a/src/main/java/com/tennis/repository/MatchPredictionRepository.java b/src/main/java/com/tennis/repository/MatchPredictionRepository.java index 5998904..f32514f 100644 --- a/src/main/java/com/tennis/repository/MatchPredictionRepository.java +++ b/src/main/java/com/tennis/repository/MatchPredictionRepository.java @@ -123,7 +123,7 @@ public interface MatchPredictionRepository extends JpaRepository 0 THEN (COUNT(CASE WHEN mp.isCorrect = true THEN 1 END) * 100.0 / COUNT(mp)) ELSE 0.0 END FROM MatchPrediction mp WHERE mp.isCorrect IS NOT NULL") Double calculatePredictionAccuracy(); /** diff --git a/target/classes/com/tennis/controller/DashboardController.class b/target/classes/com/tennis/controller/DashboardController.class new file mode 100644 index 0000000000000000000000000000000000000000..7c54817c5f9b3629dab256fc6de57babfcb767e9 GIT binary patch literal 4027 zcma)9TYDQ<6FTvbi%q@+&LCcbv!kfacqq`r__{BXht24 zl9&Rev|Q5w<1lI%W25ZqUS&3(6G+=`RUlt- zy{gu**UxQgCAV5Nyd>^9=9rvtjTcuRXl;bz`>gC8ym}J-ECOD>um{~E+xYE;stGfry&C@ z@SKu$+sxq*4l5W?F^D4q&+W-y;E8q1smyEz`>y!9-)smx+b!TQho*1YTFGkoMH&Co zDn5l{0)@I~RxHD}Tql{t7VF;0Pt1f|EHVxD9+Xg&!tOahDkXzC0#Q3a=Pvac~~jh@1m;%(>07ZIab53gm3EI^d<*$YBPv3g%RN z9#>eoKx=iWq;*fPnRi_8me#bidADNP0;*oAO#2jCx#^QDb6x11P~>8H(=`0zNT~kD zY|4$027wRo}L~RD~NQx`t2)&XTuju^n(kThduuY|Z&1b*Xt z@C!K?nD6HeXWW|C>j8!eeoR&cNyVK@!B2KjCoB%9=1qUYtt{!X-T0=wJ_eVYOrvJ5 zSq+P2nRXnP_b0DFuAS?O?;W$Ol_@z*k8QQ9rq6il@=d_<1S%I0nm|@-X-f`UQekV; z5{wskch6Tq68_E$tbL~xcQb2apKusqbIMK`c1u}(E4*6`^NJ;TJJ98^^}NJe(zaU* zZxC72^~oZw{X8q;IG-9#Uga4ak#9SW^72j$KKXtMKKTye=ROF$if6y`ZT`Vh|)@Z85Zy^XOH7C1Gzjq?H*GjeqsEXu{6vHa!n zZA_=}%2@vDL^QfSn2Clj4fgySxxt=~G5<$o4m`w4xRQV6&pbYZZ}In8sQf*|N8?Gp z)J`##(;S_W?-Hgmfy;boT*n!#U=pv>`YvbRrN^Z(1-yrE^Ba@Fcko@Nc?c$6#PZtjWRr>p{sbX2$Yw#HF|#m!ce%B43e!rvt!GAj|O-0l$O-0U07(6MRR! zfLW$GM|iFT0G|uPhyh+~0bD>4dI0bcOCzC9)BgmF0N@DL&`QD@THTAS?h)2q@%RPt zuwy*_M8^yRJ}>cDkMJNHH$pr@UM`H~tr&poEdcVj+F2h7=(519mzed-RK*I0u}VU% z1=)^QkF!0F%^=%jI2@2D9Z=^GGb>Pmo4C(WxOShR?wZ*znOP&sOkCiRveJgk ztQKWPaq(}X$B3|{JeIp2XWLfZOM@9Hx6C7Q^V)J7B?6$3`tSzh*D-)Hv(PEJ3b9xx zFRHBn23I!|EHGkRj2M?iycytfnm(b-&QhXMT$uzy(&~L86k17fNl6u@q}I^0Q&Kzh z^vK%Y#Plmdd>6mwiSO{7oBWjIDUALD{^-~POpcB}z`@ap2RQl{&Zh!J$nFR{nczVo z&bJVBRJmS|f0NQfj$~I2YrQ{BgMKdcbF!b(`VF?Yojm+_ur1J=Pd&s}{{|sX6p0fH S-0ioVOW}7xTaa=59{4}I>FMPF literal 0 HcmV?d00001 diff --git a/target/classes/com/tennis/controller/TennisPredictionController.class b/target/classes/com/tennis/controller/TennisPredictionController.class index b15e7912191db00b3046ddc5543e87fdeedf1fa7..488de43d6bcb8903c3734a7d03900bec9ea0b5a2 100644 GIT binary patch literal 17866 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 literal 18553 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 ZkBE?1{Q59Q=}6_U>PS^28mXp+{{UV@pE&>k diff --git a/target/classes/com/tennis/entity/HeadToHead.class b/target/classes/com/tennis/entity/HeadToHead.class index 22591f8fad5c2adde3ced95ac8de56724e2e407b..eb4f973b52f16d64b7ca20e720933300d077b8fb 100644 GIT binary patch delta 4343 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 diff --git a/target/classes/com/tennis/entity/Match.class b/target/classes/com/tennis/entity/Match.class index c3c597a1127744159e92aab6bb4cac30b1d1251c..b49be5dc0ece6994e38c7cef02c00eb7adbf2ef9 100644 GIT binary patch delta 7085 zcmc(kd3;sH701t+x!HjL3E3bafrMxRNg&9+1c4wnY@)OX7`7xVAt4J8h31t_T-f4c zQ6%hQ3n*%YvdPw>s4cA(S__4O(9+UUvD#V{p}#x#@fe;%eEq9@KHU87d-MC=bI#1% zJ8$lq(|r0ghrV}X-$5ekDO$fCIx8ZhUEYM!X_c#Zx{09htG6ZGR{U9GAeqRPzS=c#F}7c^Zwz zvA}&jvvaEL1r^7Yny-!HL#q-`+efq7XWMO?l7-`XYDgO>hBi_QTCe#MJw8Dhl&SJN znALBL?Tf=zh_+EOZKqV)L22{~wWC)li*_o1l!`yw<0s1IQi{g)r^6LQ0m%aYxC|!& zjBk(y4MQF6Eb`ko*Rt57MHA}HqTJJV;~i}e8{1ZRGQQZpr^}AqsqAqIp?9_RZ5_6X zFPLOVTy7AxLR7CHCqxBbCeG}-2Bf`7V_$<1Y~!3_$7-m6TVc{Q`t%O7%W)6)b;lds zpZmBS^B7-qlF|Hyll7f(yA!g5RSle=la0==Oin8Dy=IM8O>77Cf}Z#=4+16GP(mDx4TcrC~fp*o7&PFRHsI2b;l^Jnw^bpcROu; zQi}17s+-Zg*J!TL%uY3X8r=ts?&g|XRWrwEK4df}_?qMU8r?@7w|nP(dWCY0ZI2nR zl;wM+fhIGD7)Q)Z&FoYt&*Y}##!El0xmAUR8qMz;&2xOs@xzVo6P^m4@1$2~gt6@h z#w*S9z0ydd`6QjX;~wPPMHXsir$VER?vIS_r!}{#P`=T8#u)cvUvvC;qx+nvLQT5p zGqS+g_JXJF;4XSKCmGvbGDfx1H>#;d^JSy?dClxpv&87WVsyW#xm7jGjOMFG^EzL1 ze5J|F4V;PMc6HS&RAp=%ZoHEQ`Ce(Z(cIK%Zm5}^3RN53%@_-ZZ#{0eXl_-Z`QJA4 zDBNQOS7NZw;F%ssH>^VJbyQ$l`Ysy#x@u9_-TpvfnktO5R0;GhRRU=|O#sGOo#3P~ zPG)hH&2*pW7Tx3aWB+b|M`*-tz#|IqxCfBbJz9Hc+zpVg1M(H%37&1rYN98r?@X$Y z9`MBE3ScT!%sFOek-yBzUM7%}74nB>&#-stah00X+8WY{s0{?KmlC* zBh`C{d-zlQQhTL-tNTk8V6Fo|k?$B%)3vPXO{(0Bw2NP^nDcnPsY4_EWk#t5bs1s; zGD;yAn2|9W(wTjC8+UO!GfpuVnwb?Ev)ak# zCHNauq8DlRN1|drWoF*%FEicC1TtMApEe`2G-Un#(LrZ+P|Rn{6Ktl&thYa^^yyLM z^vAQF{O3uI=Mb@t@TJ&nm!kp5kBY<4^II>RByS z0JphN%e1WO9a1%3q+R?P#av-#KIboUg_jBB3WZ#0My}M5_0Oi&I&-yRt}-*9*O>LD zzD7r`ac0wMhv{C{*Ps5V)d{sKsOQZ=t@Agi4PK<(9~%_&1@moVqrc3}`fX#gLas4C z6oWKm{rwT+O$l9U1QQ$6Bt%4qJgcqkr`H?_RrYrI#^7*Wt11 z?AHa-R<^e#%A5!7R%+~7YOeQg;n|yjOy8qC``%FZV*l6x-zAj=LD6+nZm{k#<_kczFf{4!J!m0PR$$56pk zW6k29K!wn1tBkktMi;iZc3Thec6=B{2dq5a0o8!cSnc=~sD^aGO66Cf8ZlYHyb~&% z11-U?K{e(Sd68d-YQpLAEWZKOlpmA_xeh9Vhsr(tCR8Ms$`^PSR5P9--MkwridV== zcKsAGn%Bq@-UAiGd*u+`3l+j`9!>&|LG`mPQxg9Ps=sv=UG-ROF z#Cc*c{~Icti$pem0o9o2i5UJ5R1>b{Z}>~7rWiFJ^H)$27!>dD*HDoNWCz9?W|Row z8nncW63IN1T{j@3MQXaB<8iIf*)mP^i{&ekd*;2APb$ z-|=uwlb~BW3jGS-)OJjr-gWMrn>~HQ7|khmN4i@U?Nvn#pNeT5mEf0rB~8qunN&b?sEDd*5>|Cn=t-JNi)k7y zMUxdYomNp9t)&WDhvr+TLfdM1>2^Y*AxVtP4U=4~Wfb}U$SCK3%qY^%h{sZE982ts z>dsC1K1X<;cz8!-Kk-^|nfrm_6}=jfCBp4FEE=l^UN}?}oHj*|cB&8&A`)K)6AQfF S5zRzA&O)IQM51U#vHt~cHJ4HV delta 7054 zcmchcd3aUD8OFbF=41~9$R0=tkgy~`LV|=P?1ZJV2#6c9hY%{ii$+C%<#*;=^b=+<;i9UV$d^^{$e-X_y7TaPRp%c&M^q8Qpt4X9kxC3e z?~C+aE?XCeT8LhyBzldS(GE(Xoz#kUQ9A8b`Y6@@Opl%@lc!NM>Yol(0Qn^e{Nn50zhtip7<;S>eYX{~%qr$!Y_AjzP(-T~AYP2NqfdqPOVnH_>3Y9IZE-gLy0@x1O9W%8b&6UsGe* zTb{B6P3%$~lx9@>8`TAxT8T4E zVtSJ*@99XVD7(bByYfj@q5rPR~$ZQ&|o&j-lD!H9cq&(-~tk=V@XmLxYU!ca7== znp$OOh*A8WQS9;-#}6~A&w4U6I7^?Aj~UCJqx1G?b+5|OvpL*Y_Cu$v*Q9#ZyHz8N z;tR%*R%&7=n`4aXi$?WoO|7z-YZPBLir0CI<0lx^S3KD~)?UxhBxBjD#+qLAu4$@K ze9b7{poyIf6&Tgmjp|LBT4kuvB<4`#JlWzcj-O*xhdH-P_stG^hMqE(t!KQo*7C0D zX`?ujv93^S1pThQO%tc6AQ%0onulZ93NFN8pT$LLEwiU%wDu6Ht2EBK#lL#p;!k5~ z95e+``!P=H;AA$>@ie0&mMZo_%|9h|KMmchs<^uZyPxGSdcJF-YL?D`x?elB{rRX3qj&J!e*X z!g8jvT*Qk_&5Y12vuezKlv;y(#&VSMT;h1TuXpw(`Ej~IoH8i(7Fed&+6`ec}^8ugsHQS*Fl)cop3+5ItJd9E;fF7VZJVYMeL7b?q@ zW=of5S#y6Z(mfX`&*#mai#5+0`=eO5EOz>16|c4@t$Sg2UnbZxT7LJIyG%7|jmO|@ zcV9Ymg>JAy8LTx&wbIw9R#iu3cjzkRxz6ml+E>rD)t<0it1R7S%XOM%&3CsF-Lph_ zmN=g7_@2Hbzf?CURR%A33<`SslKe8=piCL8H%GNWi>k&URbFjrC%;^ImYO{``RZ9w z?Fq{YW%;7{xxPiSta&zV)o&zQmFG+5Ct!f)S!3uS`V%n3nN4Mmr#mdim;MOT9l}(j zHtfs~709oH!r0#uya!Z=ljW!U2B-hwziJ0pWYxw8DBvC46@Gn5gqFhYolc1*Ji0IF!K+VJn(VI_$nv2V#8J_{Q5LZPb z{v{|y`eWbn9Z;$aV&^ng6cJ^4JSoxH+H{5w#Vyv7Nrrh?jA zL3Eox1a+{&=o|h6sH4@Is<;Z&$!bgI_yQ=~8cO^5kE4N|t;cB(T3bO~thuy?FM_&S z3+Xxj7}U)wr^$Q?)ZN-jSE&(S0p(cN(N%u}_2%i7 z?+;kYdColG&6sT#Hip&s$870UjtdxMLx-Y z1NqV8vO9kU@~2s{DPIQ#&}tdNe+LE94snxjfP(0xIL|ko8Ffh<;?Hq0guWA-`3q1e zM~Pzo5>$)Zh>83as5bW(1Nk2yZ2yZ){wJsoFBUQUHK;C^^DX`ts2)bmC;Sa497EwW ze+!C0^}F~xP^1XrwHS4nQ6dR%p{`rNXwj92^ADgH@dS6{+n`uc#L3u1$Be?D4;Bon zFLu%m3|@OiouYF>g5t$xIw&kqg7}^`2|rLn8BI%sKPXXVP`(HNHIf5pfCvONmid%{ zW?)9iCBdjX7?^~<|Lozlbpt{?+q=bi`?RfK=T_?6Ew|p;@5X3OwmZ^2YQh24kM=hN z=X=Bh$bUQBnA+pZNe7CcP83Di_%hLj5~wRBQFm%eJ*Xx1!dHnLd@bmM(tS~4AW96v z)xp#o9|HQ*!?-dG$4BvM{1{sH1dXKOluIKh4>W~F(=-}GvuIp@nvKf~aCsq3pkkVc zk2aHNC5o(~sZ@d&y7g2*8}Syli3({O&D6FRUcMWU2(_Oqm6!5etVI-#5%zzNsN4S- zQMerukESL#PO~GbOql#Ahue=i)o=JlV?X5@bAfyLl#(vB$P%^jn-F2@J60H|4o>T$ eN81&OdLkS@1`>-X{ErX~a25=T7Y#)tiv2eY*@tuh diff --git a/target/classes/com/tennis/entity/MatchPrediction.class b/target/classes/com/tennis/entity/MatchPrediction.class index 71afb2120a94af0c0555ce06743f88c9d12ba3de..4c67b4f7b678735a22c4c7e8c181432583fa02ab 100644 GIT binary patch delta 4449 zcma)93vg6d8UDVT>~7f2J7hNyHt%doc!Yo^;n9}T@@NYc2}nUj(m+TPvVnwZr&zbZ z)B$U;bm?@|*3RfS<7lm7icsx{I@9sd8J$WUoobmn(}&gv)^~+azkBX(bKM*=*_qw@ z?fuX9o&WsjKmYx2dgS~__@`IC^F099@?)pMSHkTJ*7pt%we|Ik9@sr{_t4(9fu7#M z(cxrUPck`tpy$Ayg16}Z&3lr=BfFOqbJF|5m18xLya)%z8lsz6yf@4tCPN%9#ILz8 zeK>YLf0SrWKNV}v3-PY>p{kv!D&*l+&H5S~ygrII@cZrf1K!jf2lt~2#0BAqu7A{5 zBmN{q%x3tr3|&|{nei7Hj@k?t;iT|@&GJ`KHrotu$*|RC_?rwnZHB+g&}%dNLxzEr z&GJuKhHQp^$#C4Z_J7Mzj>5@n|Bnp!;uDh%Z_5xtVb^5Ke`P7LXP7@92)}3=k#gUfoR$3Oc&xGtbiy?vR#iFK9gro<`9r zVF#{mSXW@1bhrET3jBJd5_Bgg16U}T@$|atRX4cgC<6NJkrQ_)S$ffkT^iBn6KeN_ z7}U6YII*ZyLK&6kt8c$?LM4eZ45I=2umt;Y6GnV0Ykev~C}x;_}}iQD_cI=N`<($FW+Q(v6gSyie+fv`L4RibwESWxX4|s9FAFndQ#KC}+4CVf-yZ z@G`nXSYG6QbTdr%fQ+Y8@tVc%go?C&AM`m|+v3;DCdzNhJI`f??iHh8rWm;O<&er1SuCPT#38svQ^CL(EsLuI8ZW9kLGIZyc=f1SIx{om zgQn{+k|`}ZW;AEA(iX^$>1vvWCF^FFk&N0UKk1Y7()VghH@!|)^Qh5`*)@;(G)+=p zP0}<;S;+?ware8*(@gJZimjM9`d3ph-Bea#vvF!xM&MM_bT-s(r1DsL7nBjfv?5-!z?Bf#XJ?mUXtwFZHcz%0-!W_1)l?8_jw)*fbALSJQO5SvT)B zl8tsZLq5r=Pm`MDiLw+inoV|1U-LS3r8C`i*3A-gnh-~gyY#V(EkAK`%NviPMQzsE zZ2c8#WIhSUKP?;uukex#1yoE`22~}_-`?*wTCWm=5mkCw!F5bxHLQ$S%6H_Y$ zWBeRzc&$(spTRr4PG}a-;cZ?oG@BRj5?2aU^Hsda8-(UKc{t5gLUCsXz9Gp3YMg8E z5N{Hybr#}NTrE`RY``Gb2-Q2?*v+*<4bBMGaGg-2b9W6^%Cm%m`Y7t>MO_vUvP=J>3|pYCIP;gNrybX!S≺Q_wJ+k_m1`3m1B)jTxvM~b+c4%hKX zzF#PSZ9KtELO~qhN7*eD!e{tFZWb!QR~6PRLNoB3cJc#E^eY`+(L2Ug-HhN8F7kGv zLPiz$Z9+wC$1~h6RLu4Gf`r_3*n=bdkWeWPqn{rZD&ynWz#T&6Jd4Hrh)@O3Yo~V# z&17(F-=enyp&oeea{V2HyK~7%*u)1>P0fQ-8zGpe1}_R_Z@ZOjWip0k$Hzg zHJ^x`dHV-Wxei(a+hgLN`!W68~QZE>!aMmei;ii Seo)^#xnKXnLL*d+G3$R5z&4Bk delta 4358 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 J$Kr}){tpi7CO!ZF delta 5598 zcma)=3vg6d8OOi>xtmQ0A@78QB#@+ekq3nE2mz8ni9teA0+d%l5ClU>p+F!|`Us(D zEz|%m7NM3>t+vqC0%<5v24*@#9i7fNT03gBv?wzjtrlk-XLO|2|2=oJIc!hj&cN<} zZ@&NUe&;){d(VMWc=IL1{`|j}u82r2E}f12Fupf4VP_&^ltHCr2Lg(8G)OHxzjTl8ZQn%w@I{gP;bX5{)!XuGXYu1=C=#<^WHi9_F;6; zUtg42?fPSxfXFWTA2Pf#Vcs!}0dnOTer5y?7S&7|@a~ZW={CG2o)>xaIKmbI`SP|l z-Y#nGa*gQ{#m^_DK=w z7t2=iGsD0{1=|6+=A|HAce-oC-C0)m&w}nd&9lPIqpjxsY+)$x>QLeh;qE-EyT@|} zx=YfF2O3#mjXfNUy;72{>+BVz*cyAp%qo;rOL$VHR`XG-xz#XtX=H`f{f@Poiww6m zS6a=#u$q^In{y^w-N%DN_|{mnLeQ z`J)&mVN8vzjSQLXmwK5wz^vEIu^uyUYurd}iIh1v#3XXAMpoF7O$O2%!hJJx>y4y*hkrtNL#fmgmgP}nPygDqHT~A zM#?Ofl7WF+tdW!K$O;4LJq-<3yYVJ-yk<`Jn1PC_NQz%&0;)7%N)WK8Dw5)_Faawx zpxWN5l}4+E98#-7NVoW_G;^w*xjItjnh=x7H5yrCN3J!HL(islCUc!;PO~%D8_Xe_ z-ew}(yxBC}V+O`diljd_nuLuysTua9+9OSBQwZty$0p6JwKF$I%G?rS61hbq>+Hy_ z26E{B=rEZbnptmO-4YGvko}P?{R=zOO!oR?W^i@8GC7h7mTwaBbyBl%x4V!8lBPt` zp~Kym)&4znxCYGj0LH$o_s|iMwkjcnbUQRbGaK+Far9o_9NgO<}mEb{Wl9#Ri`ca|67Fn{(mQYw+Y{E!sQ8h%q?&4 zsp{#z@W%nw%Eu7#mG(cQP|ZaXhd`Py4fA*yprpX(M>DTEQtA`5Q2Atz^C#Rx6(uds z2bfRgmj|3HXr+plZO#QOpo)>h&M_>c8YV}b02ZOCi>C+Yo$a`n7l+GbXEPR4#mVoT z`B*|VLT)&7v6Lzv;*??;RRa7@0hUuGqR@%LeN;&(Q=el6RWh2?M_5Uff>!lDzCx9X z2i2QcMU{pfst>EF(s4vRjjpd!j>K_w2y3V^a8Yf=TB=N3Rqgm1)hJw7%~(g3g`298 zXD&^WtsGU1uT$lyVJZ)8RHIdiQrJK>MvcR5+)tIOTJQljQst>d_zl{r^3^t6zynlw zsa;(-hfS0P>L>!(OjW3!#kcVwRgt>PD_f|F)msE_r7BT3*dg1f#;T7o8y!@oj-OAW z+o{T&IE=;)s&c1HK1U~2g)>3^jh$5EoK|@syQs!HOXSyhh^nj7*&%({O*z4NSYE@! zR8`J#IfO^3CORi&KOUu;Dm;i%{|b(8NBtA~@C}-x)Iab|DkZV% zQ#?Vc!~S^>-=gwKow|f4siI`LdJg-k{IXr`!vU&jIjHW(Q&cf>THV9WbI12JH4#1D z`2I*`;2~PKH*tm=-`TFb`RX%kUxhn#K~WL&0_E;c)?q8RSf&ZJ$yXvn)Mr2X?dU2 zmIkgbIGHuDJf^r96nLR-4!y?~W+BI2biH@4(|Xa(a!KN@kl82-{BqGFbwA><=8t(* p;YEGenLzatQKy(ieFskCW&SaSE%^!mzk=8KE0(GcZ{VV2{ts2K4_g2L diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index ac8dd12..62df99b 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -3,6 +3,7 @@ com/tennis/controller/TennisPredictionController.class com/tennis/TennisPredictionApplication.class com/tennis/repository/MatchRepository.class com/tennis/entity/HeadToHead.class +com/tennis/controller/DashboardController.class com/tennis/service/DataInitializationService.class com/tennis/entity/Player.class com/tennis/entity/Match.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 5a232d9..dc26b34 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,12 +1,13 @@ -/workspace/src/main/java/com/tennis/repository/PlayerRepository.java -/workspace/src/main/java/com/tennis/repository/MatchRepository.java /workspace/src/main/java/com/tennis/entity/HeadToHead.java /workspace/src/main/java/com/tennis/controller/TennisPredictionController.java /workspace/src/main/java/com/tennis/service/PredictionService.java -/workspace/src/main/java/com/tennis/repository/MatchPredictionRepository.java -/workspace/src/main/java/com/tennis/entity/MatchPrediction.java +/workspace/src/main/java/com/tennis/controller/DashboardController.java /workspace/src/main/java/com/tennis/repository/HeadToHeadRepository.java /workspace/src/main/java/com/tennis/service/DataInitializationService.java /workspace/src/main/java/com/tennis/TennisPredictionApplication.java +/workspace/src/main/java/com/tennis/repository/PlayerRepository.java +/workspace/src/main/java/com/tennis/repository/MatchRepository.java +/workspace/src/main/java/com/tennis/repository/MatchPredictionRepository.java +/workspace/src/main/java/com/tennis/entity/MatchPrediction.java /workspace/src/main/java/com/tennis/entity/Match.java /workspace/src/main/java/com/tennis/entity/Player.java From 0f70175876d46f8d0769ece8d842ab31bfe661d3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 16 Jul 2025 08:33:12 +0000 Subject: [PATCH 02/10] I apologize, but the diff you've provided appears to be empty or incomplete. Without seeing the actual changes made to the MatchPredictionRepository, I cannot generate a meaningful commit message. Could you please provide the full diff or describe the specific changes that were made? Co-authored-by: ram.dafale --- .../MatchPredictionRepository.class | Bin 4080 -> 4122 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/target/classes/com/tennis/repository/MatchPredictionRepository.class b/target/classes/com/tennis/repository/MatchPredictionRepository.class index 2428fe2daf11db93e8fb596470634fff6ffa9f74..34360d83117c01227e541b1842af950c612c8ded 100644 GIT binary patch delta 66 zcmew$KTBalGMCEQU{@bk=MV*F$6!~5a1U2M1!wn+a From 2ad7230563a0d869903f91f0a4e76500723efd0c Mon Sep 17 00:00:00 2001 From: Dafale <2033023@cognizant.com> Date: Wed, 16 Jul 2025 14:15:25 +0530 Subject: [PATCH 03/10] deleted extra file :qw --- .../WebContent/META-INF/MANIFEST.MF | 3 - .../WebContent/WEB-INF/error.jsp | 14 - .../WebContent/WEB-INF/web.xml | 55 --- 10SuperMarketServlet/WebContent/home1.jsp | 44 -- 10SuperMarketServlet/WebContent/index1.html | 21 - 10SuperMarketServlet/WebContent/viewgoods.jsp | 30 -- .../WebContent/viewsupplier.jsp | 34 -- .../classes/controller/DemoServlet.class | Bin 1532 -> 0 bytes .../controller/GroceryAnnotation.class | Bin 2533 -> 0 bytes .../build/classes/model/Customer.class | Bin 1381 -> 0 bytes .../build/classes/model/Goods.class | Bin 1345 -> 0 bytes .../build/classes/model/Retailer.class | Bin 1071 -> 0 bytes .../build/classes/model/Supplier.class | Bin 1825 -> 0 bytes .../classes/repository/CustomerDAO.class | Bin 340 -> 0 bytes .../classes/repository/CustomerDAOImpl.class | Bin 1579 -> 0 bytes .../build/classes/repository/GoodsDAO.class | Bin 291 -> 0 bytes .../classes/repository/GoodsDAOImpl.class | Bin 1411 -> 0 bytes .../classes/repository/RetailerDAO.class | Bin 530 -> 0 bytes .../classes/repository/RetailerDAOImpl.class | Bin 2338 -> 0 bytes .../classes/repository/SupplierDAO.class | Bin 325 -> 0 bytes .../classes/repository/SupplierDAOImpl.class | Bin 1451 -> 0 bytes .../classes/service/CustomerService.class | Bin 345 -> 0 bytes .../classes/service/CustomerServiceImpl.class | Bin 1187 -> 0 bytes .../build/classes/service/GoodsService.class | Bin 296 -> 0 bytes .../classes/service/GoodsServiceImpl.class | Bin 1123 -> 0 bytes .../classes/service/RetailerService.class | Bin 535 -> 0 bytes .../classes/service/RetailerServiceImpl.class | Bin 1435 -> 0 bytes .../classes/service/SupplierService.class | Bin 330 -> 0 bytes .../classes/service/SupplierServiceImpl.class | Bin 1172 -> 0 bytes 10SuperMarketServlet/pom.xml | 80 ---- .../src/MainServlet/DemoServlet.java | 65 --- .../src/MainServlet/DemoServlet2.java | 57 --- .../src/MainServlet/DemoServlet3.java | 72 --- .../src/controller/AppJavaConfig.java | 76 --- .../src/main/resources/database.properties | 4 - 10SuperMarketServlet/src/model/Customer.java | 133 ------ 10SuperMarketServlet/src/model/Goods.java | 89 ---- 10SuperMarketServlet/src/model/Retailer.java | 68 --- 10SuperMarketServlet/src/model/Supplier.java | 173 ------- .../src/repository/CustomerDAO.java | 15 - .../src/repository/CustomerDAOImpl.java | 51 -- .../src/repository/GoodsDAO.java | 13 - .../src/repository/GoodsDAOImpl.java | 68 --- .../src/repository/RetailerDAO.java | 28 -- .../src/repository/RetailerDAOImpl.java | 82 ---- .../src/repository/SupplierDAO.java | 13 - .../src/repository/SupplierDAOImpl.java | 66 --- .../src/service/CustomerService.java | 14 - .../src/service/CustomerServiceImpl.java | 47 -- .../src/service/GoodsService.java | 30 -- .../src/service/GoodsServiceImpl.java | 46 -- .../src/service/RetailerService.java | 30 -- .../src/service/RetailerServiceImpl.java | 54 --- .../src/service/SupplierService.java | 30 -- .../src/service/SupplierServiceImpl.java | 51 -- 11SpringBootUsingJDBC/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - 11SpringBootUsingJDBC/bin/.gitignore | 25 - .../bin/.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../bin/.mvn/wrapper/maven-wrapper.properties | 1 - 11SpringBootUsingJDBC/bin/mvnw | 225 --------- 11SpringBootUsingJDBC/bin/mvnw.cmd | 143 ------ 11SpringBootUsingJDBC/bin/pom.xml | 50 -- .../com/example/demo/DemoApplication.class | Bin 1341 -> 0 bytes .../src/main/resources/application.properties | 0 .../example/demo/DemoApplicationTests.class | Bin 1216 -> 0 bytes 11SpringBootUsingJDBC/mvnw | 225 --------- 11SpringBootUsingJDBC/mvnw.cmd | 143 ------ 11SpringBootUsingJDBC/pom.xml | 99 ---- .../main/java/MainServlet/DemoServlet.java | 62 --- .../main/java/MainServlet/DemoServlet2.java | 57 --- .../main/java/MainServlet/DemoServlet3.java | 72 --- .../com/example/demo/CustomErrorType.java | 16 - .../java/com/example/demo/CustomersOp.java | 95 ---- .../com/example/demo/DemoApplication.java | 18 - .../main/java/controller/AppJavaConfig.java | 76 --- .../src/main/java/model/Customer.java | 133 ------ .../src/main/java/model/Goods.java | 89 ---- .../src/main/java/model/Retailer.java | 68 --- .../src/main/java/model/Supplier.java | 173 ------- .../src/main/java/repository/CustomerDAO.java | 15 - .../main/java/repository/CustomerDAOImpl.java | 51 -- .../src/main/java/repository/GoodsDAO.java | 13 - .../main/java/repository/GoodsDAOImpl.java | 68 --- .../src/main/java/repository/RetailerDAO.java | 28 -- .../main/java/repository/RetailerDAOImpl.java | 77 --- .../src/main/java/repository/SupplierDAO.java | 13 - .../main/java/repository/SupplierDAOImpl.java | 66 --- .../main/java/service/CustomerService.java | 14 - .../java/service/CustomerServiceImpl.java | 44 -- .../src/main/java/service/GoodsService.java | 30 -- .../main/java/service/GoodsServiceImpl.java | 43 -- .../main/java/service/RetailerService.java | 30 -- .../java/service/RetailerServiceImpl.java | 54 --- .../main/java/service/SupplierService.java | 30 -- .../java/service/SupplierServiceImpl.java | 51 -- .../src/main/resources/application.properties | 0 .../src/main/resources/database.properties | 4 - .../example/demo/DemoApplicationTests.java | 16 - 12SpringBoot&JPA/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - 12SpringBoot&JPA/mvnw | 225 --------- 12SpringBoot&JPA/mvnw.cmd | 143 ------ 12SpringBoot&JPA/pom.xml | 59 --- .../src/main/java/com/cg/ConsumerMain.java | 22 - .../com/cg/controller/CustomerController.java | 32 -- .../java/com/cg/dao/CustomerRepository.java | 13 - .../src/main/java/com/cg/model/Customer.java | 91 ---- .../com/cg/service/CustomerServiceImpl.java | 30 -- .../java/com/cg/service/ICustomerService.java | 11 - .../java/com/consumer/DemoApplication.java | 12 - .../src/main/resources/application.properties | 6 - .../com/consumer/DemoApplicationTests.java | 16 - 13SpringBootJPA(REMOVEADD)/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - 13SpringBootJPA(REMOVEADD)/mvnw | 225 --------- 13SpringBootJPA(REMOVEADD)/mvnw.cmd | 143 ------ 13SpringBootJPA(REMOVEADD)/pom.xml | 59 --- .../src/main/java/com/cg/ConsumerMain.java | 29 -- .../com/cg/controller/CustomerController.java | 142 ------ .../java/com/cg/dao/CustomerRepository.java | 13 - .../src/main/java/com/cg/model/Customer.java | 107 ----- .../com/cg/service/CustomerServiceImpl.java | 76 --- .../java/com/cg/service/ICustomerService.java | 27 -- .../java/com/consumer/DemoApplication.java | 12 - .../java/springboot/util/CustomErrorType.java | 16 - .../src/main/resources/application.properties | 6 - .../com/consumer/DemoApplicationTests.java | 16 - 14SpringBootJPAmysql/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - 14SpringBootJPAmysql/mvnw | 225 --------- 14SpringBootJPAmysql/mvnw.cmd | 143 ------ 14SpringBootJPAmysql/pom.xml | 72 --- .../SpringbootjpaApplication.java | 12 - .../controller/MainController.java | 270 ----------- .../exception/ManagedException.java | 23 - .../springbootjpa/model/Customer.java | 119 ----- .../training/springbootjpa/model/Goods.java | 105 ----- .../springbootjpa/model/Retailer.java | 102 ---- .../springbootjpa/model/Supplier.java | 155 ------ .../springbootjpa/repository/CustomerDAO.java | 24 - .../springbootjpa/repository/GoodsDAO.java | 8 - .../springbootjpa/repository/RetailerDAO.java | 8 - .../springbootjpa/repository/SupplierDAO.java | 7 - .../service/CustomerService.java | 22 - .../service/CustomerServiceImpl.java | 84 ---- .../springbootjpa/service/GoodsService.java | 14 - .../service/GoodsServiceImpl.java | 48 -- .../service/RetailerService.java | 17 - .../service/RetailerServiceImpl.java | 46 -- .../service/SupplierService.java | 13 - .../service/SupplierServiceImpl.java | 44 -- .../src/main/resources/application.properties | 4 - .../src/main/resources/banner | 13 - .../SpringbootjpaApplicationTests.java | 42 -- .../.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - 15springBootJPACallingFromMainMethod/mvnw | 225 --------- 15springBootJPACallingFromMainMethod/mvnw.cmd | 143 ------ 15springBootJPACallingFromMainMethod/pom.xml | 90 ---- .../SpringbootjpaApplication.java | 112 ----- .../controller/MainController.java | 282 ----------- .../exception/ManagedException.java | 23 - .../springbootjpa/model/Customer.java | 111 ----- .../training/springbootjpa/model/Goods.java | 105 ----- .../springbootjpa/model/Retailer.java | 102 ---- .../springbootjpa/model/Supplier.java | 155 ------ .../springbootjpa/repository/CustomerDAO.java | 25 - .../springbootjpa/repository/GoodsDAO.java | 8 - .../springbootjpa/repository/RetailerDAO.java | 8 - .../springbootjpa/repository/SupplierDAO.java | 7 - .../service/CustomerService.java | 24 - .../service/CustomerServiceImpl.java | 110 ----- .../springbootjpa/service/GoodsService.java | 14 - .../service/GoodsServiceImpl.java | 48 -- .../service/RetailerService.java | 17 - .../service/RetailerServiceImpl.java | 46 -- .../service/SupplierService.java | 13 - .../service/SupplierServiceImpl.java | 44 -- .../src/main/resources/application.properties | 5 - .../src/main/resources/banner.txt | 15 - .../SpringbootjpaApplicationTests.java | 42 -- 16BankAppSpringBootJPA/.classpath | 31 -- 16BankAppSpringBootJPA/.eclipse-pmd | 7 - 16BankAppSpringBootJPA/.project | 52 -- .../org.eclipse.core.resources.prefs | 5 - .../.settings/org.eclipse.jdt.core.prefs | 5 - ....eclipse.wst.common.project.facet.core.xml | 4 - .../org.springframework.ide.eclipse.prefs | 2 - .../org.eclipse.core.resources.prefs | 5 - .../bin/.settings/org.eclipse.jdt.core.prefs | 5 - ....eclipse.wst.common.project.facet.core.xml | 4 - .../org.springframework.ide.eclipse.prefs | 2 - 16BankAppSpringBootJPA/bin/mvnw | 225 --------- 16BankAppSpringBootJPA/bin/mvnw.cmd | 143 ------ 16BankAppSpringBootJPA/bin/pom.xml | 60 --- .../com/springboot/bank/BankApplication.class | Bin 1353 -> 0 bytes .../bank/controller/BankController.class | Bin 4318 -> 0 bytes .../java/com/springboot/bank/model/ATM.class | Bin 3833 -> 0 bytes .../java/com/springboot/bank/model/Bank.class | Bin 4678 -> 0 bytes .../com/springboot/bank/model/Customer.class | Bin 4636 -> 0 bytes .../springboot/bank/repository/BankDAO.class | Bin 310 -> 0 bytes .../bank/repository/CustomerDAO.class | Bin 326 -> 0 bytes .../springboot/bank/service/BankService.class | Bin 1080 -> 0 bytes .../bank/service/BankServiceImpl.class | Bin 3624 -> 0 bytes .../bank/service/CustomerService.class | Bin 795 -> 0 bytes .../bank/service/CustomerServiceImpl.class | Bin 3380 -> 0 bytes .../src/main/resources/application.properties | 13 - .../bank/BankApplicationTests.class | Bin 1228 -> 0 bytes .../bin/target/classes/META-INF/MANIFEST.MF | 23 - .../maven/com.springboot/bank/pom.properties | 17 - .../maven/com.springboot/bank/pom.xml | 60 --- .../bin/target/classes/application.properties | 13 - 16BankAppSpringBootJPA/mvnw | 225 --------- 16BankAppSpringBootJPA/mvnw.cmd | 143 ------ 16BankAppSpringBootJPA/pom.xml | 73 --- .../com/springboot/bank/BankApplication.java | 12 - .../bank/controller/ATMController.java | 78 --- .../bank/controller/AccountController.java | 90 ---- .../bank/controller/BankController.java | 59 --- .../BankDenominationController.java | 76 --- .../bank/controller/CustomerController.java | 63 --- .../controller/TransactionController.java | 61 --- .../com/springboot/bank/dto/ATMDetails.java | 110 ----- .../springboot/bank/dto/AccountDetails.java | 111 ----- .../bank/dto/WrapperATMDenomination.java | 93 ---- .../bank/dto/WrapperAccountDenomination.java | 90 ---- .../springboot/bank/dto/WrapperBankATM.java | 73 --- .../bank/dto/WrapperBankCustomer.java | 73 --- .../bank/dto/WrapperBankCustomerAccount.java | 93 ---- .../bank/dto/WrapperBankDenomination.java | 93 ---- .../bank/dto/WrapperDenomination.java | 93 ---- .../bank/exception/BankException.java | 15 - .../java/com/springboot/bank/model/ATM.java | 99 ---- .../com/springboot/bank/model/Account.java | 126 ----- .../java/com/springboot/bank/model/Bank.java | 86 ---- .../bank/model/BankDenomination.java | 136 ------ .../com/springboot/bank/model/Customer.java | 131 ------ .../springboot/bank/model/Denomination.java | 136 ------ .../springboot/bank/model/Transaction.java | 145 ------ .../springboot/bank/repository/ATMDAO.java | 15 - .../bank/repository/AccountDAO.java | 15 - .../springboot/bank/repository/BankDAO.java | 15 - .../bank/repository/BankDenominationDAO.java | 16 - .../bank/repository/CustomerDAO.java | 15 - .../bank/repository/TransactionDAO.java | 15 - .../springboot/bank/service/ATMService.java | 25 - .../bank/service/ATMServiceImpl.java | 142 ------ .../bank/service/AccountService.java | 24 - .../bank/service/AccountServiceImpl.java | 192 -------- .../bank/service/BankDenominationService.java | 20 - .../service/BankDenominationServiceImpl.java | 101 ---- .../springboot/bank/service/BankService.java | 22 - .../bank/service/BankServiceImpl.java | 60 --- .../bank/service/CustomerService.java | 20 - .../bank/service/CustomerServiceImpl.java | 69 --- .../bank/service/TransactionService.java | 20 - .../bank/service/TransactionServiceImpl.java | 75 --- .../src/main/resources/application.properties | 7 - .../springboot/bank/BankApplicationTests.java | 16 - .../springboot/bank/CustomerServiceTest.java | 43 -- .../target/classes/META-INF/MANIFEST.MF | 10 - .../maven/com.springboot/bank/pom.properties | 7 - .../maven/com.springboot/bank/pom.xml | 73 --- .../target/classes/application.properties | 7 - .../com/springboot/bank/BankApplication.class | Bin 709 -> 0 bytes .../bank/controller/ATMController.class | Bin 3745 -> 0 bytes .../bank/controller/AccountController.class | Bin 3980 -> 0 bytes .../bank/controller/BankController.class | Bin 2808 -> 0 bytes .../BankDenominationController.class | Bin 3262 -> 0 bytes .../bank/controller/CustomerController.class | Bin 3021 -> 0 bytes .../controller/TransactionController.class | Bin 3059 -> 0 bytes .../com/springboot/bank/dto/ATMDetails.class | Bin 1861 -> 0 bytes .../springboot/bank/dto/AccountDetails.class | Bin 1897 -> 0 bytes .../bank/dto/WrapperATMDenomination.class | Bin 2014 -> 0 bytes .../bank/dto/WrapperAccountDenomination.class | Bin 2066 -> 0 bytes .../springboot/bank/dto/WrapperBankATM.class | Bin 1384 -> 0 bytes .../bank/dto/WrapperBankCustomer.class | Bin 1444 -> 0 bytes .../bank/dto/WrapperBankCustomerAccount.class | Bin 1738 -> 0 bytes .../bank/dto/WrapperBankDenomination.class | Bin 1856 -> 0 bytes .../bank/dto/WrapperDenomination.class | Bin 1800 -> 0 bytes .../bank/exception/BankException.class | Bin 391 -> 0 bytes .../com/springboot/bank/model/ATM.class | Bin 2187 -> 0 bytes .../com/springboot/bank/model/Account.class | Bin 2764 -> 0 bytes .../com/springboot/bank/model/Bank.class | Bin 1887 -> 0 bytes .../bank/model/BankDenomination.class | Bin 2736 -> 0 bytes .../com/springboot/bank/model/Customer.class | Bin 2792 -> 0 bytes .../springboot/bank/model/Denomination.class | Bin 2689 -> 0 bytes .../springboot/bank/model/Transaction.class | Bin 3174 -> 0 bytes .../springboot/bank/repository/ATMDAO.class | Bin 330 -> 0 bytes .../bank/repository/AccountDAO.class | Bin 342 -> 0 bytes .../springboot/bank/repository/BankDAO.class | Bin 333 -> 0 bytes .../bank/repository/BankDenominationDAO.class | Bin 365 -> 0 bytes .../bank/repository/CustomerDAO.class | Bin 345 -> 0 bytes .../bank/repository/TransactionDAO.class | Bin 354 -> 0 bytes .../springboot/bank/service/ATMService.class | Bin 530 -> 0 bytes .../bank/service/ATMServiceImpl.class | Bin 4978 -> 0 bytes .../bank/service/AccountService.class | Bin 566 -> 0 bytes .../bank/service/AccountServiceImpl.class | Bin 6254 -> 0 bytes .../service/BankDenominationService.class | Bin 281 -> 0 bytes .../service/BankDenominationServiceImpl.class | Bin 2724 -> 0 bytes .../springboot/bank/service/BankService.class | Bin 381 -> 0 bytes .../bank/service/BankServiceImpl.class | Bin 1803 -> 0 bytes .../bank/service/CustomerService.class | Bin 418 -> 0 bytes .../bank/service/CustomerServiceImpl.class | Bin 2486 -> 0 bytes .../bank/service/TransactionService.class | Bin 492 -> 0 bytes .../bank/service/TransactionServiceImpl.class | Bin 2505 -> 0 bytes .../bank/BankApplicationTests.class | Bin 761 -> 0 bytes .../springboot/bank/CustomerServiceTest.class | Bin 915 -> 0 bytes 17BankInCapg/.eclipse-pmd | 7 - 17BankInCapg/.gitignore | 25 - 17BankInCapg/.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - 17BankInCapg/mvnw | 225 --------- 17BankInCapg/mvnw.cmd | 143 ------ 17BankInCapg/pom.xml | 66 --- .../com/bank/Exception/ManagedException.java | 11 - .../bank/TransactionInBankApplication.java | 12 - .../com/bank/controller/ATMController.java | 85 ---- .../bank/controller/AccountController.java | 128 ----- .../com/bank/controller/BankController.java | 59 --- .../bank/controller/CustomerController.java | 118 ----- .../controller/DenominationController.java | 52 -- .../controller/TransactionController.java | 59 --- .../src/main/java/com/bank/dto/ATMReq.java | 44 -- .../java/com/bank/dto/AccountRequest.java | 56 --- .../java/com/bank/dto/AccountTransaction.java | 60 --- .../main/java/com/bank/dto/AddMoneyReq.java | 47 -- .../com/bank/dto/CreateCustomerRequest.java | 46 -- .../bank/dto/CreateDenominationRequest.java | 48 -- .../java/com/bank/dto/TransactionReq.java | 47 -- .../java/com/bank/dto/WithrawMoneyReq.java | 60 --- .../src/main/java/com/bank/model/ATM.java | 91 ---- .../java/com/bank/model/ATMDenomination.java | 81 ---- .../src/main/java/com/bank/model/Account.java | 101 ---- .../main/java/com/bank/model/AuditLog.java | 118 ----- .../src/main/java/com/bank/model/Bank.java | 86 ---- .../java/com/bank/model/BankDenomination.java | 147 ------ .../main/java/com/bank/model/BaseEntity.java | 46 -- .../main/java/com/bank/model/Customer.java | 126 ----- .../main/java/com/bank/model/RefMoney.java | 30 -- .../main/java/com/bank/model/Transaction.java | 116 ----- .../bank/repository/ATMDenoRepository.java | 18 - .../com/bank/repository/ATMRepository.java | 16 - .../bank/repository/AccountRepository.java | 15 - .../com/bank/repository/BankRepository.java | 19 - .../bank/repository/CustomerRepository.java | 18 - .../repository/DenominationRepository.java | 17 - .../bank/repository/RefMoneyRepository.java | 18 - .../repository/TransactionRepository.java | 27 -- .../java/com/bank/service/ATMServiceImpl.java | 166 ------- .../com/bank/service/AccountServiceImpl.java | 164 ------- .../com/bank/service/AtmDenoServiceImpl.java | 97 ---- .../com/bank/service/AuditServiceImpl.java | 21 - .../service/BankDenominationServiceImpl.java | 105 ----- .../com/bank/service/BankServiceImpl.java | 62 --- .../com/bank/service/CustomerServiceImpl.java | 82 ---- .../com/bank/service/DenominationHelper.java | 83 ---- .../java/com/bank/service/IATMService.java | 32 -- .../com/bank/service/IAccountService.java | 36 -- .../com/bank/service/IAtmDenoService.java | 15 - .../service/IBankDenominationService.java | 16 - .../java/com/bank/service/IBankService.java | 24 - .../com/bank/service/ICustomerService.java | 26 - .../java/com/bank/service/IRefServcie.java | 30 -- .../com/bank/service/ITransactionService.java | 27 -- .../java/com/bank/service/RefServcieImpl.java | 49 -- .../bank/service/TransactionServiceImpl.java | 43 -- .../src/main/resources/application.properties | 6 - .../java/com/bank/testcases/AllTestCases.java | 227 --------- 1Day1 Programs/ContainsDuplicateProgram3.java | 50 -- 1Day1 Programs/FileIOProgram4.java | 80 ---- 1Day1 Programs/HelloWorld.java | 10 - .../PalindromeNumberAndSortProgram5.java | 52 -- 1Day1 Programs/PalindromeNumberProgram1.java | 73 --- 1Day1 Programs/ReverseStringProgram2.java | 61 --- 2Day2apr17/LambdaExpressionDay2.java | 118 ----- 2Day2apr17/Person.java | 175 ------- 2Day2apr17/ReorganizeStringDay2.java | 89 ---- .../ContainsDuplicate.java | 55 --- .../ContainsDuplicateJunit | 84 ---- 3PMD junit of DAY1 and DAY2/FileIoRefactoring | 61 --- 3PMD junit of DAY1 and DAY2/JUnit Palindrome | 88 ---- 3PMD junit of DAY1 and DAY2/Palindrome.java | 114 ----- 3PMD junit of DAY1 and DAY2/ReverseStringDone | 125 ----- 4Day4-19-April/.eclipse-pmd | 7 - .../.settings/org.eclipse.jdt.core.prefs | 11 - 4Day4-19-April/bin/CustomException.class | Bin 1108 -> 0 bytes 4Day4-19-April/bin/InputFormatException.class | Bin 347 -> 0 bytes .../bin/printArrayOfIntString.class | Bin 1875 -> 0 bytes 4Day4-19-April/src/CustomException.java | 66 --- 4Day4-19-April/src/JUNITDay4PrintArray | 38 -- 4Day4-19-April/src/JunitDa4EXception | 39 -- 4Day4-19-April/src/printArrayOfIntString.java | 57 --- 5Bank Application/BankAppJunit.java | 109 ----- 5Bank Application/pom.xml | 25 - .../src/main/java/bank/bank11/App.java | 220 --------- .../main/java/bankapplication/Account.java | 68 --- .../src/main/java/bankapplication/Apps.java | 120 ----- .../src/main/java/bankapplication/Bank.java | 19 - .../main/java/bankapplication/Customer.java | 110 ----- .../java/bankapplication/currentAccount.java | 46 -- .../java/bankapplication/savingAccount.java | 58 --- .../main/java/bankapplication/statement.java | 109 ----- .../BankApplicationAI/BankAppJunit.java | 14 - .../src/test/java/bank/bank11/AppTest.java | 38 -- .../target/classes/META-INF/MANIFEST.MF | 5 - .../META-INF/maven/bank/bank11/pom.properties | 7 - .../META-INF/maven/bank/bank11/pom.xml | 25 - .../target/classes/bank/bank11/Account.class | Bin 1235 -> 0 bytes .../target/classes/bank/bank11/App.class | Bin 1274 -> 0 bytes .../target/classes/bank/bank11/Bank.class | Bin 594 -> 0 bytes .../target/classes/bank/bank11/Customer.class | Bin 1494 -> 0 bytes .../classes/bank/bank11/savingAccount.class | Bin 1373 -> 0 bytes .../test-classes/bank/bank11/AppTest.class | Bin 609 -> 0 bytes 6SpringBank/.checkstyle | 7 - 6SpringBank/.eclipse-pmd | 7 - .../org.eclipse.core.resources.prefs | 5 - .../.settings/org.eclipse.jdt.core.prefs | 421 ----------------- .../.settings/org.eclipse.jdt.ui.prefs | 61 --- .../.settings/org.eclipse.m2e.core.prefs | 4 - 6SpringBank/log4j.properties | 8 - 6SpringBank/pom.xml | 55 --- 6SpringBank/src/main/java/controller/App.java | 100 ---- .../main/java/controller/BankController.java | 89 ---- 6SpringBank/src/main/java/model/Bank.java | 44 -- .../src/main/java/model/CurrentAccountM.java | 109 ----- 6SpringBank/src/main/java/model/Customer.java | 120 ----- .../java/model/SavingAccountCollection.java | 34 -- .../src/main/java/model/SavingAccountM.java | 132 ------ .../src/main/java/model/Statements.java | 28 -- .../java/repository/AccountDaoCurrrent.java | 20 - .../src/main/java/repository/BankDaoImpl.java | 31 -- .../java/repository/CurrentAccountImpl.java | 54 --- .../main/java/repository/CustomerDAOImpl.java | 26 - .../src/main/java/repository/IAccountDAO.java | 22 - .../src/main/java/repository/IBankDao.java | 21 - .../main/java/repository/ICustomerDao.java | 22 - .../java/repository/SavingAccountImpl.java | 60 --- .../src/main/java/service/Account.java | 18 - .../main/java/service/AccountServiceImpl.java | 55 --- .../main/java/service/BankServiceImpl.java | 36 -- .../java/service/CustomerServiceImpl.java | 20 - .../src/main/java/service/IAccountDAO.java | 20 - .../main/java/service/IAccountService.java | 17 - .../src/main/java/service/IBankService.java | 21 - .../main/java/service/ICustomerService.java | 19 - .../main/java/service/SavingAccountImpl.java | 61 --- .../main/java/service/WithdrawException.java | 31 -- 6SpringBank/src/main/resources/beans.xml | 88 ---- .../test/java/junitpackage/BankAppJunit.java | 74 --- .../target/classes/META-INF/MANIFEST.MF | 5 - .../HelloSpring/HelloSpring1/pom.properties | 7 - .../maven/HelloSpring/HelloSpring1/pom.xml | 55 --- 6SpringBank/target/classes/beans.xml | 88 ---- .../target/classes/controller/App.class | Bin 3305 -> 0 bytes .../classes/controller/BankController.class | Bin 3505 -> 0 bytes 6SpringBank/target/classes/model/Bank.class | Bin 501 -> 0 bytes .../classes/model/CurrentAccountM.class | Bin 1991 -> 0 bytes .../target/classes/model/Customer.class | Bin 1959 -> 0 bytes .../model/SavingAccountCollection.class | Bin 902 -> 0 bytes .../target/classes/model/SavingAccountM.class | Bin 2504 -> 0 bytes .../target/classes/model/Statements.class | Bin 1400 -> 0 bytes .../repository/AccountDaoCurrrent.class | Bin 196 -> 0 bytes .../classes/repository/BankDaoImpl.class | Bin 733 -> 0 bytes .../repository/CurrentAccountImpl.class | Bin 1330 -> 0 bytes .../classes/repository/CustomerDAOImpl.class | Bin 777 -> 0 bytes .../classes/repository/IAccountDAO.class | Bin 179 -> 0 bytes .../target/classes/repository/IBankDao.class | Bin 226 -> 0 bytes .../classes/repository/ICustomerDao.class | Bin 250 -> 0 bytes .../repository/SavingAccountImpl.class | Bin 2097 -> 0 bytes .../target/classes/service/Account.class | Bin 175 -> 0 bytes .../classes/service/AccountServiceImpl.class | Bin 1571 -> 0 bytes .../classes/service/BankServiceImpl.class | Bin 725 -> 0 bytes .../classes/service/CustomerServiceImpl.class | Bin 718 -> 0 bytes .../target/classes/service/IAccountDAO.class | Bin 176 -> 0 bytes .../classes/service/IAccountService.class | Bin 303 -> 0 bytes .../target/classes/service/IBankService.class | Bin 231 -> 0 bytes .../classes/service/ICustomerService.class | Bin 255 -> 0 bytes .../classes/service/SavingAccountImpl.class | Bin 2088 -> 0 bytes .../classes/service/WithdrawException.class | Bin 511 -> 0 bytes .../junitpackage/BankAppJunit.class | Bin 2085 -> 0 bytes 7SpringGettingDataFromJunit/.eclipse-pmd | 7 - .../org.eclipse.core.resources.prefs | 4 - .../.settings/org.eclipse.jdt.core.prefs | 103 ---- .../.settings/org.eclipse.m2e.core.prefs | 4 - 7SpringGettingDataFromJunit/.springBeans | 16 - 7SpringGettingDataFromJunit/log4j.properties | 8 - 7SpringGettingDataFromJunit/pom.xml | 58 --- .../src/main/java/controller/Demo.java | 5 - .../src/main/java/model/Account.java | 126 ----- .../src/main/java/model/Address.java | 57 --- .../src/main/java/model/Bank.java | 38 -- .../src/main/java/model/Contact.java | 58 --- .../src/main/java/model/Customer.java | 57 --- .../src/main/java/model/Statement.java | 44 -- .../src/main/java/service/AccountImp.java | 102 ---- .../src/main/java/service/AccountService.java | 18 - .../src/main/resources/applicationContext.xml | 109 ----- .../com/bankspring/spring3/JunitTest.java | 127 ----- .../target/classes/META-INF/MANIFEST.MF | 5 - .../com.bankspring/spring3/pom.properties | 7 - .../maven/com.bankspring/spring3/pom.xml | 58 --- .../target/classes/applicationContext.xml | 109 ----- .../target/classes/controller/Demo.class | Bin 259 -> 0 bytes .../target/classes/model/Account.class | Bin 2142 -> 0 bytes .../target/classes/model/Address.class | Bin 1259 -> 0 bytes .../target/classes/model/Bank.class | Bin 1126 -> 0 bytes .../target/classes/model/Contact.class | Bin 1389 -> 0 bytes .../target/classes/model/Customer.class | Bin 2017 -> 0 bytes .../target/classes/model/Statement.class | Bin 733 -> 0 bytes .../target/classes/service/AccountImp.class | Bin 2888 -> 0 bytes .../classes/service/AccountService.class | Bin 317 -> 0 bytes .../com/bankspring/spring3/JunitTest.class | Bin 4585 -> 0 bytes .../org.eclipse.core.resources.prefs | 5 - .../.settings/org.eclipse.jdt.core.prefs | 5 - 8SuperMarketxml/MydatabaseQueries.txt | 47 -- 8SuperMarketxml/bin/MydatabaseQueries.txt | 47 -- 8SuperMarketxml/bin/pom.xml | 90 ---- 8SuperMarketxml/bin/retailShopDB.mwb | Bin 7997 -> 0 bytes 8SuperMarketxml/bin/retailShopDB.mwb.bak | Bin 8001 -> 0 bytes .../bin/src/applicationContext.xml | 18 - .../main/java/controller/GroceryMain.class | Bin 2412 -> 0 bytes .../bin/src/main/java/model/Customer.class | Bin 2859 -> 0 bytes .../bin/src/main/java/model/Goods.class | Bin 2013 -> 0 bytes .../bin/src/main/java/model/Retailer.class | Bin 1708 -> 0 bytes .../bin/src/main/java/model/Supplier.class | Bin 3388 -> 0 bytes .../main/java/repository/CustomerDAO.class | Bin 745 -> 0 bytes .../java/repository/CustomerDAOImpl.class | Bin 2530 -> 0 bytes .../src/main/java/repository/GoodsDAO.class | Bin 686 -> 0 bytes .../main/java/repository/GoodsDAOImpl.class | Bin 2972 -> 0 bytes .../main/java/repository/RetailerDAO.class | Bin 730 -> 0 bytes .../java/repository/RetailerDAOImpl.class | Bin 4420 -> 0 bytes .../main/java/repository/SupplierDAO.class | Bin 757 -> 0 bytes .../java/repository/SupplierDAOImpl.class | Bin 3266 -> 0 bytes .../main/java/service/CustomerService.class | Bin 837 -> 0 bytes .../java/service/CustomerServiceImpl.class | Bin 2393 -> 0 bytes .../main/java/service/GoodsSeriveImpl.class | Bin 1871 -> 0 bytes .../src/main/java/service/GoodsService.class | Bin 714 -> 0 bytes .../main/java/service/SupplierService.class | Bin 785 -> 0 bytes .../java/service/SupplierServiceImpl.class | Bin 2003 -> 0 bytes .../src/main/resources/applicationContext.xml | 54 --- .../com/training/groceryApp/AppTest.class | Bin 3122 -> 0 bytes .../bin/target/classes/META-INF/MANIFEST.MF | 5 - .../com.training/groceryApp/pom.properties | 7 - .../maven/com.training/groceryApp/pom.xml | 90 ---- .../bin/target/classes/applicationContext.xml | 54 --- 8SuperMarketxml/pom.xml | 90 ---- 8SuperMarketxml/retailShopDB.mwb | Bin 7997 -> 0 bytes 8SuperMarketxml/retailShopDB.mwb.bak | Bin 8001 -> 0 bytes 8SuperMarketxml/src/applicationContext.xml | 76 --- .../main/java/controller/GroceryMain.class | Bin 1198 -> 0 bytes .../src/main/java/controller/GroceryMain.java | 153 ------ .../src/main/java/model/Customer.java | 99 ---- .../src/main/java/model/Goods.java | 88 ---- .../src/main/java/model/Retailer.java | 56 --- .../src/main/java/model/Supplier.java | 158 ------- .../src/main/java/repository/CustomerDAO.java | 11 - .../main/java/repository/CustomerDAOImpl.java | 40 -- .../src/main/java/repository/GoodsDAO.java | 11 - .../main/java/repository/GoodsDAOImpl.java | 115 ----- .../src/main/java/repository/RetailerDAO.java | 28 -- .../main/java/repository/RetailerDAOImpl.java | 167 ------- .../src/main/java/repository/SupplierDAO.java | 17 - .../main/java/repository/SupplierDAOImpl.java | 60 --- .../main/java/service/CustomerService.java | 11 - .../java/service/CustomerServiceImpl.java | 38 -- .../main/java/service/GoodsSeriveImpl.java | 30 -- .../src/main/java/service/GoodsService.java | 10 - .../main/java/service/RetailerService.java | 30 -- .../java/service/RetailerServiceImpl.java | 50 -- .../main/java/service/SupplierService.java | 13 - .../java/service/SupplierServiceImpl.java | 33 -- .../src/main/resources/applicationContext.xml | 54 --- .../java/com/training/groceryApp/AppTest.java | 310 ------------ .../target/classes/META-INF/MANIFEST.MF | 5 - .../com.training/groceryApp/pom.properties | 7 - .../maven/com.training/groceryApp/pom.xml | 90 ---- .../target/classes/applicationContext.xml | 54 --- .../classes/controller/GroceryMain.class | Bin 1187 -> 0 bytes .../target/classes/model/Customer.class | Bin 1473 -> 0 bytes .../target/classes/model/Goods.class | Bin 1324 -> 0 bytes .../target/classes/model/Retailer.class | Bin 896 -> 0 bytes .../target/classes/model/Supplier.class | Bin 2666 -> 0 bytes .../classes/repository/CustomerDAO.class | Bin 240 -> 0 bytes .../classes/repository/CustomerDAOImpl.class | Bin 1874 -> 0 bytes .../target/classes/repository/GoodsDAO.class | Bin 230 -> 0 bytes .../classes/repository/GoodsDAOImpl.class | Bin 1968 -> 0 bytes .../classes/repository/RetailerDAO.class | Bin 439 -> 0 bytes .../repository/RetailerDAOImpl$1.class | Bin 2090 -> 0 bytes .../repository/RetailerDAOImpl$2.class | Bin 2138 -> 0 bytes .../repository/RetailerDAOImpl$3.class | Bin 2343 -> 0 bytes .../classes/repository/RetailerDAOImpl.class | Bin 2523 -> 0 bytes .../classes/repository/SupplierDAO.class | Bin 264 -> 0 bytes .../classes/repository/SupplierDAOImpl.class | Bin 2097 -> 0 bytes .../classes/service/CustomerService.class | Bin 276 -> 0 bytes .../classes/service/CustomerServiceImpl.class | Bin 921 -> 0 bytes .../classes/service/GoodsSeriveImpl.class | Bin 1131 -> 0 bytes .../target/classes/service/GoodsService.class | Bin 227 -> 0 bytes .../classes/service/RetailerService.class | Bin 424 -> 0 bytes .../classes/service/RetailerServiceImpl.class | Bin 1240 -> 0 bytes .../classes/service/SupplierService.class | Bin 244 -> 0 bytes .../classes/service/SupplierServiceImpl.class | Bin 1200 -> 0 bytes .../com/training/groceryApp/AppTest.class | Bin 8771 -> 0 bytes 9SuperMarketJavaConfig/.classpath | 31 -- 9SuperMarketJavaConfig/.eclipse-pmd | 7 - 9SuperMarketJavaConfig/.project | 34 -- .../org.eclipse.core.resources.prefs | 5 - .../.settings/org.eclipse.jdt.core.prefs | 5 - 9SuperMarketJavaConfig/MydatabaseQueries.txt | 47 -- 9SuperMarketJavaConfig/bin/.eclipse-pmd | 7 - 9SuperMarketJavaConfig/bin/.project | 23 - .../org.eclipse.core.resources.prefs | 5 - .../bin/.settings/org.eclipse.jdt.core.prefs | 5 - .../bin/MydatabaseQueries.txt | 47 -- 9SuperMarketJavaConfig/bin/pom.xml | 90 ---- 9SuperMarketJavaConfig/bin/retailShopDB.mwb | Bin 7997 -> 0 bytes .../bin/retailShopDB.mwb.bak | Bin 8001 -> 0 bytes .../main/java/controller/AppJavaConfig.class | Bin 7721 -> 0 bytes .../main/java/controller/GroceryMain.class | Bin 2318 -> 0 bytes .../bin/src/main/java/model/Customer.class | Bin 2818 -> 0 bytes .../bin/src/main/java/model/Goods.class | Bin 2013 -> 0 bytes .../bin/src/main/java/model/Retailer.class | Bin 1874 -> 0 bytes .../bin/src/main/java/model/Supplier.class | Bin 4450 -> 0 bytes .../main/java/repository/CustomerDAO.class | Bin 745 -> 0 bytes .../java/repository/CustomerDAOImpl.class | Bin 2964 -> 0 bytes .../src/main/java/repository/GoodsDAO.class | Bin 721 -> 0 bytes .../main/java/repository/GoodsDAOImpl.class | Bin 3459 -> 0 bytes .../main/java/repository/RetailerDAO.class | Bin 1066 -> 0 bytes .../java/repository/RetailerDAOImpl.class | Bin 8640 -> 0 bytes .../main/java/repository/SupplierDAO.class | Bin 757 -> 0 bytes .../java/repository/SupplierDAOImpl.class | Bin 3306 -> 0 bytes .../main/java/service/CustomerService.class | Bin 744 -> 0 bytes .../java/service/CustomerServiceImpl.class | Bin 2354 -> 0 bytes .../main/java/service/GoodsSeriveImpl.class | Bin 2080 -> 0 bytes .../src/main/java/service/GoodsService.class | Bin 720 -> 0 bytes .../main/java/service/GoodsServiceImpl.class | Bin 2450 -> 0 bytes .../main/java/service/RetailerService.class | Bin 1065 -> 0 bytes .../java/service/RetailerServiceImpl.class | Bin 3171 -> 0 bytes .../main/java/service/SupplierService.class | Bin 756 -> 0 bytes .../java/service/SupplierServiceImpl.class | Bin 2277 -> 0 bytes .../src/main/resources/applicationContext.xml | 76 --- .../src/main/resources/database.properties | 4 - .../com/training/groceryApp/AppTest.class | Bin 10115 -> 0 bytes .../bin/target/classes/META-INF/MANIFEST.MF | 5 - .../com.training/groceryApp/pom.properties | 7 - .../maven/com.training/groceryApp/pom.xml | 90 ---- .../bin/target/classes/applicationContext.xml | 76 --- .../bin/target/classes/database.properties | 4 - 9SuperMarketJavaConfig/home.jsp | 26 - 9SuperMarketJavaConfig/index.html | 8 - 9SuperMarketJavaConfig/pom.xml | 104 ---- 9SuperMarketJavaConfig/retailShopDB.mwb | Bin 7997 -> 0 bytes 9SuperMarketJavaConfig/retailShopDB.mwb.bak | Bin 8001 -> 0 bytes .../main/java/MainServlet/DemoServlet.java | 50 -- .../main/java/controller/AppJavaConfig.java | 154 ------ .../main/java/controller/GroceryMain.class | Bin 1198 -> 0 bytes .../src/main/java/controller/GroceryMain.java | 120 ----- .../src/main/java/model/Customer.java | 133 ------ .../src/main/java/model/Goods.java | 89 ---- .../src/main/java/model/Retailer.java | 68 --- .../src/main/java/model/Supplier.java | 173 ------- .../src/main/java/repository/CustomerDAO.java | 15 - .../main/java/repository/CustomerDAOImpl.java | 49 -- .../src/main/java/repository/GoodsDAO.java | 13 - .../main/java/repository/GoodsDAOImpl.java | 68 --- .../src/main/java/repository/RetailerDAO.java | 28 -- .../main/java/repository/RetailerDAOImpl.java | 153 ------ .../src/main/java/repository/SupplierDAO.java | 17 - .../main/java/repository/SupplierDAOImpl.java | 65 --- .../main/java/service/CustomerService.java | 14 - .../java/service/CustomerServiceImpl.java | 48 -- .../main/java/service/GoodsSeriveImpl.java | 49 -- .../src/main/java/service/GoodsService.java | 30 -- .../main/java/service/GoodsServiceImpl.java | 46 -- .../main/java/service/RetailerService.java | 30 -- .../java/service/RetailerServiceImpl.java | 52 -- .../main/java/service/SupplierService.java | 30 -- .../java/service/SupplierServiceImpl.java | 51 -- .../src/main/resources/applicationContext.xml | 76 --- .../src/main/resources/database.properties | 4 - .../java/com/training/groceryApp/AppTest.java | 444 ------------------ .../target/classes/META-INF/MANIFEST.MF | 5 - .../com.training/groceryApp/pom.properties | 7 - .../maven/com.training/groceryApp/pom.xml | 104 ---- .../classes/MainServlet/DemoServlet.class | Bin 2102 -> 0 bytes .../target/classes/applicationContext.xml | 76 --- .../classes/controller/AppJavaConfig.class | Bin 3191 -> 0 bytes .../classes/controller/GroceryMain.class | Bin 1274 -> 0 bytes .../target/classes/database.properties | 4 - .../target/classes/model/Customer.class | Bin 1461 -> 0 bytes .../target/classes/model/Goods.class | Bin 1324 -> 0 bytes .../target/classes/model/Retailer.class | Bin 896 -> 0 bytes .../target/classes/model/Supplier.class | Bin 3198 -> 0 bytes .../classes/repository/CustomerDAO.class | Bin 240 -> 0 bytes .../classes/repository/CustomerDAOImpl.class | Bin 2125 -> 0 bytes .../target/classes/repository/GoodsDAO.class | Bin 230 -> 0 bytes .../classes/repository/GoodsDAOImpl.class | Bin 2245 -> 0 bytes .../classes/repository/RetailerDAO.class | Bin 419 -> 0 bytes .../repository/RetailerDAOImpl$1.class | Bin 2090 -> 0 bytes .../repository/RetailerDAOImpl$2.class | Bin 2138 -> 0 bytes .../repository/RetailerDAOImpl$3.class | Bin 2343 -> 0 bytes .../classes/repository/RetailerDAOImpl.class | Bin 2592 -> 0 bytes .../classes/repository/SupplierDAO.class | Bin 264 -> 0 bytes .../classes/repository/SupplierDAOImpl.class | Bin 2273 -> 0 bytes .../classes/service/CustomerService.class | Bin 245 -> 0 bytes .../classes/service/CustomerServiceImpl.class | Bin 1270 -> 0 bytes .../classes/service/GoodsSeriveImpl.class | Bin 1203 -> 0 bytes .../target/classes/service/GoodsService.class | Bin 235 -> 0 bytes .../classes/service/GoodsServiceImpl.class | Bin 1263 -> 0 bytes .../classes/service/RetailerService.class | Bin 424 -> 0 bytes .../classes/service/RetailerServiceImpl.class | Bin 1270 -> 0 bytes .../classes/service/SupplierService.class | Bin 269 -> 0 bytes .../classes/service/SupplierServiceImpl.class | Bin 1263 -> 0 bytes .../com/training/groceryApp/AppTest.class | Bin 11470 -> 0 bytes AllStudyMaterialLinksToLearn | 145 ------ Angular 5 important link | 12 - BlackPearl Configuration file | 16 - CheckList.xlsx | Bin 9119 -> 0 bytes CheckListRam.xlsx | Bin 9140 -> 0 bytes .../.classpath | 31 -- .../.eclipse-pmd | 7 - .../.project | 40 -- .../org.eclipse.core.resources.prefs | 5 - .../.settings/org.eclipse.jdt.core.prefs | 5 - ....eclipse.wst.common.project.facet.core.xml | 4 - .../org.springframework.ide.eclipse.prefs | 2 - .../org.eclipse.core.resources.prefs | 5 - .../bin/.settings/org.eclipse.jdt.core.prefs | 5 - ....eclipse.wst.common.project.facet.core.xml | 4 - .../org.springframework.ide.eclipse.prefs | 2 - .../bin/mvnw | 225 --------- .../bin/mvnw.cmd | 143 ------ .../bin/pom.xml | 60 --- .../com/springboot/bank/BankApplication.class | Bin 1353 -> 0 bytes .../bank/controller/BankController.class | Bin 4318 -> 0 bytes .../java/com/springboot/bank/model/ATM.class | Bin 3833 -> 0 bytes .../java/com/springboot/bank/model/Bank.class | Bin 4678 -> 0 bytes .../com/springboot/bank/model/Customer.class | Bin 4636 -> 0 bytes .../springboot/bank/repository/BankDAO.class | Bin 310 -> 0 bytes .../bank/repository/CustomerDAO.class | Bin 326 -> 0 bytes .../springboot/bank/service/BankService.class | Bin 1080 -> 0 bytes .../bank/service/BankServiceImpl.class | Bin 3624 -> 0 bytes .../bank/service/CustomerService.class | Bin 795 -> 0 bytes .../bank/service/CustomerServiceImpl.class | Bin 3380 -> 0 bytes .../src/main/resources/application.properties | 13 - .../bank/BankApplicationTests.class | Bin 1228 -> 0 bytes .../bin/target/classes/META-INF/MANIFEST.MF | 23 - .../maven/com.springboot/bank/pom.properties | 17 - .../maven/com.springboot/bank/pom.xml | 60 --- .../bin/target/classes/application.properties | 13 - .../BankApp in spring boot new Eureka/mvnw | 225 --------- .../mvnw.cmd | 143 ------ .../BankApp in spring boot new Eureka/pom.xml | 98 ---- .../com/springboot/bank/BankApplication.java | 12 - .../bank/controller/ATMController.java | 78 --- .../bank/controller/AccountController.java | 90 ---- .../bank/controller/BankController.java | 59 --- .../BankDenominationController.java | 78 --- .../bank/controller/CustomerController.java | 83 ---- .../controller/TransactionController.java | 61 --- .../com/springboot/bank/dto/ATMDetails.java | 110 ----- .../springboot/bank/dto/AccountDetails.java | 111 ----- .../bank/dto/WrapperATMDenomination.java | 93 ---- .../springboot/bank/dto/WrapperBankATM.java | 73 --- .../bank/dto/WrapperBankCustomer.java | 73 --- .../bank/dto/WrapperBankCustomerAccount.java | 93 ---- .../bank/dto/WrapperDenomination.java | 114 ----- .../com/springboot/bank/enums/AllEnums.java | 20 - .../bank/exception/BankException.java | 15 - .../java/com/springboot/bank/model/ATM.java | 99 ---- .../bank/model/ATMDenomination.java | 36 -- .../com/springboot/bank/model/Account.java | 128 ----- .../java/com/springboot/bank/model/Audit.java | 162 ------- .../java/com/springboot/bank/model/Bank.java | 86 ---- .../com/springboot/bank/model/BaseEntity.java | 18 - .../com/springboot/bank/model/Customer.java | 140 ------ .../springboot/bank/model/Denomination.java | 138 ------ .../springboot/bank/model/Transaction.java | 145 ------ .../springboot/bank/repository/ATMDAO.java | 15 - .../bank/repository/AccountDAO.java | 15 - .../springboot/bank/repository/BankDAO.java | 15 - .../bank/repository/BankDenominationDAO.java | 16 - .../bank/repository/CustomerDAO.java | 22 - .../bank/repository/TransactionDAO.java | 15 - .../springboot/bank/service/ATMService.java | 25 - .../bank/service/ATMServiceImpl.java | 157 ------- .../bank/service/AccountService.java | 24 - .../bank/service/AccountServiceImpl.java | 192 -------- .../bank/service/AuditServiceImpl.java | 30 -- .../bank/service/BankDenominationService.java | 24 - .../service/BankDenominationServiceImpl.java | 130 ----- .../springboot/bank/service/BankService.java | 22 - .../bank/service/BankServiceImpl.java | 60 --- .../bank/service/CustomerService.java | 22 - .../bank/service/CustomerServiceImpl.java | 125 ----- .../bank/service/IAuditService.java | 9 - .../bank/service/TransactionService.java | 20 - .../bank/service/TransactionServiceImpl.java | 75 --- .../src/main/resources/application.properties | 7 - .../java/com/springboot/bank/AccountTest.java | 135 ------ .../com/springboot/bank/BankServiceTest.java | 66 --- .../springboot/bank/CustomerServiceTest.java | 93 ---- .../target/classes/META-INF/MANIFEST.MF | 10 - .../maven/com.springboot/bank/pom.properties | 7 - .../maven/com.springboot/bank/pom.xml | 98 ---- .../target/classes/application.properties | 7 - .../com/springboot/bank/BankApplication.class | Bin 710 -> 0 bytes .../bank/controller/ATMController.class | Bin 3745 -> 0 bytes .../bank/controller/AccountController.class | Bin 3980 -> 0 bytes .../bank/controller/BankController.class | Bin 2808 -> 0 bytes .../BankDenominationController.class | Bin 2993 -> 0 bytes .../bank/controller/CustomerController.class | Bin 3658 -> 0 bytes .../controller/TransactionController.class | Bin 3059 -> 0 bytes .../com/springboot/bank/dto/ATMDetails.class | Bin 1861 -> 0 bytes .../springboot/bank/dto/AccountDetails.class | Bin 1897 -> 0 bytes .../bank/dto/WrapperATMDenomination.class | Bin 2014 -> 0 bytes .../springboot/bank/dto/WrapperBankATM.class | Bin 1384 -> 0 bytes .../bank/dto/WrapperBankCustomer.class | Bin 1444 -> 0 bytes .../bank/dto/WrapperBankCustomerAccount.class | Bin 1738 -> 0 bytes .../bank/dto/WrapperDenomination.class | Bin 1619 -> 0 bytes .../bank/enums/AllEnums$EventName.class | Bin 1285 -> 0 bytes .../bank/enums/AllEnums$EventType.class | Bin 1238 -> 0 bytes .../com/springboot/bank/enums/AllEnums.class | Bin 464 -> 0 bytes .../bank/exception/BankException.class | Bin 391 -> 0 bytes .../com/springboot/bank/model/ATM.class | Bin 2207 -> 0 bytes .../bank/model/ATMDenomination.class | Bin 744 -> 0 bytes .../com/springboot/bank/model/Account.class | Bin 2784 -> 0 bytes .../com/springboot/bank/model/Audit.class | Bin 2679 -> 0 bytes .../com/springboot/bank/model/Bank.class | Bin 1907 -> 0 bytes .../springboot/bank/model/BaseEntity.class | Bin 486 -> 0 bytes .../com/springboot/bank/model/Customer.class | Bin 2508 -> 0 bytes .../springboot/bank/model/Denomination.class | Bin 2724 -> 0 bytes .../springboot/bank/model/Transaction.class | Bin 3194 -> 0 bytes .../springboot/bank/repository/ATMDAO.class | Bin 330 -> 0 bytes .../bank/repository/AccountDAO.class | Bin 342 -> 0 bytes .../springboot/bank/repository/BankDAO.class | Bin 333 -> 0 bytes .../bank/repository/BankDenominationDAO.class | Bin 365 -> 0 bytes .../bank/repository/CustomerDAO.class | Bin 590 -> 0 bytes .../bank/repository/TransactionDAO.class | Bin 354 -> 0 bytes .../springboot/bank/service/ATMService.class | Bin 530 -> 0 bytes .../bank/service/ATMServiceImpl.class | Bin 1978 -> 0 bytes .../bank/service/AccountService.class | Bin 566 -> 0 bytes .../bank/service/AccountServiceImpl.class | Bin 2387 -> 0 bytes .../bank/service/AuditServiceImpl.class | Bin 1283 -> 0 bytes .../service/BankDenominationService.class | Bin 300 -> 0 bytes .../service/BankDenominationServiceImpl.class | Bin 3157 -> 0 bytes .../springboot/bank/service/BankService.class | Bin 381 -> 0 bytes .../bank/service/BankServiceImpl.class | Bin 1475 -> 0 bytes .../bank/service/CustomerService.class | Bin 525 -> 0 bytes .../bank/service/CustomerServiceImpl.class | Bin 2249 -> 0 bytes .../bank/service/IAuditService.class | Bin 200 -> 0 bytes .../bank/service/TransactionService.class | Bin 492 -> 0 bytes .../bank/service/TransactionServiceImpl.class | Bin 2363 -> 0 bytes Eureka Server App/bankmongo/.gitignore | 25 - .../bankmongo/.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - Eureka Server App/bankmongo/mvnw | 225 --------- Eureka Server App/bankmongo/mvnw.cmd | 143 ------ Eureka Server App/bankmongo/pom.xml | 79 ---- .../bankmongo/BankmongoApplication.java | 12 - .../com/training/bankmongo/Model/Audit.java | 161 ------- .../bankmongo/Repository/AuditDAO.java | 22 - .../bankmongo/Service/AuditService.java | 24 - .../bankmongo/Service/AuditServiceImpl.java | 78 --- .../bankmongo/controller/AuditController.java | 115 ----- .../src/main/resources/application.properties | 9 - .../bankmongo/BankmongoApplicationTests.java | 119 ----- Eureka Server App/eurekaserver/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - Eureka Server App/eurekaserver/mvnw | 225 --------- Eureka Server App/eurekaserver/mvnw.cmd | 143 ------ Eureka Server App/eurekaserver/pom.xml | 82 ---- .../eurekaserver/EurekaserverApplication.java | 14 - .../src/main/resources/application.properties | 0 .../EurekaserverApplicationTests.java | 16 - EurekaDoubts | 22 - .../17BankInCapg/.eclipse-pmd | 7 - .../17BankInCapg/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../17BankInCapg/mvnw | 225 --------- .../17BankInCapg/mvnw.cmd | 143 ------ .../17BankInCapg/pom.xml | 107 ----- .../java/com/bank/BankApplicationMain.java | 18 - .../com/bank/Exception/ManagedException.java | 11 - .../com/bank/controller/ATMController.java | 85 ---- .../bank/controller/AccountController.java | 128 ----- .../com/bank/controller/BankController.java | 59 --- .../bank/controller/CustomerController.java | 119 ----- .../controller/DenominationController.java | 52 -- .../controller/TransactionController.java | 59 --- .../src/main/java/com/bank/dto/ATMReq.java | 44 -- .../java/com/bank/dto/AccountRequest.java | 56 --- .../java/com/bank/dto/AccountTransaction.java | 60 --- .../main/java/com/bank/dto/AddMoneyReq.java | 47 -- .../com/bank/dto/CreateCustomerRequest.java | 46 -- .../bank/dto/CreateDenominationRequest.java | 48 -- .../java/com/bank/dto/TransactionReq.java | 47 -- .../java/com/bank/dto/WithrawMoneyReq.java | 60 --- .../src/main/java/com/bank/model/ATM.java | 91 ---- .../java/com/bank/model/ATMDenomination.java | 81 ---- .../src/main/java/com/bank/model/Account.java | 101 ---- .../main/java/com/bank/model/AuditLog.java | 119 ----- .../src/main/java/com/bank/model/Bank.java | 86 ---- .../java/com/bank/model/BankDenomination.java | 147 ------ .../main/java/com/bank/model/BaseEntity.java | 46 -- .../main/java/com/bank/model/Customer.java | 126 ----- .../main/java/com/bank/model/RefMoney.java | 30 -- .../main/java/com/bank/model/Transaction.java | 116 ----- .../bank/repository/ATMDenoRepository.java | 25 - .../com/bank/repository/ATMRepository.java | 20 - .../bank/repository/AccountRepository.java | 21 - .../com/bank/repository/BankRepository.java | 25 - .../bank/repository/CustomerRepository.java | 19 - .../repository/DenominationRepository.java | 22 - .../bank/repository/RefMoneyRepository.java | 23 - .../repository/TransactionRepository.java | 27 -- .../java/com/bank/service/ATMServiceImpl.java | 166 ------- .../com/bank/service/AccountServiceImpl.java | 164 ------- .../com/bank/service/AtmDenoServiceImpl.java | 100 ---- .../com/bank/service/AuditServiceImpl.java | 49 -- .../service/BankDenominationServiceImpl.java | 106 ----- .../com/bank/service/BankServiceImpl.java | 62 --- .../com/bank/service/CustomerServiceImpl.java | 91 ---- .../com/bank/service/DenominationHelper.java | 83 ---- .../java/com/bank/service/IATMService.java | 32 -- .../com/bank/service/IAccountService.java | 36 -- .../com/bank/service/IAtmDenoService.java | 15 - .../service/IBankDenominationService.java | 16 - .../java/com/bank/service/IBankService.java | 24 - .../com/bank/service/ICustomerService.java | 26 - .../java/com/bank/service/IFeignClient.java | 20 - .../java/com/bank/service/IRefServcie.java | 30 -- .../com/bank/service/ITransactionService.java | 27 -- .../java/com/bank/service/RefServcieImpl.java | 50 -- .../bank/service/TransactionServiceImpl.java | 43 -- .../src/main/resources/application.properties | 16 - .../src/main/resources/bootstrap.properties | 2 - .../java/com/bank/testcases/AllTestCases.java | 227 --------- .../employee-zuul-service/.classpath | 36 -- .../employee-zuul-service/.project | 28 -- .../.settings/org.eclipse.jdt.core.prefs | 13 - .../.settings/org.eclipse.m2e.core.prefs | 4 - .../org.springframework.ide.eclipse.prefs | 2 - .../employee-zuul-service/pom.xml | 67 --- .../SpringBootHelloWorldApplication.java | 42 -- .../com/javainuse/filter/ErrorFilter.java | 29 -- .../java/com/javainuse/filter/PostFilter.java | 29 -- .../java/com/javainuse/filter/PreFilter.java | 36 -- .../com/javainuse/filter/RouteFilter.java | 29 -- .../src/main/resources/application.properties | 11 - .../src/main/resources/bootstrap.properties | 1 - .../target/classes/META-INF/MANIFEST.MF | 11 - .../zuul-service1/pom.properties | 7 - .../maven/com.javainuse/zuul-service1/pom.xml | 67 --- .../target/classes/application.properties | 11 - .../target/classes/bootstrap.properties | 1 - .../SpringBootHelloWorldApplication.class | Bin 1609 -> 0 bytes .../com/javainuse/filter/ErrorFilter.class | Bin 828 -> 0 bytes .../com/javainuse/filter/PostFilter.class | Bin 823 -> 0 bytes .../com/javainuse/filter/PreFilter.class | Bin 1491 -> 0 bytes .../com/javainuse/filter/RouteFilter.class | Bin 828 -> 0 bytes .../eurekaserver/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../eurekaserver/mvnw | 225 --------- .../eurekaserver/mvnw.cmd | 143 ------ .../eurekaserver/pom.xml | 82 ---- .../eurekaserver/EurekaserverApplication.java | 14 - .../src/main/resources/application.properties | 8 - .../EurekaserverApplicationTests.java | 16 - .../mongodbClient2/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../mongodbClient2/bootstrap.properties | 6 - .../mongodbClient2/mvnw | 225 --------- .../mongodbClient2/mvnw.cmd | 143 ------ .../mongodbClient2/pom.xml | 95 ---- .../src/main/java/com/mongo/db/MongoMain.java | 14 - .../mongo/db/controller/AuditController.java | 123 ----- .../java/com/mongo/db/document/AuditLog.java | 144 ------ .../com/mongo/db/document/BaseEntity.java | 40 -- .../mongo/db/exception/AuditException.java | 14 - .../mongo/db/repo/AuditMongoRepository.java | 30 -- .../mongo/db/service/AuditServiceImpl.java | 90 ---- .../com/mongo/db/service/IAuditService.java | 47 -- .../com/mongo/db/vo/updateAuditRequest.java | 34 -- .../src/main/resources/application.properties | 19 - .../com/mongoDb/mongodbExample/MongoTest.java | 141 ------ .../MongodbExampleApplicationTests.java | 16 - .../spring-cloud-config-server-new/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../spring-cloud-config-server-new/mvnw | 225 --------- .../spring-cloud-config-server-new/mvnw.cmd | 143 ------ .../spring-cloud-config-server-new/pom.xml | 63 --- ...SpringCloudConfigServerNewApplication.java | 15 - .../src/main/resources/application.properties | 5 - ...gCloudConfigServerNewApplicationTests.java | 16 - .../17BankInCapg/.eclipse-pmd | 7 - .../17BankInCapg/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../17BankInCapg/mvnw | 225 --------- .../17BankInCapg/mvnw.cmd | 143 ------ .../17BankInCapg/pom.xml | 104 ---- .../java/com/bank/BankApplicationMain.java | 34 -- .../com/bank/Exception/ManagedException.java | 11 - .../com/bank/controller/ATMController.java | 85 ---- .../bank/controller/AccountController.java | 128 ----- .../com/bank/controller/BankController.java | 59 --- .../bank/controller/CustomerController.java | 119 ----- .../controller/DenominationController.java | 52 -- .../controller/TransactionController.java | 59 --- .../src/main/java/com/bank/dto/ATMReq.java | 44 -- .../java/com/bank/dto/AccountRequest.java | 56 --- .../java/com/bank/dto/AccountTransaction.java | 60 --- .../main/java/com/bank/dto/AddMoneyReq.java | 47 -- .../com/bank/dto/CreateCustomerRequest.java | 46 -- .../bank/dto/CreateDenominationRequest.java | 48 -- .../java/com/bank/dto/TransactionReq.java | 47 -- .../java/com/bank/dto/WithrawMoneyReq.java | 60 --- .../src/main/java/com/bank/model/ATM.java | 91 ---- .../java/com/bank/model/ATMDenomination.java | 81 ---- .../src/main/java/com/bank/model/Account.java | 101 ---- .../main/java/com/bank/model/AuditLog.java | 119 ----- .../src/main/java/com/bank/model/Bank.java | 86 ---- .../java/com/bank/model/BankDenomination.java | 147 ------ .../main/java/com/bank/model/BaseEntity.java | 46 -- .../main/java/com/bank/model/Customer.java | 126 ----- .../main/java/com/bank/model/RefMoney.java | 30 -- .../main/java/com/bank/model/Transaction.java | 116 ----- .../bank/repository/ATMDenoRepository.java | 25 - .../com/bank/repository/ATMRepository.java | 20 - .../bank/repository/AccountRepository.java | 21 - .../com/bank/repository/BankRepository.java | 25 - .../bank/repository/CustomerRepository.java | 19 - .../repository/DenominationRepository.java | 22 - .../bank/repository/RefMoneyRepository.java | 23 - .../repository/TransactionRepository.java | 27 -- .../java/com/bank/service/ATMServiceImpl.java | 166 ------- .../com/bank/service/AccountServiceImpl.java | 164 ------- .../com/bank/service/AtmDenoServiceImpl.java | 100 ---- .../com/bank/service/AuditServiceImpl.java | 49 -- .../service/BankDenominationServiceImpl.java | 106 ----- .../com/bank/service/BankServiceImpl.java | 62 --- .../com/bank/service/CustomerServiceImpl.java | 91 ---- .../com/bank/service/DenominationHelper.java | 83 ---- .../java/com/bank/service/IATMService.java | 32 -- .../com/bank/service/IAccountService.java | 36 -- .../com/bank/service/IAtmDenoService.java | 15 - .../service/IBankDenominationService.java | 16 - .../java/com/bank/service/IBankService.java | 24 - .../com/bank/service/ICustomerService.java | 26 - .../java/com/bank/service/IFeignClient.java | 20 - .../java/com/bank/service/IRefServcie.java | 30 -- .../com/bank/service/ITransactionService.java | 27 -- .../java/com/bank/service/RefServcieImpl.java | 50 -- .../bank/service/TransactionServiceImpl.java | 43 -- .../src/main/resources/application.properties | 13 - .../src/main/resources/bootstrap.properties | 1 - .../java/com/bank/testcases/AllTestCases.java | 227 --------- .../eurekaserver/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../eurekaserver/mvnw | 225 --------- .../eurekaserver/mvnw.cmd | 143 ------ .../eurekaserver/pom.xml | 82 ---- .../eurekaserver/EurekaserverApplication.java | 14 - .../src/main/resources/application.properties | 11 - .../EurekaserverApplicationTests.java | 16 - .../mongodbClient2/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../mongodbClient2/mvnw | 225 --------- .../mongodbClient2/mvnw.cmd | 143 ------ .../mongodbClient2/pom.xml | 95 ---- .../src/main/java/com/mongo/db/MongoMain.java | 14 - .../mongo/db/controller/AuditController.java | 123 ----- .../java/com/mongo/db/document/AuditLog.java | 144 ------ .../com/mongo/db/document/BaseEntity.java | 40 -- .../mongo/db/exception/AuditException.java | 14 - .../mongo/db/repo/AuditMongoRepository.java | 30 -- .../mongo/db/service/AuditServiceImpl.java | 90 ---- .../com/mongo/db/service/IAuditService.java | 47 -- .../com/mongo/db/vo/updateAuditRequest.java | 34 -- .../src/main/resources/application.properties | 12 - .../com/mongoDb/mongodbExample/MongoTest.java | 141 ------ .../MongodbExampleApplicationTests.java | 16 - .../17BankInCapg/.eclipse-pmd | 7 - .../17BankInCapg/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../17BankInCapg/mvnw | 225 --------- .../17BankInCapg/mvnw.cmd | 143 ------ .../17BankInCapg/pom.xml | 104 ---- .../java/com/bank/BankApplicationMain.java | 34 -- .../com/bank/Exception/ManagedException.java | 11 - .../com/bank/controller/ATMController.java | 85 ---- .../bank/controller/AccountController.java | 128 ----- .../com/bank/controller/BankController.java | 59 --- .../bank/controller/CustomerController.java | 119 ----- .../controller/DenominationController.java | 52 -- .../controller/TransactionController.java | 59 --- .../src/main/java/com/bank/dto/ATMReq.java | 44 -- .../java/com/bank/dto/AccountRequest.java | 56 --- .../java/com/bank/dto/AccountTransaction.java | 60 --- .../main/java/com/bank/dto/AddMoneyReq.java | 47 -- .../com/bank/dto/CreateCustomerRequest.java | 46 -- .../bank/dto/CreateDenominationRequest.java | 48 -- .../java/com/bank/dto/TransactionReq.java | 47 -- .../java/com/bank/dto/WithrawMoneyReq.java | 60 --- .../src/main/java/com/bank/model/ATM.java | 91 ---- .../java/com/bank/model/ATMDenomination.java | 81 ---- .../src/main/java/com/bank/model/Account.java | 101 ---- .../main/java/com/bank/model/AuditLog.java | 119 ----- .../src/main/java/com/bank/model/Bank.java | 86 ---- .../java/com/bank/model/BankDenomination.java | 147 ------ .../main/java/com/bank/model/BaseEntity.java | 46 -- .../main/java/com/bank/model/Customer.java | 126 ----- .../main/java/com/bank/model/RefMoney.java | 30 -- .../main/java/com/bank/model/Transaction.java | 116 ----- .../bank/repository/ATMDenoRepository.java | 25 - .../com/bank/repository/ATMRepository.java | 20 - .../bank/repository/AccountRepository.java | 21 - .../com/bank/repository/BankRepository.java | 25 - .../bank/repository/CustomerRepository.java | 19 - .../repository/DenominationRepository.java | 22 - .../bank/repository/RefMoneyRepository.java | 23 - .../repository/TransactionRepository.java | 27 -- .../java/com/bank/service/ATMServiceImpl.java | 166 ------- .../com/bank/service/AccountServiceImpl.java | 164 ------- .../com/bank/service/AtmDenoServiceImpl.java | 100 ---- .../com/bank/service/AuditServiceImpl.java | 49 -- .../service/BankDenominationServiceImpl.java | 106 ----- .../com/bank/service/BankServiceImpl.java | 62 --- .../com/bank/service/CustomerServiceImpl.java | 91 ---- .../com/bank/service/DenominationHelper.java | 83 ---- .../java/com/bank/service/IATMService.java | 32 -- .../com/bank/service/IAccountService.java | 36 -- .../com/bank/service/IAtmDenoService.java | 15 - .../service/IBankDenominationService.java | 16 - .../java/com/bank/service/IBankService.java | 24 - .../com/bank/service/ICustomerService.java | 26 - .../java/com/bank/service/IFeignClient.java | 20 - .../java/com/bank/service/IRefServcie.java | 30 -- .../com/bank/service/ITransactionService.java | 27 -- .../java/com/bank/service/RefServcieImpl.java | 50 -- .../bank/service/TransactionServiceImpl.java | 43 -- .../src/main/resources/application.properties | 14 - .../src/main/resources/bootstrap.properties | 1 - .../java/com/bank/testcases/AllTestCases.java | 227 --------- .../employee-zuul-service/.classpath | 36 -- .../employee-zuul-service/.project | 28 -- .../.settings/org.eclipse.jdt.core.prefs | 13 - .../.settings/org.eclipse.m2e.core.prefs | 4 - .../org.springframework.ide.eclipse.prefs | 2 - .../employee-zuul-service/pom.xml | 67 --- .../SpringBootHelloWorldApplication.java | 42 -- .../com/javainuse/filter/ErrorFilter.java | 29 -- .../java/com/javainuse/filter/PostFilter.java | 29 -- .../java/com/javainuse/filter/PreFilter.java | 36 -- .../com/javainuse/filter/RouteFilter.java | 29 -- .../src/main/resources/application.properties | 11 - .../src/main/resources/bootstrap.properties | 1 - .../target/classes/META-INF/MANIFEST.MF | 11 - .../employee-zuul-service/pom.properties | 7 - .../employee-zuul-service/pom.xml | 67 --- .../target/classes/application.properties | 11 - .../target/classes/bootstrap.properties | 1 - .../SpringBootHelloWorldApplication.class | Bin 1609 -> 0 bytes .../com/javainuse/filter/ErrorFilter.class | Bin 828 -> 0 bytes .../com/javainuse/filter/PostFilter.class | Bin 823 -> 0 bytes .../com/javainuse/filter/PreFilter.class | Bin 1491 -> 0 bytes .../com/javainuse/filter/RouteFilter.class | Bin 828 -> 0 bytes .../eurekaserver/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../eurekaserver/mvnw | 225 --------- .../eurekaserver/mvnw.cmd | 143 ------ .../eurekaserver/pom.xml | 82 ---- .../eurekaserver/EurekaserverApplication.java | 14 - .../src/main/resources/application.properties | 11 - .../EurekaserverApplicationTests.java | 16 - .../mongodbClient2/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../mongodbClient2/mvnw | 225 --------- .../mongodbClient2/mvnw.cmd | 143 ------ .../mongodbClient2/pom.xml | 95 ---- .../src/main/java/com/mongo/db/MongoMain.java | 14 - .../mongo/db/controller/AuditController.java | 123 ----- .../java/com/mongo/db/document/AuditLog.java | 144 ------ .../com/mongo/db/document/BaseEntity.java | 40 -- .../mongo/db/exception/AuditException.java | 14 - .../mongo/db/repo/AuditMongoRepository.java | 30 -- .../mongo/db/service/AuditServiceImpl.java | 90 ---- .../com/mongo/db/service/IAuditService.java | 47 -- .../com/mongo/db/vo/updateAuditRequest.java | 34 -- .../src/main/resources/application.properties | 12 - .../com/mongoDb/mongodbExample/MongoTest.java | 141 ------ .../MongodbExampleApplicationTests.java | 16 - .../17BankInCapg/.eclipse-pmd | 7 - .../17BankInCapg/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../17BankInCapg/mvnw | 225 --------- .../17BankInCapg/mvnw.cmd | 143 ------ .../17BankInCapg/pom.xml | 104 ---- .../java/com/bank/BankApplicationMain.java | 32 -- .../com/bank/Exception/ManagedException.java | 11 - .../com/bank/controller/ATMController.java | 85 ---- .../bank/controller/AccountController.java | 128 ----- .../com/bank/controller/BankController.java | 59 --- .../bank/controller/CustomerController.java | 119 ----- .../controller/DenominationController.java | 52 -- .../controller/TransactionController.java | 59 --- .../src/main/java/com/bank/dto/ATMReq.java | 44 -- .../java/com/bank/dto/AccountRequest.java | 56 --- .../java/com/bank/dto/AccountTransaction.java | 60 --- .../main/java/com/bank/dto/AddMoneyReq.java | 47 -- .../com/bank/dto/CreateCustomerRequest.java | 46 -- .../bank/dto/CreateDenominationRequest.java | 48 -- .../java/com/bank/dto/TransactionReq.java | 47 -- .../java/com/bank/dto/WithrawMoneyReq.java | 60 --- .../src/main/java/com/bank/model/ATM.java | 91 ---- .../java/com/bank/model/ATMDenomination.java | 81 ---- .../src/main/java/com/bank/model/Account.java | 101 ---- .../main/java/com/bank/model/AuditLog.java | 119 ----- .../src/main/java/com/bank/model/Bank.java | 86 ---- .../java/com/bank/model/BankDenomination.java | 147 ------ .../main/java/com/bank/model/BaseEntity.java | 46 -- .../main/java/com/bank/model/Customer.java | 126 ----- .../main/java/com/bank/model/RefMoney.java | 30 -- .../main/java/com/bank/model/Transaction.java | 116 ----- .../bank/repository/ATMDenoRepository.java | 25 - .../com/bank/repository/ATMRepository.java | 20 - .../bank/repository/AccountRepository.java | 21 - .../com/bank/repository/BankRepository.java | 25 - .../bank/repository/CustomerRepository.java | 19 - .../repository/DenominationRepository.java | 22 - .../bank/repository/RefMoneyRepository.java | 23 - .../repository/TransactionRepository.java | 27 -- .../java/com/bank/service/ATMServiceImpl.java | 166 ------- .../com/bank/service/AccountServiceImpl.java | 164 ------- .../com/bank/service/AtmDenoServiceImpl.java | 100 ---- .../com/bank/service/AuditServiceImpl.java | 48 -- .../service/BankDenominationServiceImpl.java | 106 ----- .../com/bank/service/BankServiceImpl.java | 62 --- .../com/bank/service/CustomerServiceImpl.java | 86 ---- .../com/bank/service/DenominationHelper.java | 83 ---- .../java/com/bank/service/IATMService.java | 32 -- .../com/bank/service/IAccountService.java | 36 -- .../com/bank/service/IAtmDenoService.java | 15 - .../service/IBankDenominationService.java | 16 - .../java/com/bank/service/IBankService.java | 24 - .../com/bank/service/ICustomerService.java | 26 - .../java/com/bank/service/IRefServcie.java | 30 -- .../com/bank/service/ITransactionService.java | 27 -- .../java/com/bank/service/RefServcieImpl.java | 50 -- .../bank/service/TransactionServiceImpl.java | 43 -- .../src/main/resources/application.properties | 13 - .../src/main/resources/bootstrap.properties | 1 - .../java/com/bank/testcases/AllTestCases.java | 227 --------- .../eurekaserver/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../eurekaserver/mvnw | 225 --------- .../eurekaserver/mvnw.cmd | 143 ------ .../eurekaserver/pom.xml | 82 ---- .../eurekaserver/EurekaserverApplication.java | 14 - .../src/main/resources/application.properties | 11 - .../EurekaserverApplicationTests.java | 16 - .../mongodbClient2/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../mongodbClient2/mvnw | 225 --------- .../mongodbClient2/mvnw.cmd | 143 ------ .../mongodbClient2/pom.xml | 95 ---- .../src/main/java/com/mongo/db/MongoMain.java | 14 - .../mongo/db/controller/AuditController.java | 123 ----- .../java/com/mongo/db/document/AuditLog.java | 144 ------ .../com/mongo/db/document/BaseEntity.java | 40 -- .../mongo/db/exception/AuditException.java | 14 - .../mongo/db/repo/AuditMongoRepository.java | 30 -- .../mongo/db/service/AuditServiceImpl.java | 90 ---- .../com/mongo/db/service/IAuditService.java | 47 -- .../com/mongo/db/vo/updateAuditRequest.java | 34 -- .../src/main/resources/application.properties | 12 - .../com/mongoDb/mongodbExample/MongoTest.java | 141 ------ .../MongodbExampleApplicationTests.java | 16 - HowToUseSwaggerUI | 10 - IMP for execution h2 | 38 -- MongoDB-Document (1).txt | 74 --- MyDatabase for SuperMarket Project/.gitignore | 4 - .../MydatabaseQueries.txt | 47 -- .../retailShopDB.mwb | Bin 7997 -> 0 bytes .../retailShopDB.mwb.bak | Bin 8001 -> 0 bytes PPTs/JUnit and Mockito Training v1.0 (1).pptx | Bin 1184649 -> 0 bytes PPTs/SerializationPPT1452018.pptx | Bin 86634 -> 0 bytes .../17BankInCapg/.eclipse-pmd | 7 - .../17BankInCapg/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../17BankInCapg/mvnw | 225 --------- .../17BankInCapg/mvnw.cmd | 143 ------ .../17BankInCapg/pom.xml | 73 --- .../main/java/com/bank/BankApplication.java | 13 - .../com/bank/Exception/ManagedException.java | 11 - .../com/bank/controller/ATMController.java | 85 ---- .../bank/controller/AccountController.java | 128 ----- .../com/bank/controller/BankController.java | 59 --- .../bank/controller/CustomerController.java | 118 ----- .../controller/DenominationController.java | 52 -- .../controller/TransactionController.java | 59 --- .../src/main/java/com/bank/dto/ATMReq.java | 44 -- .../java/com/bank/dto/AccountRequest.java | 56 --- .../java/com/bank/dto/AccountTransaction.java | 60 --- .../main/java/com/bank/dto/AddMoneyReq.java | 47 -- .../com/bank/dto/CreateCustomerRequest.java | 46 -- .../bank/dto/CreateDenominationRequest.java | 48 -- .../java/com/bank/dto/TransactionReq.java | 47 -- .../java/com/bank/dto/WithrawMoneyReq.java | 60 --- .../src/main/java/com/bank/model/ATM.java | 91 ---- .../java/com/bank/model/ATMDenomination.java | 81 ---- .../src/main/java/com/bank/model/Account.java | 101 ---- .../main/java/com/bank/model/AuditLog.java | 119 ----- .../src/main/java/com/bank/model/Bank.java | 86 ---- .../java/com/bank/model/BankDenomination.java | 147 ------ .../main/java/com/bank/model/BaseEntity.java | 46 -- .../main/java/com/bank/model/Customer.java | 126 ----- .../main/java/com/bank/model/RefMoney.java | 30 -- .../main/java/com/bank/model/Transaction.java | 116 ----- .../bank/repository/ATMDenoRepository.java | 18 - .../com/bank/repository/ATMRepository.java | 16 - .../bank/repository/AccountRepository.java | 15 - .../com/bank/repository/BankRepository.java | 19 - .../bank/repository/CustomerRepository.java | 18 - .../repository/DenominationRepository.java | 17 - .../bank/repository/RefMoneyRepository.java | 18 - .../repository/TransactionRepository.java | 27 -- .../java/com/bank/service/ATMServiceImpl.java | 166 ------- .../com/bank/service/AccountServiceImpl.java | 164 ------- .../com/bank/service/AtmDenoServiceImpl.java | 97 ---- .../bank/service/AuditRegistrationSource.java | 15 - .../com/bank/service/AuditServiceImpl.java | 21 - .../service/BankDenominationServiceImpl.java | 105 ----- .../com/bank/service/BankServiceImpl.java | 62 --- .../com/bank/service/CustomerServiceImpl.java | 103 ---- .../com/bank/service/DenominationHelper.java | 83 ---- .../java/com/bank/service/IATMService.java | 32 -- .../com/bank/service/IAccountService.java | 36 -- .../com/bank/service/IAtmDenoService.java | 15 - .../service/IBankDenominationService.java | 16 - .../java/com/bank/service/IBankService.java | 24 - .../com/bank/service/ICustomerService.java | 26 - .../java/com/bank/service/IRefServcie.java | 30 -- .../com/bank/service/ITransactionService.java | 27 -- .../java/com/bank/service/RefServcieImpl.java | 49 -- .../bank/service/TransactionServiceImpl.java | 43 -- .../java/com/configrabbit/RabbitConfig.java | 37 -- .../src/main/resources/application.properties | 11 - .../java/com/bank/testcases/AllTestCases.java | 227 --------- .../mongodbClient2/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../mongodbClient2/bootstrap.properties | 6 - .../mongodbClient2/mvnw | 225 --------- .../mongodbClient2/mvnw.cmd | 143 ------ .../mongodbClient2/pom.xml | 101 ---- .../src/main/java/com/mongo/db/MongoMain.java | 54 --- .../mongo/db/controller/AuditController.java | 123 ----- .../java/com/mongo/db/document/AuditLog.java | 144 ------ .../com/mongo/db/document/BaseEntity.java | 40 -- .../mongo/db/exception/AuditException.java | 14 - .../com/mongo/db/rcvlistner/MsgListener.java | 24 - .../mongo/db/repo/AuditMongoRepository.java | 30 -- .../mongo/db/service/AuditServiceImpl.java | 90 ---- .../com/mongo/db/service/IAuditService.java | 47 -- .../com/mongo/db/vo/updateAuditRequest.java | 34 -- .../src/main/resources/application.properties | 15 - .../com/mongoDb/mongodbExample/MongoTest.java | 141 ------ .../MongodbExampleApplicationTests.java | 17 - .../17BankInCapg/.eclipse-pmd | 7 - .../17BankInCapg/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../RabbitMqAuditObjectDemo/17BankInCapg/mvnw | 225 --------- .../17BankInCapg/mvnw.cmd | 143 ------ .../17BankInCapg/pom.xml | 79 ---- .../main/java/com/bank/BankApplication.java | 13 - .../com/bank/Exception/ManagedException.java | 11 - .../com/bank/controller/ATMController.java | 85 ---- .../bank/controller/AccountController.java | 128 ----- .../com/bank/controller/BankController.java | 59 --- .../bank/controller/CustomerController.java | 118 ----- .../controller/DenominationController.java | 52 -- .../controller/TransactionController.java | 59 --- .../src/main/java/com/bank/dto/ATMReq.java | 44 -- .../java/com/bank/dto/AccountRequest.java | 56 --- .../java/com/bank/dto/AccountTransaction.java | 60 --- .../main/java/com/bank/dto/AddMoneyReq.java | 47 -- .../com/bank/dto/CreateCustomerRequest.java | 46 -- .../bank/dto/CreateDenominationRequest.java | 48 -- .../java/com/bank/dto/TransactionReq.java | 47 -- .../java/com/bank/dto/WithrawMoneyReq.java | 60 --- .../src/main/java/com/bank/model/ATM.java | 91 ---- .../java/com/bank/model/ATMDenomination.java | 81 ---- .../src/main/java/com/bank/model/Account.java | 101 ---- .../main/java/com/bank/model/AuditLog.java | 120 ----- .../src/main/java/com/bank/model/Bank.java | 87 ---- .../java/com/bank/model/BankDenomination.java | 147 ------ .../main/java/com/bank/model/BaseEntity.java | 46 -- .../main/java/com/bank/model/Customer.java | 128 ----- .../main/java/com/bank/model/RefMoney.java | 30 -- .../main/java/com/bank/model/Transaction.java | 116 ----- .../bank/repository/ATMDenoRepository.java | 18 - .../com/bank/repository/ATMRepository.java | 16 - .../bank/repository/AccountRepository.java | 15 - .../com/bank/repository/BankRepository.java | 19 - .../bank/repository/CustomerRepository.java | 18 - .../repository/DenominationRepository.java | 17 - .../bank/repository/RefMoneyRepository.java | 18 - .../repository/TransactionRepository.java | 27 -- .../java/com/bank/service/ATMServiceImpl.java | 166 ------- .../com/bank/service/AccountServiceImpl.java | 164 ------- .../com/bank/service/AtmDenoServiceImpl.java | 97 ---- .../bank/service/AuditRegistrationSource.java | 15 - .../com/bank/service/AuditServiceImpl.java | 21 - .../service/BankDenominationServiceImpl.java | 105 ----- .../com/bank/service/BankServiceImpl.java | 62 --- .../com/bank/service/CustomerServiceImpl.java | 118 ----- .../com/bank/service/DenominationHelper.java | 83 ---- .../java/com/bank/service/IATMService.java | 32 -- .../com/bank/service/IAccountService.java | 36 -- .../com/bank/service/IAtmDenoService.java | 15 - .../service/IBankDenominationService.java | 16 - .../java/com/bank/service/IBankService.java | 24 - .../com/bank/service/ICustomerService.java | 26 - .../java/com/bank/service/IRefServcie.java | 30 -- .../com/bank/service/ITransactionService.java | 27 -- .../java/com/bank/service/RefServcieImpl.java | 49 -- .../bank/service/TransactionServiceImpl.java | 43 -- .../java/com/configrabbit/RabbitConfig.java | 37 -- .../src/main/resources/application.properties | 11 - .../java/com/bank/testcases/AllTestCases.java | 227 --------- .../mongodbClient2/.gitignore | 25 - .../.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - .../mongodbClient2/bootstrap.properties | 6 - .../mongodbClient2/mvnw | 225 --------- .../mongodbClient2/mvnw.cmd | 143 ------ .../mongodbClient2/pom.xml | 101 ---- .../src/main/java/com/mongo/db/MongoMain.java | 54 --- .../mongo/db/controller/AuditController.java | 123 ----- .../java/com/mongo/db/document/AuditLog.java | 144 ------ .../com/mongo/db/document/BaseEntity.java | 40 -- .../mongo/db/exception/AuditException.java | 14 - .../com/mongo/db/rcvlistner/MsgListener.java | 39 -- .../mongo/db/repo/AuditMongoRepository.java | 30 -- .../mongo/db/service/AuditServiceImpl.java | 90 ---- .../com/mongo/db/service/IAuditService.java | 47 -- .../com/mongo/db/vo/updateAuditRequest.java | 34 -- .../src/main/resources/application.properties | 15 - .../com/mongoDb/mongodbExample/MongoTest.java | 141 ------ .../MongodbExampleApplicationTests.java | 17 - Rabbit mq installations | 29 -- RabbitDemoSimple/demoCommon/.classpath | 31 -- RabbitDemoSimple/demoCommon/.project | 37 -- .../demoCommon/.settings/.jsdtscope | 13 - .../.settings/org.eclipse.jdt.core.prefs | 8 - .../.settings/org.eclipse.m2e.core.prefs | 4 - .../org.eclipse.wst.common.component | 10 - ....eclipse.wst.common.project.facet.core.xml | 7 - ...rg.eclipse.wst.jsdt.ui.superType.container | 1 - .../org.eclipse.wst.jsdt.ui.superType.name | 1 - .../org.eclipse.wst.validation.prefs | 2 - RabbitDemoSimple/demoCommon/pom.xml | 21 - .../example/commonDemo/TransactionNew.java | 134 ------ .../src/main/webapp/WEB-INF/web.xml | 7 - .../target/classes/META-INF/MANIFEST.MF | 5 - .../demoCommon/pom.properties | 7 - .../com.example.common/demoCommon/pom.xml | 21 - .../example/commonDemo/TransactionNew.class | Bin 3760 -> 0 bytes .../demoCommon/target/demoCommon.jar | Bin 4677 -> 0 bytes .../web-resources/META-INF/MANIFEST.MF | 5 - .../demoCommon/pom.properties | 7 - .../com.example.common/demoCommon/pom.xml | 21 - .../target/maven-archiver/pom.properties | 5 - .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 1 - RabbitDemoSimple/sampleRcv/.gitignore | 25 - .../sampleRcv/.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - RabbitDemoSimple/sampleRcv/mvnw | 225 --------- RabbitDemoSimple/sampleRcv/mvnw.cmd | 143 ------ RabbitDemoSimple/sampleRcv/pom.xml | 58 --- .../sampleRcv/SampleRcvApplication.java | 55 --- .../example/sampleRcv/dto/Transaction.java | 88 ---- .../sampleRcv/listener/MsgListener.java | 22 - .../sampleRcv/repository/DemoRepository.java | 14 - .../src/main/resources/application.properties | 10 - .../sampleRcv/SampleRcvApplicationTests.java | 16 - RabbitDemoSimple/sampleSend/.gitignore | 25 - .../sampleSend/.mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .../.mvn/wrapper/maven-wrapper.properties | 1 - RabbitDemoSimple/sampleSend/mvnw | 225 --------- RabbitDemoSimple/sampleSend/mvnw.cmd | 143 ------ RabbitDemoSimple/sampleSend/pom.xml | 54 --- .../sampleSend/SampleSendApplication.java | 21 - .../sampleSend/controller/AppController.java | 28 -- .../src/main/resources/application.properties | 3 - .../SampleSendApplicationTests.java | 16 - Spring Security | 6 - .../.DS_Store | Bin 6148 -> 0 bytes .../.classpath | 25 - SpringJDBCTemplateExampleForLearning/.project | 23 - .../.settings/org.eclipse.jdt.core.prefs | 8 - .../.settings/org.eclipse.m2e.core.prefs | 4 - SpringJDBCTemplateExampleForLearning/pom.xml | 36 -- .../sample_data_postgresql.sql | 13 - .../src/.DS_Store | Bin 6148 -> 0 bytes .../src/main/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/com/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/com/journaldev/.DS_Store | Bin 6148 -> 0 bytes .../src/main/java/com/journaldev/Main.java | 52 -- .../java/com/journaldev/model/Person.java | 56 --- .../com/journaldev/model/PersonMapper.java | 19 - .../main/java/com/journaldev/spring/.DS_Store | Bin 6148 -> 0 bytes .../journaldev/spring/config/AppConfig.java | 35 -- .../com/journaldev/spring/dao/PersonDAO.java | 17 - .../journaldev/spring/dao/PersonDAOImpl.java | 51 -- .../src/main/resources/database.properties | 4 - _config.yml | 1 - bank/.classpath | 31 -- bank/.eclipse-pmd | 7 - bank/.project | 40 -- .../org.eclipse.core.resources.prefs | 5 - bank/.settings/org.eclipse.jdt.core.prefs | 5 - ....eclipse.wst.common.project.facet.core.xml | 4 - .../org.springframework.ide.eclipse.prefs | 2 - .../org.eclipse.core.resources.prefs | 5 - bank/bin/.settings/org.eclipse.jdt.core.prefs | 5 - ....eclipse.wst.common.project.facet.core.xml | 4 - .../org.springframework.ide.eclipse.prefs | 2 - bank/bin/mvnw | 225 --------- bank/bin/mvnw.cmd | 143 ------ bank/bin/pom.xml | 60 --- .../com/springboot/bank/BankApplication.class | Bin 1353 -> 0 bytes .../bank/controller/BankController.class | Bin 4318 -> 0 bytes .../java/com/springboot/bank/model/ATM.class | Bin 3833 -> 0 bytes .../java/com/springboot/bank/model/Bank.class | Bin 4678 -> 0 bytes .../com/springboot/bank/model/Customer.class | Bin 4636 -> 0 bytes .../springboot/bank/repository/BankDAO.class | Bin 310 -> 0 bytes .../bank/repository/CustomerDAO.class | Bin 326 -> 0 bytes .../springboot/bank/service/BankService.class | Bin 1080 -> 0 bytes .../bank/service/BankServiceImpl.class | Bin 3624 -> 0 bytes .../bank/service/CustomerService.class | Bin 795 -> 0 bytes .../bank/service/CustomerServiceImpl.class | Bin 3380 -> 0 bytes .../src/main/resources/application.properties | 13 - .../bank/BankApplicationTests.class | Bin 1228 -> 0 bytes bank/bin/target/classes/META-INF/MANIFEST.MF | 23 - .../maven/com.springboot/bank/pom.properties | 17 - .../maven/com.springboot/bank/pom.xml | 60 --- .../bin/target/classes/application.properties | 13 - bank/mvnw | 225 --------- bank/mvnw.cmd | 143 ------ bank/pom.xml | 73 --- .../com/springboot/bank/BankApplication.java | 12 - .../bank/controller/ATMController.java | 78 --- .../bank/controller/AccountController.java | 90 ---- .../bank/controller/BankController.java | 59 --- .../BankDenominationController.java | 91 ---- .../bank/controller/CustomerController.java | 63 --- .../controller/TransactionController.java | 61 --- .../com/springboot/bank/dto/ATMDetails.java | 110 ----- .../springboot/bank/dto/AccountDetails.java | 111 ----- .../bank/dto/WrapperATMDenomination.java | 139 ------ .../bank/dto/WrapperAccountDenomination.java | 90 ---- .../springboot/bank/dto/WrapperBankATM.java | 73 --- .../bank/dto/WrapperBankCustomer.java | 73 --- .../bank/dto/WrapperBankCustomerAccount.java | 93 ---- .../bank/dto/WrapperBankDenomination.java | 93 ---- .../bank/exception/BankException.java | 15 - .../java/com/springboot/bank/model/ATM.java | 99 ---- .../com/springboot/bank/model/Account.java | 125 ----- .../java/com/springboot/bank/model/Bank.java | 86 ---- .../bank/model/BankDenomination.java | 136 ------ .../com/springboot/bank/model/Customer.java | 131 ------ .../springboot/bank/model/Transaction.java | 145 ------ .../springboot/bank/repository/ATMDAO.java | 15 - .../bank/repository/AccountDAO.java | 15 - .../springboot/bank/repository/BankDAO.java | 15 - .../bank/repository/BankDenominationDAO.java | 16 - .../bank/repository/CustomerDAO.java | 15 - .../bank/repository/TransactionDAO.java | 15 - .../springboot/bank/service/ATMService.java | 25 - .../bank/service/ATMServiceImpl.java | 142 ------ .../bank/service/AccountService.java | 24 - .../bank/service/AccountServiceImpl.java | 192 -------- .../bank/service/BankDenominationService.java | 20 - .../service/BankDenominationServiceImpl.java | 89 ---- .../springboot/bank/service/BankService.java | 22 - .../bank/service/BankServiceImpl.java | 60 --- .../bank/service/CustomerService.java | 20 - .../bank/service/CustomerServiceImpl.java | 69 --- .../bank/service/TransactionService.java | 20 - .../bank/service/TransactionServiceImpl.java | 75 --- .../src/main/resources/application.properties | 7 - .../springboot/bank/BankApplicationTests.java | 16 - .../springboot/bank/CustomerServiceTest.java | 43 -- bank/target/classes/META-INF/MANIFEST.MF | 10 - .../maven/com.springboot/bank/pom.properties | 7 - .../maven/com.springboot/bank/pom.xml | 73 --- bank/target/classes/application.properties | 7 - .../com/springboot/bank/BankApplication.class | Bin 709 -> 0 bytes .../bank/controller/ATMController.class | Bin 3745 -> 0 bytes .../bank/controller/AccountController.class | Bin 3980 -> 0 bytes .../bank/controller/BankController.class | Bin 2808 -> 0 bytes .../BankDenominationController.class | Bin 3601 -> 0 bytes .../bank/controller/CustomerController.class | Bin 3021 -> 0 bytes .../controller/TransactionController.class | Bin 3059 -> 0 bytes .../com/springboot/bank/dto/ATMDetails.class | Bin 1861 -> 0 bytes .../springboot/bank/dto/AccountDetails.class | Bin 1897 -> 0 bytes .../bank/dto/WrapperATMDenomination.class | Bin 2937 -> 0 bytes .../bank/dto/WrapperAccountDenomination.class | Bin 2066 -> 0 bytes .../springboot/bank/dto/WrapperBankATM.class | Bin 1384 -> 0 bytes .../bank/dto/WrapperBankCustomer.class | Bin 1444 -> 0 bytes .../bank/dto/WrapperBankCustomerAccount.class | Bin 1738 -> 0 bytes .../bank/dto/WrapperBankDenomination.class | Bin 1856 -> 0 bytes .../bank/exception/BankException.class | Bin 391 -> 0 bytes .../com/springboot/bank/model/ATM.class | Bin 2187 -> 0 bytes .../com/springboot/bank/model/Account.class | Bin 2764 -> 0 bytes .../com/springboot/bank/model/Bank.class | Bin 1887 -> 0 bytes .../bank/model/BankDenomination.class | Bin 2736 -> 0 bytes .../com/springboot/bank/model/Customer.class | Bin 2792 -> 0 bytes .../springboot/bank/model/Transaction.class | Bin 3174 -> 0 bytes .../springboot/bank/repository/ATMDAO.class | Bin 330 -> 0 bytes .../bank/repository/AccountDAO.class | Bin 342 -> 0 bytes .../springboot/bank/repository/BankDAO.class | Bin 333 -> 0 bytes .../bank/repository/BankDenominationDAO.class | Bin 369 -> 0 bytes .../bank/repository/CustomerDAO.class | Bin 345 -> 0 bytes .../bank/repository/TransactionDAO.class | Bin 354 -> 0 bytes .../springboot/bank/service/ATMService.class | Bin 530 -> 0 bytes .../bank/service/ATMServiceImpl.class | Bin 4978 -> 0 bytes .../bank/service/AccountService.class | Bin 566 -> 0 bytes .../bank/service/AccountServiceImpl.class | Bin 6254 -> 0 bytes .../service/BankDenominationService.class | Bin 281 -> 0 bytes .../service/BankDenominationServiceImpl.class | Bin 2512 -> 0 bytes .../springboot/bank/service/BankService.class | Bin 381 -> 0 bytes .../bank/service/BankServiceImpl.class | Bin 1803 -> 0 bytes .../bank/service/CustomerService.class | Bin 418 -> 0 bytes .../bank/service/CustomerServiceImpl.class | Bin 2486 -> 0 bytes .../bank/service/TransactionService.class | Bin 492 -> 0 bytes .../bank/service/TransactionServiceImpl.class | Bin 2505 -> 0 bytes .../bank/BankApplicationTests.class | Bin 761 -> 0 bytes .../springboot/bank/CustomerServiceTest.class | Bin 915 -> 0 bytes demoCommon/.classpath | 31 -- demoCommon/.project | 37 -- demoCommon/.settings/.jsdtscope | 13 - .../.settings/org.eclipse.jdt.core.prefs | 8 - .../.settings/org.eclipse.m2e.core.prefs | 4 - .../org.eclipse.wst.common.component | 10 - ....eclipse.wst.common.project.facet.core.xml | 7 - ...rg.eclipse.wst.jsdt.ui.superType.container | 1 - .../org.eclipse.wst.jsdt.ui.superType.name | 1 - .../org.eclipse.wst.validation.prefs | 2 - demoCommon/pom.xml | 21 - .../example/commonDemo/TransactionNew.java | 134 ------ demoCommon/src/main/webapp/WEB-INF/web.xml | 7 - .../target/classes/META-INF/MANIFEST.MF | 5 - .../demoCommon/pom.properties | 7 - .../com.example.common/demoCommon/pom.xml | 21 - .../example/commonDemo/TransactionNew.class | Bin 3760 -> 0 bytes demoCommon/target/demoCommon.jar | Bin 4677 -> 0 bytes .../web-resources/META-INF/MANIFEST.MF | 5 - .../demoCommon/pom.properties | 7 - .../com.example.common/demoCommon/pom.xml | 21 - .../target/maven-archiver/pom.properties | 5 - .../compile/default-compile/createdFiles.lst | 0 .../compile/default-compile/inputFiles.lst | 1 - index.html | 1 - .../.classpath | 31 -- .../.gitignore | 23 - .../.mvn/wrapper/maven-wrapper.properties | 1 - training-spring-security-demo-master/.project | 40 -- .../org.eclipse.core.resources.prefs | 5 - .../.settings/org.eclipse.jdt.core.prefs | 5 - ....eclipse.wst.common.project.facet.core.xml | 4 - .../.springBeans | 16 - training-spring-security-demo-master/LICENSE | 21 - .../bin/.gitignore | 23 - .../bin/.mvn/wrapper/maven-wrapper.properties | 1 - .../bin/.project | 23 - .../org.eclipse.core.resources.prefs | 2 - .../bin/LICENSE | 21 - training-spring-security-demo-master/bin/mvnw | 225 --------- .../bin/mvnw.cmd | 143 ------ .../bin/pom.xml | 73 --- .../src/main/resources/application.properties | 6 - .../bin/target/classes/META-INF/MANIFEST.MF | 11 - training-spring-security-demo-master/mvnw | 225 --------- training-spring-security-demo-master/mvnw.cmd | 143 ------ training-spring-security-demo-master/pom.xml | 73 --- .../com/spring/security/web/Authority.java | 72 --- ...TrainingSpringSecurityDemoApplication.java | 68 --- .../config/TrainingSecurityConfiguration.java | 42 -- .../com/spring/security/web/entity/Role.java | 49 -- .../com/spring/security/web/entity/User.java | 88 ---- .../web/repository/UserRepository.java | 13 - .../web/resource/SecurityTestController.java | 60 --- .../service/TrainingUserDetailsService.java | 40 -- .../src/main/resources/application.properties | 6 - ...ingSpringSecurityDemoApplicationTests.java | 16 - .../target/classes/META-INF/MANIFEST.MF | 11 - .../pom.properties | 7 - .../training-spring-security-demo/pom.xml | 73 --- .../target/classes/application.properties | 6 - 1726 files changed, 77107 deletions(-) delete mode 100644 10SuperMarketServlet/WebContent/META-INF/MANIFEST.MF delete mode 100644 10SuperMarketServlet/WebContent/WEB-INF/error.jsp delete mode 100644 10SuperMarketServlet/WebContent/WEB-INF/web.xml delete mode 100644 10SuperMarketServlet/WebContent/home1.jsp delete mode 100644 10SuperMarketServlet/WebContent/index1.html delete mode 100644 10SuperMarketServlet/WebContent/viewgoods.jsp delete mode 100644 10SuperMarketServlet/WebContent/viewsupplier.jsp delete mode 100644 10SuperMarketServlet/build/classes/controller/DemoServlet.class delete mode 100644 10SuperMarketServlet/build/classes/controller/GroceryAnnotation.class delete mode 100644 10SuperMarketServlet/build/classes/model/Customer.class delete mode 100644 10SuperMarketServlet/build/classes/model/Goods.class delete mode 100644 10SuperMarketServlet/build/classes/model/Retailer.class delete mode 100644 10SuperMarketServlet/build/classes/model/Supplier.class delete mode 100644 10SuperMarketServlet/build/classes/repository/CustomerDAO.class delete mode 100644 10SuperMarketServlet/build/classes/repository/CustomerDAOImpl.class delete mode 100644 10SuperMarketServlet/build/classes/repository/GoodsDAO.class delete mode 100644 10SuperMarketServlet/build/classes/repository/GoodsDAOImpl.class delete mode 100644 10SuperMarketServlet/build/classes/repository/RetailerDAO.class delete mode 100644 10SuperMarketServlet/build/classes/repository/RetailerDAOImpl.class delete mode 100644 10SuperMarketServlet/build/classes/repository/SupplierDAO.class delete mode 100644 10SuperMarketServlet/build/classes/repository/SupplierDAOImpl.class delete mode 100644 10SuperMarketServlet/build/classes/service/CustomerService.class delete mode 100644 10SuperMarketServlet/build/classes/service/CustomerServiceImpl.class delete mode 100644 10SuperMarketServlet/build/classes/service/GoodsService.class delete mode 100644 10SuperMarketServlet/build/classes/service/GoodsServiceImpl.class delete mode 100644 10SuperMarketServlet/build/classes/service/RetailerService.class delete mode 100644 10SuperMarketServlet/build/classes/service/RetailerServiceImpl.class delete mode 100644 10SuperMarketServlet/build/classes/service/SupplierService.class delete mode 100644 10SuperMarketServlet/build/classes/service/SupplierServiceImpl.class delete mode 100644 10SuperMarketServlet/pom.xml delete mode 100644 10SuperMarketServlet/src/MainServlet/DemoServlet.java delete mode 100644 10SuperMarketServlet/src/MainServlet/DemoServlet2.java delete mode 100644 10SuperMarketServlet/src/MainServlet/DemoServlet3.java delete mode 100644 10SuperMarketServlet/src/controller/AppJavaConfig.java delete mode 100644 10SuperMarketServlet/src/main/resources/database.properties delete mode 100644 10SuperMarketServlet/src/model/Customer.java delete mode 100644 10SuperMarketServlet/src/model/Goods.java delete mode 100644 10SuperMarketServlet/src/model/Retailer.java delete mode 100644 10SuperMarketServlet/src/model/Supplier.java delete mode 100644 10SuperMarketServlet/src/repository/CustomerDAO.java delete mode 100644 10SuperMarketServlet/src/repository/CustomerDAOImpl.java delete mode 100644 10SuperMarketServlet/src/repository/GoodsDAO.java delete mode 100644 10SuperMarketServlet/src/repository/GoodsDAOImpl.java delete mode 100644 10SuperMarketServlet/src/repository/RetailerDAO.java delete mode 100644 10SuperMarketServlet/src/repository/RetailerDAOImpl.java delete mode 100644 10SuperMarketServlet/src/repository/SupplierDAO.java delete mode 100644 10SuperMarketServlet/src/repository/SupplierDAOImpl.java delete mode 100644 10SuperMarketServlet/src/service/CustomerService.java delete mode 100644 10SuperMarketServlet/src/service/CustomerServiceImpl.java delete mode 100644 10SuperMarketServlet/src/service/GoodsService.java delete mode 100644 10SuperMarketServlet/src/service/GoodsServiceImpl.java delete mode 100644 10SuperMarketServlet/src/service/RetailerService.java delete mode 100644 10SuperMarketServlet/src/service/RetailerServiceImpl.java delete mode 100644 10SuperMarketServlet/src/service/SupplierService.java delete mode 100644 10SuperMarketServlet/src/service/SupplierServiceImpl.java delete mode 100644 11SpringBootUsingJDBC/.gitignore delete mode 100644 11SpringBootUsingJDBC/.mvn/wrapper/maven-wrapper.jar delete mode 100644 11SpringBootUsingJDBC/.mvn/wrapper/maven-wrapper.properties delete mode 100644 11SpringBootUsingJDBC/bin/.gitignore delete mode 100644 11SpringBootUsingJDBC/bin/.mvn/wrapper/maven-wrapper.jar delete mode 100644 11SpringBootUsingJDBC/bin/.mvn/wrapper/maven-wrapper.properties delete mode 100644 11SpringBootUsingJDBC/bin/mvnw delete mode 100644 11SpringBootUsingJDBC/bin/mvnw.cmd delete mode 100644 11SpringBootUsingJDBC/bin/pom.xml delete mode 100644 11SpringBootUsingJDBC/bin/src/main/java/com/example/demo/DemoApplication.class delete mode 100644 11SpringBootUsingJDBC/bin/src/main/resources/application.properties delete mode 100644 11SpringBootUsingJDBC/bin/src/test/java/com/example/demo/DemoApplicationTests.class delete mode 100644 11SpringBootUsingJDBC/mvnw delete mode 100644 11SpringBootUsingJDBC/mvnw.cmd delete mode 100644 11SpringBootUsingJDBC/pom.xml delete mode 100644 11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet2.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet3.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/com/example/demo/CustomErrorType.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/com/example/demo/CustomersOp.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/com/example/demo/DemoApplication.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/controller/AppJavaConfig.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/model/Customer.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/model/Goods.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/model/Retailer.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/model/Supplier.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/repository/CustomerDAO.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/repository/CustomerDAOImpl.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/repository/GoodsDAO.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/repository/GoodsDAOImpl.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/repository/RetailerDAO.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/repository/RetailerDAOImpl.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/repository/SupplierDAO.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/repository/SupplierDAOImpl.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/service/CustomerService.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/service/CustomerServiceImpl.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/service/GoodsService.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/service/GoodsServiceImpl.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/service/RetailerService.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/service/RetailerServiceImpl.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/service/SupplierService.java delete mode 100644 11SpringBootUsingJDBC/src/main/java/service/SupplierServiceImpl.java delete mode 100644 11SpringBootUsingJDBC/src/main/resources/application.properties delete mode 100644 11SpringBootUsingJDBC/src/main/resources/database.properties delete mode 100644 11SpringBootUsingJDBC/src/test/java/com/example/demo/DemoApplicationTests.java delete mode 100644 12SpringBoot&JPA/.gitignore delete mode 100644 12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.jar delete mode 100644 12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.properties delete mode 100644 12SpringBoot&JPA/mvnw delete mode 100644 12SpringBoot&JPA/mvnw.cmd delete mode 100644 12SpringBoot&JPA/pom.xml delete mode 100644 12SpringBoot&JPA/src/main/java/com/cg/ConsumerMain.java delete mode 100644 12SpringBoot&JPA/src/main/java/com/cg/controller/CustomerController.java delete mode 100644 12SpringBoot&JPA/src/main/java/com/cg/dao/CustomerRepository.java delete mode 100644 12SpringBoot&JPA/src/main/java/com/cg/model/Customer.java delete mode 100644 12SpringBoot&JPA/src/main/java/com/cg/service/CustomerServiceImpl.java delete mode 100644 12SpringBoot&JPA/src/main/java/com/cg/service/ICustomerService.java delete mode 100644 12SpringBoot&JPA/src/main/java/com/consumer/DemoApplication.java delete mode 100644 12SpringBoot&JPA/src/main/resources/application.properties delete mode 100644 12SpringBoot&JPA/src/test/java/com/consumer/DemoApplicationTests.java delete mode 100644 13SpringBootJPA(REMOVEADD)/.gitignore delete mode 100644 13SpringBootJPA(REMOVEADD)/.mvn/wrapper/maven-wrapper.jar delete mode 100644 13SpringBootJPA(REMOVEADD)/.mvn/wrapper/maven-wrapper.properties delete mode 100644 13SpringBootJPA(REMOVEADD)/mvnw delete mode 100644 13SpringBootJPA(REMOVEADD)/mvnw.cmd delete mode 100644 13SpringBootJPA(REMOVEADD)/pom.xml delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/ConsumerMain.java delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/controller/CustomerController.java delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/dao/CustomerRepository.java delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/model/Customer.java delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/service/CustomerServiceImpl.java delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/service/ICustomerService.java delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/java/com/consumer/DemoApplication.java delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/java/springboot/util/CustomErrorType.java delete mode 100644 13SpringBootJPA(REMOVEADD)/src/main/resources/application.properties delete mode 100644 13SpringBootJPA(REMOVEADD)/src/test/java/com/consumer/DemoApplicationTests.java delete mode 100644 14SpringBootJPAmysql/.gitignore delete mode 100644 14SpringBootJPAmysql/.mvn/wrapper/maven-wrapper.jar delete mode 100644 14SpringBootJPAmysql/.mvn/wrapper/maven-wrapper.properties delete mode 100644 14SpringBootJPAmysql/mvnw delete mode 100644 14SpringBootJPAmysql/mvnw.cmd delete mode 100644 14SpringBootJPAmysql/pom.xml delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/SpringbootjpaApplication.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/controller/MainController.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/exception/ManagedException.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Customer.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Goods.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Retailer.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Supplier.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/CustomerDAO.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/GoodsDAO.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/RetailerDAO.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/SupplierDAO.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/CustomerService.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/CustomerServiceImpl.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/GoodsService.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/GoodsServiceImpl.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/RetailerService.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/RetailerServiceImpl.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/SupplierService.java delete mode 100644 14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/SupplierServiceImpl.java delete mode 100644 14SpringBootJPAmysql/src/main/resources/application.properties delete mode 100644 14SpringBootJPAmysql/src/main/resources/banner delete mode 100644 14SpringBootJPAmysql/src/test/java/com/training/springbootjpa/SpringbootjpaApplicationTests.java delete mode 100644 15springBootJPACallingFromMainMethod/.gitignore delete mode 100644 15springBootJPACallingFromMainMethod/.mvn/wrapper/maven-wrapper.jar delete mode 100644 15springBootJPACallingFromMainMethod/.mvn/wrapper/maven-wrapper.properties delete mode 100644 15springBootJPACallingFromMainMethod/mvnw delete mode 100644 15springBootJPACallingFromMainMethod/mvnw.cmd delete mode 100644 15springBootJPACallingFromMainMethod/pom.xml delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/SpringbootjpaApplication.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/controller/MainController.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/exception/ManagedException.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Customer.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Goods.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Retailer.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Supplier.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/CustomerDAO.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/GoodsDAO.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/RetailerDAO.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/SupplierDAO.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/CustomerService.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/CustomerServiceImpl.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/GoodsService.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/GoodsServiceImpl.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/RetailerService.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/RetailerServiceImpl.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/SupplierService.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/SupplierServiceImpl.java delete mode 100644 15springBootJPACallingFromMainMethod/src/main/resources/application.properties delete mode 100644 15springBootJPACallingFromMainMethod/src/main/resources/banner.txt delete mode 100644 15springBootJPACallingFromMainMethod/src/test/java/com/training/springbootjpa/SpringbootjpaApplicationTests.java delete mode 100644 16BankAppSpringBootJPA/.classpath delete mode 100644 16BankAppSpringBootJPA/.eclipse-pmd delete mode 100644 16BankAppSpringBootJPA/.project delete mode 100644 16BankAppSpringBootJPA/.settings/org.eclipse.core.resources.prefs delete mode 100644 16BankAppSpringBootJPA/.settings/org.eclipse.jdt.core.prefs delete mode 100644 16BankAppSpringBootJPA/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 16BankAppSpringBootJPA/.settings/org.springframework.ide.eclipse.prefs delete mode 100644 16BankAppSpringBootJPA/bin/.settings/org.eclipse.core.resources.prefs delete mode 100644 16BankAppSpringBootJPA/bin/.settings/org.eclipse.jdt.core.prefs delete mode 100644 16BankAppSpringBootJPA/bin/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 16BankAppSpringBootJPA/bin/.settings/org.springframework.ide.eclipse.prefs delete mode 100644 16BankAppSpringBootJPA/bin/mvnw delete mode 100644 16BankAppSpringBootJPA/bin/mvnw.cmd delete mode 100644 16BankAppSpringBootJPA/bin/pom.xml delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/BankApplication.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/controller/BankController.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/model/ATM.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/model/Bank.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/model/Customer.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/repository/BankDAO.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/BankService.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/BankServiceImpl.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/CustomerService.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class delete mode 100644 16BankAppSpringBootJPA/bin/src/main/resources/application.properties delete mode 100644 16BankAppSpringBootJPA/bin/src/test/java/com/springboot/bank/BankApplicationTests.class delete mode 100644 16BankAppSpringBootJPA/bin/target/classes/META-INF/MANIFEST.MF delete mode 100644 16BankAppSpringBootJPA/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties delete mode 100644 16BankAppSpringBootJPA/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml delete mode 100644 16BankAppSpringBootJPA/bin/target/classes/application.properties delete mode 100644 16BankAppSpringBootJPA/mvnw delete mode 100644 16BankAppSpringBootJPA/mvnw.cmd delete mode 100644 16BankAppSpringBootJPA/pom.xml delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/BankApplication.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/ATMController.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/AccountController.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/BankController.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/BankDenominationController.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/CustomerController.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/TransactionController.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/ATMDetails.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/AccountDetails.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperAccountDenomination.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankATM.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankDenomination.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperDenomination.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/exception/BankException.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/ATM.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Account.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Bank.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/BankDenomination.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Customer.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Denomination.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Transaction.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/ATMDAO.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/AccountDAO.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/BankDAO.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/CustomerDAO.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/TransactionDAO.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/ATMService.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/ATMServiceImpl.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/AccountService.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/AccountServiceImpl.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankDenominationService.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankService.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankServiceImpl.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/CustomerService.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/TransactionService.java delete mode 100644 16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java delete mode 100644 16BankAppSpringBootJPA/src/main/resources/application.properties delete mode 100644 16BankAppSpringBootJPA/src/test/java/com/springboot/bank/BankApplicationTests.java delete mode 100644 16BankAppSpringBootJPA/src/test/java/com/springboot/bank/CustomerServiceTest.java delete mode 100644 16BankAppSpringBootJPA/target/classes/META-INF/MANIFEST.MF delete mode 100644 16BankAppSpringBootJPA/target/classes/META-INF/maven/com.springboot/bank/pom.properties delete mode 100644 16BankAppSpringBootJPA/target/classes/META-INF/maven/com.springboot/bank/pom.xml delete mode 100644 16BankAppSpringBootJPA/target/classes/application.properties delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/BankApplication.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/ATMController.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/AccountController.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/BankController.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/BankDenominationController.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/CustomerController.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/TransactionController.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/ATMDetails.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/AccountDetails.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperATMDenomination.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperAccountDenomination.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankATM.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankDenomination.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperDenomination.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/exception/BankException.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/ATM.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Account.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Bank.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/BankDenomination.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Customer.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Denomination.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Transaction.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/ATMDAO.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/AccountDAO.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/BankDAO.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/BankDenominationDAO.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/CustomerDAO.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/TransactionDAO.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/ATMService.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/ATMServiceImpl.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/AccountService.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/AccountServiceImpl.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankDenominationService.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankService.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankServiceImpl.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/CustomerService.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/CustomerServiceImpl.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/TransactionService.class delete mode 100644 16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/TransactionServiceImpl.class delete mode 100644 16BankAppSpringBootJPA/target/test-classes/com/springboot/bank/BankApplicationTests.class delete mode 100644 16BankAppSpringBootJPA/target/test-classes/com/springboot/bank/CustomerServiceTest.class delete mode 100644 17BankInCapg/.eclipse-pmd delete mode 100644 17BankInCapg/.gitignore delete mode 100644 17BankInCapg/.mvn/wrapper/maven-wrapper.jar delete mode 100644 17BankInCapg/.mvn/wrapper/maven-wrapper.properties delete mode 100644 17BankInCapg/mvnw delete mode 100644 17BankInCapg/mvnw.cmd delete mode 100644 17BankInCapg/pom.xml delete mode 100644 17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java delete mode 100644 17BankInCapg/src/main/java/com/bank/TransactionInBankApplication.java delete mode 100644 17BankInCapg/src/main/java/com/bank/controller/ATMController.java delete mode 100644 17BankInCapg/src/main/java/com/bank/controller/AccountController.java delete mode 100644 17BankInCapg/src/main/java/com/bank/controller/BankController.java delete mode 100644 17BankInCapg/src/main/java/com/bank/controller/CustomerController.java delete mode 100644 17BankInCapg/src/main/java/com/bank/controller/DenominationController.java delete mode 100644 17BankInCapg/src/main/java/com/bank/controller/TransactionController.java delete mode 100644 17BankInCapg/src/main/java/com/bank/dto/ATMReq.java delete mode 100644 17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java delete mode 100644 17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java delete mode 100644 17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java delete mode 100644 17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java delete mode 100644 17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java delete mode 100644 17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java delete mode 100644 17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/ATM.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/Account.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/AuditLog.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/Bank.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/BankDenomination.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/BaseEntity.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/Customer.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/RefMoney.java delete mode 100644 17BankInCapg/src/main/java/com/bank/model/Transaction.java delete mode 100644 17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java delete mode 100644 17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java delete mode 100644 17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java delete mode 100644 17BankInCapg/src/main/java/com/bank/repository/BankRepository.java delete mode 100644 17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java delete mode 100644 17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java delete mode 100644 17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java delete mode 100644 17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/IATMService.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/IAccountService.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/IBankService.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/ICustomerService.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/IRefServcie.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/ITransactionService.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java delete mode 100644 17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java delete mode 100644 17BankInCapg/src/main/resources/application.properties delete mode 100644 17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java delete mode 100644 1Day1 Programs/ContainsDuplicateProgram3.java delete mode 100644 1Day1 Programs/FileIOProgram4.java delete mode 100644 1Day1 Programs/HelloWorld.java delete mode 100644 1Day1 Programs/PalindromeNumberAndSortProgram5.java delete mode 100644 1Day1 Programs/PalindromeNumberProgram1.java delete mode 100644 1Day1 Programs/ReverseStringProgram2.java delete mode 100644 2Day2apr17/LambdaExpressionDay2.java delete mode 100644 2Day2apr17/Person.java delete mode 100644 2Day2apr17/ReorganizeStringDay2.java delete mode 100644 3PMD junit of DAY1 and DAY2/ContainsDuplicate.java delete mode 100644 3PMD junit of DAY1 and DAY2/ContainsDuplicateJunit delete mode 100644 3PMD junit of DAY1 and DAY2/FileIoRefactoring delete mode 100644 3PMD junit of DAY1 and DAY2/JUnit Palindrome delete mode 100644 3PMD junit of DAY1 and DAY2/Palindrome.java delete mode 100644 3PMD junit of DAY1 and DAY2/ReverseStringDone delete mode 100644 4Day4-19-April/.eclipse-pmd delete mode 100644 4Day4-19-April/.settings/org.eclipse.jdt.core.prefs delete mode 100644 4Day4-19-April/bin/CustomException.class delete mode 100644 4Day4-19-April/bin/InputFormatException.class delete mode 100644 4Day4-19-April/bin/printArrayOfIntString.class delete mode 100644 4Day4-19-April/src/CustomException.java delete mode 100644 4Day4-19-April/src/JUNITDay4PrintArray delete mode 100644 4Day4-19-April/src/JunitDa4EXception delete mode 100644 4Day4-19-April/src/printArrayOfIntString.java delete mode 100644 5Bank Application/BankAppJunit.java delete mode 100644 5Bank Application/pom.xml delete mode 100644 5Bank Application/src/main/java/bank/bank11/App.java delete mode 100644 5Bank Application/src/main/java/bankapplication/Account.java delete mode 100644 5Bank Application/src/main/java/bankapplication/Apps.java delete mode 100644 5Bank Application/src/main/java/bankapplication/Bank.java delete mode 100644 5Bank Application/src/main/java/bankapplication/Customer.java delete mode 100644 5Bank Application/src/main/java/bankapplication/currentAccount.java delete mode 100644 5Bank Application/src/main/java/bankapplication/savingAccount.java delete mode 100644 5Bank Application/src/main/java/bankapplication/statement.java delete mode 100644 5Bank Application/src/test/java/BankApplicationWIthMaven/BankApplicationAI/BankAppJunit.java delete mode 100644 5Bank Application/src/test/java/bank/bank11/AppTest.java delete mode 100644 5Bank Application/target/classes/META-INF/MANIFEST.MF delete mode 100644 5Bank Application/target/classes/META-INF/maven/bank/bank11/pom.properties delete mode 100644 5Bank Application/target/classes/META-INF/maven/bank/bank11/pom.xml delete mode 100644 5Bank Application/target/classes/bank/bank11/Account.class delete mode 100644 5Bank Application/target/classes/bank/bank11/App.class delete mode 100644 5Bank Application/target/classes/bank/bank11/Bank.class delete mode 100644 5Bank Application/target/classes/bank/bank11/Customer.class delete mode 100644 5Bank Application/target/classes/bank/bank11/savingAccount.class delete mode 100644 5Bank Application/target/test-classes/bank/bank11/AppTest.class delete mode 100644 6SpringBank/.checkstyle delete mode 100644 6SpringBank/.eclipse-pmd delete mode 100644 6SpringBank/.settings/org.eclipse.core.resources.prefs delete mode 100644 6SpringBank/.settings/org.eclipse.jdt.core.prefs delete mode 100644 6SpringBank/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 6SpringBank/.settings/org.eclipse.m2e.core.prefs delete mode 100644 6SpringBank/log4j.properties delete mode 100644 6SpringBank/pom.xml delete mode 100644 6SpringBank/src/main/java/controller/App.java delete mode 100644 6SpringBank/src/main/java/controller/BankController.java delete mode 100644 6SpringBank/src/main/java/model/Bank.java delete mode 100644 6SpringBank/src/main/java/model/CurrentAccountM.java delete mode 100644 6SpringBank/src/main/java/model/Customer.java delete mode 100644 6SpringBank/src/main/java/model/SavingAccountCollection.java delete mode 100644 6SpringBank/src/main/java/model/SavingAccountM.java delete mode 100644 6SpringBank/src/main/java/model/Statements.java delete mode 100644 6SpringBank/src/main/java/repository/AccountDaoCurrrent.java delete mode 100644 6SpringBank/src/main/java/repository/BankDaoImpl.java delete mode 100644 6SpringBank/src/main/java/repository/CurrentAccountImpl.java delete mode 100644 6SpringBank/src/main/java/repository/CustomerDAOImpl.java delete mode 100644 6SpringBank/src/main/java/repository/IAccountDAO.java delete mode 100644 6SpringBank/src/main/java/repository/IBankDao.java delete mode 100644 6SpringBank/src/main/java/repository/ICustomerDao.java delete mode 100644 6SpringBank/src/main/java/repository/SavingAccountImpl.java delete mode 100644 6SpringBank/src/main/java/service/Account.java delete mode 100644 6SpringBank/src/main/java/service/AccountServiceImpl.java delete mode 100644 6SpringBank/src/main/java/service/BankServiceImpl.java delete mode 100644 6SpringBank/src/main/java/service/CustomerServiceImpl.java delete mode 100644 6SpringBank/src/main/java/service/IAccountDAO.java delete mode 100644 6SpringBank/src/main/java/service/IAccountService.java delete mode 100644 6SpringBank/src/main/java/service/IBankService.java delete mode 100644 6SpringBank/src/main/java/service/ICustomerService.java delete mode 100644 6SpringBank/src/main/java/service/SavingAccountImpl.java delete mode 100644 6SpringBank/src/main/java/service/WithdrawException.java delete mode 100644 6SpringBank/src/main/resources/beans.xml delete mode 100644 6SpringBank/src/test/java/junitpackage/BankAppJunit.java delete mode 100644 6SpringBank/target/classes/META-INF/MANIFEST.MF delete mode 100644 6SpringBank/target/classes/META-INF/maven/HelloSpring/HelloSpring1/pom.properties delete mode 100644 6SpringBank/target/classes/META-INF/maven/HelloSpring/HelloSpring1/pom.xml delete mode 100644 6SpringBank/target/classes/beans.xml delete mode 100644 6SpringBank/target/classes/controller/App.class delete mode 100644 6SpringBank/target/classes/controller/BankController.class delete mode 100644 6SpringBank/target/classes/model/Bank.class delete mode 100644 6SpringBank/target/classes/model/CurrentAccountM.class delete mode 100644 6SpringBank/target/classes/model/Customer.class delete mode 100644 6SpringBank/target/classes/model/SavingAccountCollection.class delete mode 100644 6SpringBank/target/classes/model/SavingAccountM.class delete mode 100644 6SpringBank/target/classes/model/Statements.class delete mode 100644 6SpringBank/target/classes/repository/AccountDaoCurrrent.class delete mode 100644 6SpringBank/target/classes/repository/BankDaoImpl.class delete mode 100644 6SpringBank/target/classes/repository/CurrentAccountImpl.class delete mode 100644 6SpringBank/target/classes/repository/CustomerDAOImpl.class delete mode 100644 6SpringBank/target/classes/repository/IAccountDAO.class delete mode 100644 6SpringBank/target/classes/repository/IBankDao.class delete mode 100644 6SpringBank/target/classes/repository/ICustomerDao.class delete mode 100644 6SpringBank/target/classes/repository/SavingAccountImpl.class delete mode 100644 6SpringBank/target/classes/service/Account.class delete mode 100644 6SpringBank/target/classes/service/AccountServiceImpl.class delete mode 100644 6SpringBank/target/classes/service/BankServiceImpl.class delete mode 100644 6SpringBank/target/classes/service/CustomerServiceImpl.class delete mode 100644 6SpringBank/target/classes/service/IAccountDAO.class delete mode 100644 6SpringBank/target/classes/service/IAccountService.class delete mode 100644 6SpringBank/target/classes/service/IBankService.class delete mode 100644 6SpringBank/target/classes/service/ICustomerService.class delete mode 100644 6SpringBank/target/classes/service/SavingAccountImpl.class delete mode 100644 6SpringBank/target/classes/service/WithdrawException.class delete mode 100644 6SpringBank/target/test-classes/junitpackage/BankAppJunit.class delete mode 100644 7SpringGettingDataFromJunit/.eclipse-pmd delete mode 100644 7SpringGettingDataFromJunit/.settings/org.eclipse.core.resources.prefs delete mode 100644 7SpringGettingDataFromJunit/.settings/org.eclipse.jdt.core.prefs delete mode 100644 7SpringGettingDataFromJunit/.settings/org.eclipse.m2e.core.prefs delete mode 100644 7SpringGettingDataFromJunit/.springBeans delete mode 100644 7SpringGettingDataFromJunit/log4j.properties delete mode 100644 7SpringGettingDataFromJunit/pom.xml delete mode 100644 7SpringGettingDataFromJunit/src/main/java/controller/Demo.java delete mode 100644 7SpringGettingDataFromJunit/src/main/java/model/Account.java delete mode 100644 7SpringGettingDataFromJunit/src/main/java/model/Address.java delete mode 100644 7SpringGettingDataFromJunit/src/main/java/model/Bank.java delete mode 100644 7SpringGettingDataFromJunit/src/main/java/model/Contact.java delete mode 100644 7SpringGettingDataFromJunit/src/main/java/model/Customer.java delete mode 100644 7SpringGettingDataFromJunit/src/main/java/model/Statement.java delete mode 100644 7SpringGettingDataFromJunit/src/main/java/service/AccountImp.java delete mode 100644 7SpringGettingDataFromJunit/src/main/java/service/AccountService.java delete mode 100644 7SpringGettingDataFromJunit/src/main/resources/applicationContext.xml delete mode 100644 7SpringGettingDataFromJunit/src/test/java/com/bankspring/spring3/JunitTest.java delete mode 100644 7SpringGettingDataFromJunit/target/classes/META-INF/MANIFEST.MF delete mode 100644 7SpringGettingDataFromJunit/target/classes/META-INF/maven/com.bankspring/spring3/pom.properties delete mode 100644 7SpringGettingDataFromJunit/target/classes/META-INF/maven/com.bankspring/spring3/pom.xml delete mode 100644 7SpringGettingDataFromJunit/target/classes/applicationContext.xml delete mode 100644 7SpringGettingDataFromJunit/target/classes/controller/Demo.class delete mode 100644 7SpringGettingDataFromJunit/target/classes/model/Account.class delete mode 100644 7SpringGettingDataFromJunit/target/classes/model/Address.class delete mode 100644 7SpringGettingDataFromJunit/target/classes/model/Bank.class delete mode 100644 7SpringGettingDataFromJunit/target/classes/model/Contact.class delete mode 100644 7SpringGettingDataFromJunit/target/classes/model/Customer.class delete mode 100644 7SpringGettingDataFromJunit/target/classes/model/Statement.class delete mode 100644 7SpringGettingDataFromJunit/target/classes/service/AccountImp.class delete mode 100644 7SpringGettingDataFromJunit/target/classes/service/AccountService.class delete mode 100644 7SpringGettingDataFromJunit/target/test-classes/com/bankspring/spring3/JunitTest.class delete mode 100644 8SuperMarketxml/.settings/org.eclipse.core.resources.prefs delete mode 100644 8SuperMarketxml/.settings/org.eclipse.jdt.core.prefs delete mode 100644 8SuperMarketxml/MydatabaseQueries.txt delete mode 100644 8SuperMarketxml/bin/MydatabaseQueries.txt delete mode 100644 8SuperMarketxml/bin/pom.xml delete mode 100644 8SuperMarketxml/bin/retailShopDB.mwb delete mode 100644 8SuperMarketxml/bin/retailShopDB.mwb.bak delete mode 100644 8SuperMarketxml/bin/src/applicationContext.xml delete mode 100644 8SuperMarketxml/bin/src/main/java/controller/GroceryMain.class delete mode 100644 8SuperMarketxml/bin/src/main/java/model/Customer.class delete mode 100644 8SuperMarketxml/bin/src/main/java/model/Goods.class delete mode 100644 8SuperMarketxml/bin/src/main/java/model/Retailer.class delete mode 100644 8SuperMarketxml/bin/src/main/java/model/Supplier.class delete mode 100644 8SuperMarketxml/bin/src/main/java/repository/CustomerDAO.class delete mode 100644 8SuperMarketxml/bin/src/main/java/repository/CustomerDAOImpl.class delete mode 100644 8SuperMarketxml/bin/src/main/java/repository/GoodsDAO.class delete mode 100644 8SuperMarketxml/bin/src/main/java/repository/GoodsDAOImpl.class delete mode 100644 8SuperMarketxml/bin/src/main/java/repository/RetailerDAO.class delete mode 100644 8SuperMarketxml/bin/src/main/java/repository/RetailerDAOImpl.class delete mode 100644 8SuperMarketxml/bin/src/main/java/repository/SupplierDAO.class delete mode 100644 8SuperMarketxml/bin/src/main/java/repository/SupplierDAOImpl.class delete mode 100644 8SuperMarketxml/bin/src/main/java/service/CustomerService.class delete mode 100644 8SuperMarketxml/bin/src/main/java/service/CustomerServiceImpl.class delete mode 100644 8SuperMarketxml/bin/src/main/java/service/GoodsSeriveImpl.class delete mode 100644 8SuperMarketxml/bin/src/main/java/service/GoodsService.class delete mode 100644 8SuperMarketxml/bin/src/main/java/service/SupplierService.class delete mode 100644 8SuperMarketxml/bin/src/main/java/service/SupplierServiceImpl.class delete mode 100644 8SuperMarketxml/bin/src/main/resources/applicationContext.xml delete mode 100644 8SuperMarketxml/bin/src/test/java/com/training/groceryApp/AppTest.class delete mode 100644 8SuperMarketxml/bin/target/classes/META-INF/MANIFEST.MF delete mode 100644 8SuperMarketxml/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.properties delete mode 100644 8SuperMarketxml/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.xml delete mode 100644 8SuperMarketxml/bin/target/classes/applicationContext.xml delete mode 100644 8SuperMarketxml/pom.xml delete mode 100644 8SuperMarketxml/retailShopDB.mwb delete mode 100644 8SuperMarketxml/retailShopDB.mwb.bak delete mode 100644 8SuperMarketxml/src/applicationContext.xml delete mode 100644 8SuperMarketxml/src/main/java/controller/GroceryMain.class delete mode 100644 8SuperMarketxml/src/main/java/controller/GroceryMain.java delete mode 100644 8SuperMarketxml/src/main/java/model/Customer.java delete mode 100644 8SuperMarketxml/src/main/java/model/Goods.java delete mode 100644 8SuperMarketxml/src/main/java/model/Retailer.java delete mode 100644 8SuperMarketxml/src/main/java/model/Supplier.java delete mode 100644 8SuperMarketxml/src/main/java/repository/CustomerDAO.java delete mode 100644 8SuperMarketxml/src/main/java/repository/CustomerDAOImpl.java delete mode 100644 8SuperMarketxml/src/main/java/repository/GoodsDAO.java delete mode 100644 8SuperMarketxml/src/main/java/repository/GoodsDAOImpl.java delete mode 100644 8SuperMarketxml/src/main/java/repository/RetailerDAO.java delete mode 100644 8SuperMarketxml/src/main/java/repository/RetailerDAOImpl.java delete mode 100644 8SuperMarketxml/src/main/java/repository/SupplierDAO.java delete mode 100644 8SuperMarketxml/src/main/java/repository/SupplierDAOImpl.java delete mode 100644 8SuperMarketxml/src/main/java/service/CustomerService.java delete mode 100644 8SuperMarketxml/src/main/java/service/CustomerServiceImpl.java delete mode 100644 8SuperMarketxml/src/main/java/service/GoodsSeriveImpl.java delete mode 100644 8SuperMarketxml/src/main/java/service/GoodsService.java delete mode 100644 8SuperMarketxml/src/main/java/service/RetailerService.java delete mode 100644 8SuperMarketxml/src/main/java/service/RetailerServiceImpl.java delete mode 100644 8SuperMarketxml/src/main/java/service/SupplierService.java delete mode 100644 8SuperMarketxml/src/main/java/service/SupplierServiceImpl.java delete mode 100644 8SuperMarketxml/src/main/resources/applicationContext.xml delete mode 100644 8SuperMarketxml/src/test/java/com/training/groceryApp/AppTest.java delete mode 100644 8SuperMarketxml/target/classes/META-INF/MANIFEST.MF delete mode 100644 8SuperMarketxml/target/classes/META-INF/maven/com.training/groceryApp/pom.properties delete mode 100644 8SuperMarketxml/target/classes/META-INF/maven/com.training/groceryApp/pom.xml delete mode 100644 8SuperMarketxml/target/classes/applicationContext.xml delete mode 100644 8SuperMarketxml/target/classes/controller/GroceryMain.class delete mode 100644 8SuperMarketxml/target/classes/model/Customer.class delete mode 100644 8SuperMarketxml/target/classes/model/Goods.class delete mode 100644 8SuperMarketxml/target/classes/model/Retailer.class delete mode 100644 8SuperMarketxml/target/classes/model/Supplier.class delete mode 100644 8SuperMarketxml/target/classes/repository/CustomerDAO.class delete mode 100644 8SuperMarketxml/target/classes/repository/CustomerDAOImpl.class delete mode 100644 8SuperMarketxml/target/classes/repository/GoodsDAO.class delete mode 100644 8SuperMarketxml/target/classes/repository/GoodsDAOImpl.class delete mode 100644 8SuperMarketxml/target/classes/repository/RetailerDAO.class delete mode 100644 8SuperMarketxml/target/classes/repository/RetailerDAOImpl$1.class delete mode 100644 8SuperMarketxml/target/classes/repository/RetailerDAOImpl$2.class delete mode 100644 8SuperMarketxml/target/classes/repository/RetailerDAOImpl$3.class delete mode 100644 8SuperMarketxml/target/classes/repository/RetailerDAOImpl.class delete mode 100644 8SuperMarketxml/target/classes/repository/SupplierDAO.class delete mode 100644 8SuperMarketxml/target/classes/repository/SupplierDAOImpl.class delete mode 100644 8SuperMarketxml/target/classes/service/CustomerService.class delete mode 100644 8SuperMarketxml/target/classes/service/CustomerServiceImpl.class delete mode 100644 8SuperMarketxml/target/classes/service/GoodsSeriveImpl.class delete mode 100644 8SuperMarketxml/target/classes/service/GoodsService.class delete mode 100644 8SuperMarketxml/target/classes/service/RetailerService.class delete mode 100644 8SuperMarketxml/target/classes/service/RetailerServiceImpl.class delete mode 100644 8SuperMarketxml/target/classes/service/SupplierService.class delete mode 100644 8SuperMarketxml/target/classes/service/SupplierServiceImpl.class delete mode 100644 8SuperMarketxml/target/test-classes/com/training/groceryApp/AppTest.class delete mode 100644 9SuperMarketJavaConfig/.classpath delete mode 100644 9SuperMarketJavaConfig/.eclipse-pmd delete mode 100644 9SuperMarketJavaConfig/.project delete mode 100644 9SuperMarketJavaConfig/.settings/org.eclipse.core.resources.prefs delete mode 100644 9SuperMarketJavaConfig/.settings/org.eclipse.jdt.core.prefs delete mode 100644 9SuperMarketJavaConfig/MydatabaseQueries.txt delete mode 100644 9SuperMarketJavaConfig/bin/.eclipse-pmd delete mode 100644 9SuperMarketJavaConfig/bin/.project delete mode 100644 9SuperMarketJavaConfig/bin/.settings/org.eclipse.core.resources.prefs delete mode 100644 9SuperMarketJavaConfig/bin/.settings/org.eclipse.jdt.core.prefs delete mode 100644 9SuperMarketJavaConfig/bin/MydatabaseQueries.txt delete mode 100644 9SuperMarketJavaConfig/bin/pom.xml delete mode 100644 9SuperMarketJavaConfig/bin/retailShopDB.mwb delete mode 100644 9SuperMarketJavaConfig/bin/retailShopDB.mwb.bak delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/controller/AppJavaConfig.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/controller/GroceryMain.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/model/Customer.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/model/Goods.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/model/Retailer.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/model/Supplier.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/repository/CustomerDAO.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/repository/CustomerDAOImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/repository/GoodsDAO.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/repository/GoodsDAOImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/repository/RetailerDAO.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/repository/RetailerDAOImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/repository/SupplierDAO.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/repository/SupplierDAOImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/CustomerService.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/CustomerServiceImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/GoodsSeriveImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/GoodsService.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/GoodsServiceImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/RetailerService.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/RetailerServiceImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/SupplierService.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/java/service/SupplierServiceImpl.class delete mode 100644 9SuperMarketJavaConfig/bin/src/main/resources/applicationContext.xml delete mode 100644 9SuperMarketJavaConfig/bin/src/main/resources/database.properties delete mode 100644 9SuperMarketJavaConfig/bin/src/test/java/com/training/groceryApp/AppTest.class delete mode 100644 9SuperMarketJavaConfig/bin/target/classes/META-INF/MANIFEST.MF delete mode 100644 9SuperMarketJavaConfig/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.properties delete mode 100644 9SuperMarketJavaConfig/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.xml delete mode 100644 9SuperMarketJavaConfig/bin/target/classes/applicationContext.xml delete mode 100644 9SuperMarketJavaConfig/bin/target/classes/database.properties delete mode 100644 9SuperMarketJavaConfig/home.jsp delete mode 100644 9SuperMarketJavaConfig/index.html delete mode 100644 9SuperMarketJavaConfig/pom.xml delete mode 100644 9SuperMarketJavaConfig/retailShopDB.mwb delete mode 100644 9SuperMarketJavaConfig/retailShopDB.mwb.bak delete mode 100644 9SuperMarketJavaConfig/src/main/java/MainServlet/DemoServlet.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/controller/AppJavaConfig.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/controller/GroceryMain.class delete mode 100644 9SuperMarketJavaConfig/src/main/java/controller/GroceryMain.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/model/Customer.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/model/Goods.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/model/Retailer.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/model/Supplier.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/repository/CustomerDAO.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/repository/CustomerDAOImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/repository/GoodsDAO.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/repository/GoodsDAOImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/repository/RetailerDAO.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/repository/RetailerDAOImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/repository/SupplierDAO.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/repository/SupplierDAOImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/CustomerService.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/CustomerServiceImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/GoodsSeriveImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/GoodsService.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/GoodsServiceImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/RetailerService.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/RetailerServiceImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/SupplierService.java delete mode 100644 9SuperMarketJavaConfig/src/main/java/service/SupplierServiceImpl.java delete mode 100644 9SuperMarketJavaConfig/src/main/resources/applicationContext.xml delete mode 100644 9SuperMarketJavaConfig/src/main/resources/database.properties delete mode 100644 9SuperMarketJavaConfig/src/test/java/com/training/groceryApp/AppTest.java delete mode 100644 9SuperMarketJavaConfig/target/classes/META-INF/MANIFEST.MF delete mode 100644 9SuperMarketJavaConfig/target/classes/META-INF/maven/com.training/groceryApp/pom.properties delete mode 100644 9SuperMarketJavaConfig/target/classes/META-INF/maven/com.training/groceryApp/pom.xml delete mode 100644 9SuperMarketJavaConfig/target/classes/MainServlet/DemoServlet.class delete mode 100644 9SuperMarketJavaConfig/target/classes/applicationContext.xml delete mode 100644 9SuperMarketJavaConfig/target/classes/controller/AppJavaConfig.class delete mode 100644 9SuperMarketJavaConfig/target/classes/controller/GroceryMain.class delete mode 100644 9SuperMarketJavaConfig/target/classes/database.properties delete mode 100644 9SuperMarketJavaConfig/target/classes/model/Customer.class delete mode 100644 9SuperMarketJavaConfig/target/classes/model/Goods.class delete mode 100644 9SuperMarketJavaConfig/target/classes/model/Retailer.class delete mode 100644 9SuperMarketJavaConfig/target/classes/model/Supplier.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/CustomerDAO.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/CustomerDAOImpl.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/GoodsDAO.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/GoodsDAOImpl.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/RetailerDAO.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/RetailerDAOImpl$1.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/RetailerDAOImpl$2.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/RetailerDAOImpl$3.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/RetailerDAOImpl.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/SupplierDAO.class delete mode 100644 9SuperMarketJavaConfig/target/classes/repository/SupplierDAOImpl.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/CustomerService.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/CustomerServiceImpl.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/GoodsSeriveImpl.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/GoodsService.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/GoodsServiceImpl.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/RetailerService.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/RetailerServiceImpl.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/SupplierService.class delete mode 100644 9SuperMarketJavaConfig/target/classes/service/SupplierServiceImpl.class delete mode 100644 9SuperMarketJavaConfig/target/test-classes/com/training/groceryApp/AppTest.class delete mode 100644 AllStudyMaterialLinksToLearn delete mode 100644 Angular 5 important link delete mode 100644 BlackPearl Configuration file delete mode 100644 CheckList.xlsx delete mode 100644 CheckListRam.xlsx delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/.classpath delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/.eclipse-pmd delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/.project delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.core.resources.prefs delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.jdt.core.prefs delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/.settings/org.springframework.ide.eclipse.prefs delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.core.resources.prefs delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.jdt.core.prefs delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.springframework.ide.eclipse.prefs delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/mvnw delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/mvnw.cmd delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/pom.xml delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/BankApplication.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/controller/BankController.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/model/ATM.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/model/Bank.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/model/Customer.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/repository/BankDAO.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/BankService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/BankServiceImpl.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/CustomerService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/resources/application.properties delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/src/test/java/com/springboot/bank/BankApplicationTests.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/MANIFEST.MF delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/application.properties delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/mvnw delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/mvnw.cmd delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/pom.xml delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/BankApplication.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/ATMController.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/AccountController.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/BankController.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/BankDenominationController.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/CustomerController.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/TransactionController.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/ATMDetails.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/AccountDetails.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankATM.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperDenomination.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/enums/AllEnums.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/exception/BankException.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/ATM.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/ATMDenomination.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Account.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Audit.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Bank.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/BaseEntity.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Customer.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Denomination.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Transaction.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/ATMDAO.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/AccountDAO.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/BankDAO.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/CustomerDAO.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/TransactionDAO.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/ATMService.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/ATMServiceImpl.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AccountService.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AccountServiceImpl.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AuditServiceImpl.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankDenominationService.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankService.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankServiceImpl.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/CustomerService.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/IAuditService.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/TransactionService.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/main/resources/application.properties delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/AccountTest.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/BankServiceTest.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/CustomerServiceTest.java delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/MANIFEST.MF delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/maven/com.springboot/bank/pom.properties delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/maven/com.springboot/bank/pom.xml delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/application.properties delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/BankApplication.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/ATMController.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/AccountController.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/BankController.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/BankDenominationController.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/CustomerController.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/TransactionController.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/ATMDetails.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/AccountDetails.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperATMDenomination.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankATM.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperDenomination.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/enums/AllEnums$EventName.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/enums/AllEnums$EventType.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/enums/AllEnums.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/exception/BankException.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/ATM.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/ATMDenomination.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Account.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Audit.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Bank.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/BaseEntity.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Customer.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Denomination.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Transaction.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/ATMDAO.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/AccountDAO.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/BankDAO.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/BankDenominationDAO.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/CustomerDAO.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/TransactionDAO.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/ATMService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/ATMServiceImpl.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/AccountService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/AccountServiceImpl.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/AuditServiceImpl.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankDenominationService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankServiceImpl.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/CustomerService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/CustomerServiceImpl.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/IAuditService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/TransactionService.class delete mode 100644 Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/TransactionServiceImpl.class delete mode 100644 Eureka Server App/bankmongo/.gitignore delete mode 100644 Eureka Server App/bankmongo/.mvn/wrapper/maven-wrapper.jar delete mode 100644 Eureka Server App/bankmongo/.mvn/wrapper/maven-wrapper.properties delete mode 100644 Eureka Server App/bankmongo/mvnw delete mode 100644 Eureka Server App/bankmongo/mvnw.cmd delete mode 100644 Eureka Server App/bankmongo/pom.xml delete mode 100644 Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/BankmongoApplication.java delete mode 100644 Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Model/Audit.java delete mode 100644 Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Repository/AuditDAO.java delete mode 100644 Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Service/AuditService.java delete mode 100644 Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Service/AuditServiceImpl.java delete mode 100644 Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/controller/AuditController.java delete mode 100644 Eureka Server App/bankmongo/src/main/resources/application.properties delete mode 100644 Eureka Server App/bankmongo/src/test/java/com/training/bankmongo/BankmongoApplicationTests.java delete mode 100644 Eureka Server App/eurekaserver/.gitignore delete mode 100644 Eureka Server App/eurekaserver/.mvn/wrapper/maven-wrapper.jar delete mode 100644 Eureka Server App/eurekaserver/.mvn/wrapper/maven-wrapper.properties delete mode 100644 Eureka Server App/eurekaserver/mvnw delete mode 100644 Eureka Server App/eurekaserver/mvnw.cmd delete mode 100644 Eureka Server App/eurekaserver/pom.xml delete mode 100644 Eureka Server App/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java delete mode 100644 Eureka Server App/eurekaserver/src/main/resources/application.properties delete mode 100644 Eureka Server App/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java delete mode 100644 EurekaDoubts delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/.eclipse-pmd delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/.gitignore delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/mvnw delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/mvnw.cmd delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/pom.xml delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/ATMController.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/AccountController.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/BankController.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/ATM.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Account.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/AuditLog.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Bank.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Customer.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/RefMoney.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Transaction.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IATMService.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IAccountService.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IBankService.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/resources/application.properties delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/main/resources/bootstrap.properties delete mode 100644 EurekaServerUsingConfigerver/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/.classpath delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/.project delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.eclipse.jdt.core.prefs delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.eclipse.m2e.core.prefs delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.springframework.ide.eclipse.prefs delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/pom.xml delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/SpringBootHelloWorldApplication.java delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/ErrorFilter.java delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/PostFilter.java delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/PreFilter.java delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/RouteFilter.java delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/src/main/resources/application.properties delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/src/main/resources/bootstrap.properties delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/MANIFEST.MF delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/zuul-service1/pom.properties delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/zuul-service1/pom.xml delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/application.properties delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/bootstrap.properties delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/SpringBootHelloWorldApplication.class delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/ErrorFilter.class delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/PostFilter.class delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/PreFilter.class delete mode 100644 EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/RouteFilter.class delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/.gitignore delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/mvnw delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/mvnw.cmd delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/pom.xml delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/src/main/resources/application.properties delete mode 100644 EurekaServerUsingConfigerver/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/.gitignore delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/bootstrap.properties delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/mvnw delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/mvnw.cmd delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/pom.xml delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/main/resources/application.properties delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java delete mode 100644 EurekaServerUsingConfigerver/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/.gitignore delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/mvnw delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/mvnw.cmd delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/pom.xml delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/main/java/com/example/demo/SpringCloudConfigServerNewApplication.java delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/main/resources/application.properties delete mode 100644 EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/test/java/com/example/demo/SpringCloudConfigServerNewApplicationTests.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/.eclipse-pmd delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/.gitignore delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/mvnw delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/mvnw.cmd delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/pom.xml delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/ATMController.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/AccountController.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/BankController.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/ATM.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Account.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/AuditLog.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Bank.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Customer.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/RefMoney.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Transaction.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IATMService.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IAccountService.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IBankService.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/resources/application.properties delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/main/resources/bootstrap.properties delete mode 100644 EurekaServerUsingFeignClient/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/.gitignore delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/mvnw delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/mvnw.cmd delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/pom.xml delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/src/main/resources/application.properties delete mode 100644 EurekaServerUsingFeignClient/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/.gitignore delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/mvnw delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/mvnw.cmd delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/pom.xml delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/main/resources/application.properties delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java delete mode 100644 EurekaServerUsingFeignClient/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.eclipse-pmd delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.gitignore delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/mvnw delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/mvnw.cmd delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/pom.xml delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/ATMController.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/AccountController.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/BankController.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/ATM.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Account.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/AuditLog.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Bank.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Customer.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/RefMoney.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Transaction.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IATMService.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IAccountService.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IBankService.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/resources/application.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/resources/bootstrap.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.classpath delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.project delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.eclipse.jdt.core.prefs delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.eclipse.m2e.core.prefs delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.springframework.ide.eclipse.prefs delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/pom.xml delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/SpringBootHelloWorldApplication.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/ErrorFilter.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/PostFilter.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/PreFilter.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/RouteFilter.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/resources/application.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/resources/bootstrap.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/MANIFEST.MF delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/employee-zuul-service/pom.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/employee-zuul-service/pom.xml delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/application.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/bootstrap.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/SpringBootHelloWorldApplication.class delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/ErrorFilter.class delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/PostFilter.class delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/PreFilter.class delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/RouteFilter.class delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/.gitignore delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/mvnw delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/mvnw.cmd delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/pom.xml delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/main/resources/application.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.gitignore delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/mvnw delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/mvnw.cmd delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/pom.xml delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/resources/application.properties delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java delete mode 100644 EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/.eclipse-pmd delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/.gitignore delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/mvnw delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/mvnw.cmd delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/pom.xml delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/ATMController.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/AccountController.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/BankController.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/ATM.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Account.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/AuditLog.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Bank.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Customer.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/RefMoney.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Transaction.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IATMService.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IAccountService.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IBankService.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/resources/application.properties delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/main/resources/bootstrap.properties delete mode 100644 EurekaServerUsingRestTemplate/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/.gitignore delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/mvnw delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/mvnw.cmd delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/pom.xml delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/src/main/resources/application.properties delete mode 100644 EurekaServerUsingRestTemplate/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/.gitignore delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/.mvn/wrapper/maven-wrapper.jar delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/.mvn/wrapper/maven-wrapper.properties delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/mvnw delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/mvnw.cmd delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/pom.xml delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/main/resources/application.properties delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java delete mode 100644 EurekaServerUsingRestTemplate/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java delete mode 100644 HowToUseSwaggerUI delete mode 100644 IMP for execution h2 delete mode 100644 MongoDB-Document (1).txt delete mode 100644 MyDatabase for SuperMarket Project/.gitignore delete mode 100644 MyDatabase for SuperMarket Project/MydatabaseQueries.txt delete mode 100644 MyDatabase for SuperMarket Project/retailShopDB.mwb delete mode 100644 MyDatabase for SuperMarket Project/retailShopDB.mwb.bak delete mode 100644 PPTs/JUnit and Mockito Training v1.0 (1).pptx delete mode 100644 PPTs/SerializationPPT1452018.pptx delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.eclipse-pmd delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.gitignore delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.mvn/wrapper/maven-wrapper.jar delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.mvn/wrapper/maven-wrapper.properties delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/mvnw delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/mvnw.cmd delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/pom.xml delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/BankApplication.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/ATMController.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/AccountController.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/BankController.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/ATM.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Account.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/AuditLog.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Bank.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Customer.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/RefMoney.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Transaction.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AuditRegistrationSource.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IATMService.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IAccountService.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IBankService.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/configrabbit/RabbitConfig.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/resources/application.properties delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.gitignore delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.mvn/wrapper/maven-wrapper.jar delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.mvn/wrapper/maven-wrapper.properties delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/bootstrap.properties delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/mvnw delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/mvnw.cmd delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/pom.xml delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/rcvlistner/MsgListener.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/resources/application.properties delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java delete mode 100644 Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.eclipse-pmd delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.gitignore delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.mvn/wrapper/maven-wrapper.jar delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.mvn/wrapper/maven-wrapper.properties delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/mvnw delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/mvnw.cmd delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/pom.xml delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/BankApplication.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/ATMController.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/AccountController.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/BankController.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/ATM.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Account.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/AuditLog.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Bank.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Customer.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/RefMoney.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Transaction.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AuditRegistrationSource.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IATMService.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IAccountService.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IBankService.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/configrabbit/RabbitConfig.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/resources/application.properties delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.gitignore delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.mvn/wrapper/maven-wrapper.jar delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.mvn/wrapper/maven-wrapper.properties delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/bootstrap.properties delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/mvnw delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/mvnw.cmd delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/pom.xml delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/rcvlistner/MsgListener.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/resources/application.properties delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java delete mode 100644 Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java delete mode 100644 Rabbit mq installations delete mode 100644 RabbitDemoSimple/demoCommon/.classpath delete mode 100644 RabbitDemoSimple/demoCommon/.project delete mode 100644 RabbitDemoSimple/demoCommon/.settings/.jsdtscope delete mode 100644 RabbitDemoSimple/demoCommon/.settings/org.eclipse.jdt.core.prefs delete mode 100644 RabbitDemoSimple/demoCommon/.settings/org.eclipse.m2e.core.prefs delete mode 100644 RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.common.component delete mode 100644 RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.container delete mode 100644 RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.name delete mode 100644 RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.validation.prefs delete mode 100644 RabbitDemoSimple/demoCommon/pom.xml delete mode 100644 RabbitDemoSimple/demoCommon/src/main/java/com/example/commonDemo/TransactionNew.java delete mode 100644 RabbitDemoSimple/demoCommon/src/main/webapp/WEB-INF/web.xml delete mode 100644 RabbitDemoSimple/demoCommon/target/classes/META-INF/MANIFEST.MF delete mode 100644 RabbitDemoSimple/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.properties delete mode 100644 RabbitDemoSimple/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.xml delete mode 100644 RabbitDemoSimple/demoCommon/target/classes/com/example/commonDemo/TransactionNew.class delete mode 100644 RabbitDemoSimple/demoCommon/target/demoCommon.jar delete mode 100644 RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF delete mode 100644 RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.properties delete mode 100644 RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.xml delete mode 100644 RabbitDemoSimple/demoCommon/target/maven-archiver/pom.properties delete mode 100644 RabbitDemoSimple/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 RabbitDemoSimple/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst delete mode 100644 RabbitDemoSimple/sampleRcv/.gitignore delete mode 100644 RabbitDemoSimple/sampleRcv/.mvn/wrapper/maven-wrapper.jar delete mode 100644 RabbitDemoSimple/sampleRcv/.mvn/wrapper/maven-wrapper.properties delete mode 100644 RabbitDemoSimple/sampleRcv/mvnw delete mode 100644 RabbitDemoSimple/sampleRcv/mvnw.cmd delete mode 100644 RabbitDemoSimple/sampleRcv/pom.xml delete mode 100644 RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/SampleRcvApplication.java delete mode 100644 RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/dto/Transaction.java delete mode 100644 RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/listener/MsgListener.java delete mode 100644 RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/repository/DemoRepository.java delete mode 100644 RabbitDemoSimple/sampleRcv/src/main/resources/application.properties delete mode 100644 RabbitDemoSimple/sampleRcv/src/test/java/com/example/sampleRcv/SampleRcvApplicationTests.java delete mode 100644 RabbitDemoSimple/sampleSend/.gitignore delete mode 100644 RabbitDemoSimple/sampleSend/.mvn/wrapper/maven-wrapper.jar delete mode 100644 RabbitDemoSimple/sampleSend/.mvn/wrapper/maven-wrapper.properties delete mode 100644 RabbitDemoSimple/sampleSend/mvnw delete mode 100644 RabbitDemoSimple/sampleSend/mvnw.cmd delete mode 100644 RabbitDemoSimple/sampleSend/pom.xml delete mode 100644 RabbitDemoSimple/sampleSend/src/main/java/com/example/sampleSend/SampleSendApplication.java delete mode 100644 RabbitDemoSimple/sampleSend/src/main/java/com/example/sampleSend/controller/AppController.java delete mode 100644 RabbitDemoSimple/sampleSend/src/main/resources/application.properties delete mode 100644 RabbitDemoSimple/sampleSend/src/test/java/com/example/sampleSend/SampleSendApplicationTests.java delete mode 100644 Spring Security delete mode 100644 SpringJDBCTemplateExampleForLearning/.DS_Store delete mode 100644 SpringJDBCTemplateExampleForLearning/.classpath delete mode 100644 SpringJDBCTemplateExampleForLearning/.project delete mode 100644 SpringJDBCTemplateExampleForLearning/.settings/org.eclipse.jdt.core.prefs delete mode 100644 SpringJDBCTemplateExampleForLearning/.settings/org.eclipse.m2e.core.prefs delete mode 100644 SpringJDBCTemplateExampleForLearning/pom.xml delete mode 100644 SpringJDBCTemplateExampleForLearning/sample_data_postgresql.sql delete mode 100644 SpringJDBCTemplateExampleForLearning/src/.DS_Store delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/.DS_Store delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/.DS_Store delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/.DS_Store delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/.DS_Store delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/Main.java delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/model/Person.java delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/model/PersonMapper.java delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/.DS_Store delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/config/AppConfig.java delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/dao/PersonDAO.java delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/dao/PersonDAOImpl.java delete mode 100644 SpringJDBCTemplateExampleForLearning/src/main/resources/database.properties delete mode 100644 _config.yml delete mode 100644 bank/.classpath delete mode 100644 bank/.eclipse-pmd delete mode 100644 bank/.project delete mode 100644 bank/.settings/org.eclipse.core.resources.prefs delete mode 100644 bank/.settings/org.eclipse.jdt.core.prefs delete mode 100644 bank/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 bank/.settings/org.springframework.ide.eclipse.prefs delete mode 100644 bank/bin/.settings/org.eclipse.core.resources.prefs delete mode 100644 bank/bin/.settings/org.eclipse.jdt.core.prefs delete mode 100644 bank/bin/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 bank/bin/.settings/org.springframework.ide.eclipse.prefs delete mode 100644 bank/bin/mvnw delete mode 100644 bank/bin/mvnw.cmd delete mode 100644 bank/bin/pom.xml delete mode 100644 bank/bin/src/main/java/com/springboot/bank/BankApplication.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/controller/BankController.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/model/ATM.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/model/Bank.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/model/Customer.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/repository/BankDAO.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/service/BankService.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/service/BankServiceImpl.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/service/CustomerService.class delete mode 100644 bank/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class delete mode 100644 bank/bin/src/main/resources/application.properties delete mode 100644 bank/bin/src/test/java/com/springboot/bank/BankApplicationTests.class delete mode 100644 bank/bin/target/classes/META-INF/MANIFEST.MF delete mode 100644 bank/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties delete mode 100644 bank/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml delete mode 100644 bank/bin/target/classes/application.properties delete mode 100644 bank/mvnw delete mode 100644 bank/mvnw.cmd delete mode 100644 bank/pom.xml delete mode 100644 bank/src/main/java/com/springboot/bank/BankApplication.java delete mode 100644 bank/src/main/java/com/springboot/bank/controller/ATMController.java delete mode 100644 bank/src/main/java/com/springboot/bank/controller/AccountController.java delete mode 100644 bank/src/main/java/com/springboot/bank/controller/BankController.java delete mode 100644 bank/src/main/java/com/springboot/bank/controller/BankDenominationController.java delete mode 100644 bank/src/main/java/com/springboot/bank/controller/CustomerController.java delete mode 100644 bank/src/main/java/com/springboot/bank/controller/TransactionController.java delete mode 100644 bank/src/main/java/com/springboot/bank/dto/ATMDetails.java delete mode 100644 bank/src/main/java/com/springboot/bank/dto/AccountDetails.java delete mode 100644 bank/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java delete mode 100644 bank/src/main/java/com/springboot/bank/dto/WrapperAccountDenomination.java delete mode 100644 bank/src/main/java/com/springboot/bank/dto/WrapperBankATM.java delete mode 100644 bank/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java delete mode 100644 bank/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java delete mode 100644 bank/src/main/java/com/springboot/bank/dto/WrapperBankDenomination.java delete mode 100644 bank/src/main/java/com/springboot/bank/exception/BankException.java delete mode 100644 bank/src/main/java/com/springboot/bank/model/ATM.java delete mode 100644 bank/src/main/java/com/springboot/bank/model/Account.java delete mode 100644 bank/src/main/java/com/springboot/bank/model/Bank.java delete mode 100644 bank/src/main/java/com/springboot/bank/model/BankDenomination.java delete mode 100644 bank/src/main/java/com/springboot/bank/model/Customer.java delete mode 100644 bank/src/main/java/com/springboot/bank/model/Transaction.java delete mode 100644 bank/src/main/java/com/springboot/bank/repository/ATMDAO.java delete mode 100644 bank/src/main/java/com/springboot/bank/repository/AccountDAO.java delete mode 100644 bank/src/main/java/com/springboot/bank/repository/BankDAO.java delete mode 100644 bank/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java delete mode 100644 bank/src/main/java/com/springboot/bank/repository/CustomerDAO.java delete mode 100644 bank/src/main/java/com/springboot/bank/repository/TransactionDAO.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/ATMService.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/ATMServiceImpl.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/AccountService.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/AccountServiceImpl.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/BankDenominationService.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/BankService.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/BankServiceImpl.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/CustomerService.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/TransactionService.java delete mode 100644 bank/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java delete mode 100644 bank/src/main/resources/application.properties delete mode 100644 bank/src/test/java/com/springboot/bank/BankApplicationTests.java delete mode 100644 bank/src/test/java/com/springboot/bank/CustomerServiceTest.java delete mode 100644 bank/target/classes/META-INF/MANIFEST.MF delete mode 100644 bank/target/classes/META-INF/maven/com.springboot/bank/pom.properties delete mode 100644 bank/target/classes/META-INF/maven/com.springboot/bank/pom.xml delete mode 100644 bank/target/classes/application.properties delete mode 100644 bank/target/classes/com/springboot/bank/BankApplication.class delete mode 100644 bank/target/classes/com/springboot/bank/controller/ATMController.class delete mode 100644 bank/target/classes/com/springboot/bank/controller/AccountController.class delete mode 100644 bank/target/classes/com/springboot/bank/controller/BankController.class delete mode 100644 bank/target/classes/com/springboot/bank/controller/BankDenominationController.class delete mode 100644 bank/target/classes/com/springboot/bank/controller/CustomerController.class delete mode 100644 bank/target/classes/com/springboot/bank/controller/TransactionController.class delete mode 100644 bank/target/classes/com/springboot/bank/dto/ATMDetails.class delete mode 100644 bank/target/classes/com/springboot/bank/dto/AccountDetails.class delete mode 100644 bank/target/classes/com/springboot/bank/dto/WrapperATMDenomination.class delete mode 100644 bank/target/classes/com/springboot/bank/dto/WrapperAccountDenomination.class delete mode 100644 bank/target/classes/com/springboot/bank/dto/WrapperBankATM.class delete mode 100644 bank/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class delete mode 100644 bank/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class delete mode 100644 bank/target/classes/com/springboot/bank/dto/WrapperBankDenomination.class delete mode 100644 bank/target/classes/com/springboot/bank/exception/BankException.class delete mode 100644 bank/target/classes/com/springboot/bank/model/ATM.class delete mode 100644 bank/target/classes/com/springboot/bank/model/Account.class delete mode 100644 bank/target/classes/com/springboot/bank/model/Bank.class delete mode 100644 bank/target/classes/com/springboot/bank/model/BankDenomination.class delete mode 100644 bank/target/classes/com/springboot/bank/model/Customer.class delete mode 100644 bank/target/classes/com/springboot/bank/model/Transaction.class delete mode 100644 bank/target/classes/com/springboot/bank/repository/ATMDAO.class delete mode 100644 bank/target/classes/com/springboot/bank/repository/AccountDAO.class delete mode 100644 bank/target/classes/com/springboot/bank/repository/BankDAO.class delete mode 100644 bank/target/classes/com/springboot/bank/repository/BankDenominationDAO.class delete mode 100644 bank/target/classes/com/springboot/bank/repository/CustomerDAO.class delete mode 100644 bank/target/classes/com/springboot/bank/repository/TransactionDAO.class delete mode 100644 bank/target/classes/com/springboot/bank/service/ATMService.class delete mode 100644 bank/target/classes/com/springboot/bank/service/ATMServiceImpl.class delete mode 100644 bank/target/classes/com/springboot/bank/service/AccountService.class delete mode 100644 bank/target/classes/com/springboot/bank/service/AccountServiceImpl.class delete mode 100644 bank/target/classes/com/springboot/bank/service/BankDenominationService.class delete mode 100644 bank/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class delete mode 100644 bank/target/classes/com/springboot/bank/service/BankService.class delete mode 100644 bank/target/classes/com/springboot/bank/service/BankServiceImpl.class delete mode 100644 bank/target/classes/com/springboot/bank/service/CustomerService.class delete mode 100644 bank/target/classes/com/springboot/bank/service/CustomerServiceImpl.class delete mode 100644 bank/target/classes/com/springboot/bank/service/TransactionService.class delete mode 100644 bank/target/classes/com/springboot/bank/service/TransactionServiceImpl.class delete mode 100644 bank/target/test-classes/com/springboot/bank/BankApplicationTests.class delete mode 100644 bank/target/test-classes/com/springboot/bank/CustomerServiceTest.class delete mode 100644 demoCommon/.classpath delete mode 100644 demoCommon/.project delete mode 100644 demoCommon/.settings/.jsdtscope delete mode 100644 demoCommon/.settings/org.eclipse.jdt.core.prefs delete mode 100644 demoCommon/.settings/org.eclipse.m2e.core.prefs delete mode 100644 demoCommon/.settings/org.eclipse.wst.common.component delete mode 100644 demoCommon/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.container delete mode 100644 demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.name delete mode 100644 demoCommon/.settings/org.eclipse.wst.validation.prefs delete mode 100644 demoCommon/pom.xml delete mode 100644 demoCommon/src/main/java/com/example/commonDemo/TransactionNew.java delete mode 100644 demoCommon/src/main/webapp/WEB-INF/web.xml delete mode 100644 demoCommon/target/classes/META-INF/MANIFEST.MF delete mode 100644 demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.properties delete mode 100644 demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.xml delete mode 100644 demoCommon/target/classes/com/example/commonDemo/TransactionNew.class delete mode 100644 demoCommon/target/demoCommon.jar delete mode 100644 demoCommon/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF delete mode 100644 demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.properties delete mode 100644 demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.xml delete mode 100644 demoCommon/target/maven-archiver/pom.properties delete mode 100644 demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst delete mode 100644 index.html delete mode 100644 training-spring-security-demo-master/.classpath delete mode 100644 training-spring-security-demo-master/.gitignore delete mode 100644 training-spring-security-demo-master/.mvn/wrapper/maven-wrapper.properties delete mode 100644 training-spring-security-demo-master/.project delete mode 100644 training-spring-security-demo-master/.settings/org.eclipse.core.resources.prefs delete mode 100644 training-spring-security-demo-master/.settings/org.eclipse.jdt.core.prefs delete mode 100644 training-spring-security-demo-master/.settings/org.eclipse.wst.common.project.facet.core.xml delete mode 100644 training-spring-security-demo-master/.springBeans delete mode 100644 training-spring-security-demo-master/LICENSE delete mode 100644 training-spring-security-demo-master/bin/.gitignore delete mode 100644 training-spring-security-demo-master/bin/.mvn/wrapper/maven-wrapper.properties delete mode 100644 training-spring-security-demo-master/bin/.project delete mode 100644 training-spring-security-demo-master/bin/.settings/org.eclipse.core.resources.prefs delete mode 100644 training-spring-security-demo-master/bin/LICENSE delete mode 100644 training-spring-security-demo-master/bin/mvnw delete mode 100644 training-spring-security-demo-master/bin/mvnw.cmd delete mode 100644 training-spring-security-demo-master/bin/pom.xml delete mode 100644 training-spring-security-demo-master/bin/src/main/resources/application.properties delete mode 100644 training-spring-security-demo-master/bin/target/classes/META-INF/MANIFEST.MF delete mode 100644 training-spring-security-demo-master/mvnw delete mode 100644 training-spring-security-demo-master/mvnw.cmd delete mode 100644 training-spring-security-demo-master/pom.xml delete mode 100644 training-spring-security-demo-master/src/main/java/com/spring/security/web/Authority.java delete mode 100644 training-spring-security-demo-master/src/main/java/com/spring/security/web/TrainingSpringSecurityDemoApplication.java delete mode 100644 training-spring-security-demo-master/src/main/java/com/spring/security/web/config/TrainingSecurityConfiguration.java delete mode 100644 training-spring-security-demo-master/src/main/java/com/spring/security/web/entity/Role.java delete mode 100644 training-spring-security-demo-master/src/main/java/com/spring/security/web/entity/User.java delete mode 100644 training-spring-security-demo-master/src/main/java/com/spring/security/web/repository/UserRepository.java delete mode 100644 training-spring-security-demo-master/src/main/java/com/spring/security/web/resource/SecurityTestController.java delete mode 100644 training-spring-security-demo-master/src/main/java/com/spring/security/web/service/TrainingUserDetailsService.java delete mode 100644 training-spring-security-demo-master/src/main/resources/application.properties delete mode 100644 training-spring-security-demo-master/src/test/java/com/amit/spring/security/web/TrainingSpringSecurityDemoApplicationTests.java delete mode 100644 training-spring-security-demo-master/target/classes/META-INF/MANIFEST.MF delete mode 100644 training-spring-security-demo-master/target/classes/META-INF/maven/com.amit.spring.security/training-spring-security-demo/pom.properties delete mode 100644 training-spring-security-demo-master/target/classes/META-INF/maven/com.amit.spring.security/training-spring-security-demo/pom.xml delete mode 100644 training-spring-security-demo-master/target/classes/application.properties diff --git a/10SuperMarketServlet/WebContent/META-INF/MANIFEST.MF b/10SuperMarketServlet/WebContent/META-INF/MANIFEST.MF deleted file mode 100644 index 254272e..0000000 --- a/10SuperMarketServlet/WebContent/META-INF/MANIFEST.MF +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Class-Path: - diff --git a/10SuperMarketServlet/WebContent/WEB-INF/error.jsp b/10SuperMarketServlet/WebContent/WEB-INF/error.jsp deleted file mode 100644 index 23bd305..0000000 --- a/10SuperMarketServlet/WebContent/WEB-INF/error.jsp +++ /dev/null @@ -1,14 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1" isErrorPage="true" %> - - - - -Insert title here - - -

Sorry an exception occured!

- -Exception is: <%= exception %> - - \ No newline at end of file diff --git a/10SuperMarketServlet/WebContent/WEB-INF/web.xml b/10SuperMarketServlet/WebContent/WEB-INF/web.xml deleted file mode 100644 index 34f5873..0000000 --- a/10SuperMarketServlet/WebContent/WEB-INF/web.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - GroceryServlet2 - - - - index1.html - - - java.lang.Exception - /error.jsp - - - - DemoServlet - MainServlet.DemoServlet - - - - DemoServlet - /home1 - - - - - DemoServlet2 - MainServlet.DemoServlet2 - - - - - DemoServlet2 - /viewgoods - - - - - DemoServlet3 - MainServlet.DemoServlet3 - - - - - DemoServlet3 - /viewsupplier - - - - - - - \ No newline at end of file diff --git a/10SuperMarketServlet/WebContent/home1.jsp b/10SuperMarketServlet/WebContent/home1.jsp deleted file mode 100644 index 0eba4b9..0000000 --- a/10SuperMarketServlet/WebContent/home1.jsp +++ /dev/null @@ -1,44 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> -<%@page import="java.util.ArrayList"%> -<%@page import="java.util.List"%> -<%@page import="model.Customer"%> - - - - <% - List customerList = (ArrayList) request.getAttribute("list"); - - for (Customer ref : customerList) { - out.print("Id: " + ref.getCustomerId()); - out.print("
"); - out.print("Name: " + ref.getCustomerName()); - out.print("
"); - out.print("Address: " + ref.getCustomerAddress()); - out.print("
"); - out.print("PaymentMode: " + ref.getPaymentMode()); - out.print("
"); - } - %> - - - <% - Integer hitsCount = (Integer)application.getAttribute("hitCounter"); - if( hitsCount ==null || hitsCount == 0 ) { - /* First visit */ - out.println("Welcome to my website!"); - hitsCount = 1; - } else { - /* return visit */ - out.println("Welcome back to my website!"); - hitsCount += 1; - } - application.setAttribute("hitCounter", hitsCount); - %> -
-

Total number of visits: <%= hitsCount%>

-
- - - \ No newline at end of file diff --git a/10SuperMarketServlet/WebContent/index1.html b/10SuperMarketServlet/WebContent/index1.html deleted file mode 100644 index 49dec3f..0000000 --- a/10SuperMarketServlet/WebContent/index1.html +++ /dev/null @@ -1,21 +0,0 @@ - - -
- Id:
- -
- -
- - -
- - - -
- Id:
- -
- - - \ No newline at end of file diff --git a/10SuperMarketServlet/WebContent/viewgoods.jsp b/10SuperMarketServlet/WebContent/viewgoods.jsp deleted file mode 100644 index aecbbd3..0000000 --- a/10SuperMarketServlet/WebContent/viewgoods.jsp +++ /dev/null @@ -1,30 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> -<%@page import="java.util.ArrayList"%> -<%@page import="java.util.List"%> -<%@page import="model.Goods"%> - - - -goods - - - - <% - List goodsList = (ArrayList) request.getAttribute("glist"); - - for (Goods ref : goodsList) { - out.print("Id: " + ref.getGoodsId()); - out.print("
"); - out.print("Name: " + ref.getGoodsName()); - out.print("
"); - out.print("Price: " + ref.getGoodsPrice()); - out.print("
"); - out.print("GoodsQuantity: " + ref.getGoodsQuantity()); - out.print("
"); - - } - %> - - \ No newline at end of file diff --git a/10SuperMarketServlet/WebContent/viewsupplier.jsp b/10SuperMarketServlet/WebContent/viewsupplier.jsp deleted file mode 100644 index 267bc09..0000000 --- a/10SuperMarketServlet/WebContent/viewsupplier.jsp +++ /dev/null @@ -1,34 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> -<%@page import="java.util.ArrayList"%> -<%@page import="java.util.List"%> -<%@page import="model.Supplier"%> - - - -goods - - - - <% - List supplierList = (ArrayList) request.getAttribute("slist"); - - for (Supplier ref : supplierList) { - out.print("Id: " + ref.getSupplierId()); - out.print("
"); - out.print("Name: " + ref.getSupplierName()); - out.print("
"); - out.print("Price: " + ref.getSupplierAddress()); - out.print("
"); - out.print("OrderQuantity: " + ref.getQuantityOrder()); - out.print("
"); - out.print("OrderId: " + ref.getOrderId()); - out.print("
"); - out.print("Amount: " + ref.getAmount()); - out.print("
"); - - } - %> - - \ No newline at end of file diff --git a/10SuperMarketServlet/build/classes/controller/DemoServlet.class b/10SuperMarketServlet/build/classes/controller/DemoServlet.class deleted file mode 100644 index 87c5d25b5c53d468c6183bec73a93ed661a473dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1532 zcmah}*;W%l5WSs+3CYM3!V-|M$Px%JisC{rf&tWX=70w{yibOf3}=#wGabOs@=4=^ zAK*uMtXbG5L0)>MtE=nYs=C#G{{H$6-~~QNh%gN4R$bVZX>wcH<~8e(+vg@15@HOw zGwocvR2<)=RE20LA884E7`ir$x*mJvr6L$7Mo`ChYD;r5YM zF*!q8wRFuq)@;Mw2gaDF8VmLnJr^6LLd9q_MB?ug=pZcf9hJG|)f zPVQXlydexSNJzKk9i)5hBq75v;L=bGOZl{aeUQKqL$~0Uf@)PWQy9Uhge=3{L!5mw zGRE+jp~vB(OkLr1arCW0MH}>!R!psasvHX2sGkz=1ab^WVG`34rWl6ZJ{dY!4!F<^ z>Zi+__A;JehCx0z_(i$t2&=|zhM7(=y`m{iVVH_)P!SWDqpq6tn?fFo5*8R{AIin6 zzl;Kw2$WLU62!RD6qLw(2T&i=OKrb$#&zMPw!)C864RA4r{Q8hmGKO#44G3df);NZ zPD2xV)y-zDL*Rvw1lq0@Q#1uHC9E+_+)b*@RmLm4W{|#E_JwAjFl_pOH^UK#07A`jgie$saE08EE4Hq;uuB&KpD*J6ooCl9Trt@B-yHnF<(R;{?r z!xZQlqK6HL&>uZNv`Vy7=u2~g_~H*FzI(?>THRxykLCxEeFyqJqFoF<=%pZio>v6@ z81Mr9r0`v2TU|;IwlGX6d&}wZ7A7KCj}_9h*;otnQ54e4EhuD*XXAyX7M@4pqDJAO z=DbK*Brr<*F=Q}Kwj2q3g7iJUh^;2{g(quF5YT82HMElOxV)q}-w^!sZGtorf zeDIGl&b2^~w0cb=^5VmFZzeO}&dq%Lb$|T){1pJ!;ZYV+43-_O3~JXESb2fk5qP|z zls4Q*t+J42Fx%!GUU9iNV-99m+I^=`1lsM0rsZhQ zmu|OA%STPyc)??&65?WnPKbOa z5-Z$7*%7$I6>kaL;)ah@>UdeB7k;^sBed;Rv*FZ*=hGQa8ta9G7N7`Mi;#yo2J= zyPJNj1RvZ=pEr?e+EM?iIap$Be*{e&q1)rpZM>|@rQXQ9GbpxW9AvQCW5K{c%66Q9 zG?qIIzW<%E#DNo(=t4q?lRdS1E+cj?3|tY`qH_@)gmd~%9F06N6(`SRhr1zx%-ZKQ zyPAaubT5d_B@1P0e*A;T+>t>*=dMow5CPl;x-!r;hS4(#8CtXS7Ogp2Cuq$>fqtjR zTJPEbg)dOtpS$u2X1|d)1=mh8B82PoUZi-6f_Ye=72pOeQq(E#P4Wz)-5P?nG!$(a lZvO@?MaaF{R)(P6AA&Xk7UiU<3#ZlHBl{se8S<_|=@+~b8K3|F diff --git a/10SuperMarketServlet/build/classes/model/Customer.class b/10SuperMarketServlet/build/classes/model/Customer.class deleted file mode 100644 index d0f396cb2bc07edb18314e6964811a479ede8a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1381 zcmb`F-)<675XQf={IjqH3I$4A6}2jCTe;A?HYD1_M8&G9A<@K(1va=1f6TI&_#Qrp zCK3}bd;lNH_{}a**lzFKi*x48&YAhmH|NjaU%vr7!hQmpLV7UjTK)RTWbBRxmXknK zA$x9qHtT(J*sH&4pIaSQA=#M)JnJgtnim0Qu44~-M+*8p;?x{i3Yq!wakuMOi^}bwG^T!ES^LJ867EP6(ZGIYYl8k zM+|YXHgzO?tEl6eZ*A#V^Q~@ zv-NCqRb|Sx-m~1f=pw;pwRX8thK*Ol3LyeXW0|FNvjHsK^gX$yn8j3bOJNIVnvt)U zrZiX(Y8nm8TnDJMwCc_R zePz6OE5=Wxjr}P$jDsoi#^DqNqa2;0WRzo5l)rl!cDUYPexQgbwwSAoG`5k)4y|3> zA|_=LS817|+5gfRxiOcky|Sm!P`W5y3`e50YU7#Jqb zJ+GWJBNF)K6h*mBk6dmrT8hQJ)-IYzdfo%xIrK6V{ip@7Ku86JJE0)?Ajrc|kiBq_ zd=TV_<&Lia5xoTDZYW402=XKp diff --git a/10SuperMarketServlet/build/classes/model/Goods.class b/10SuperMarketServlet/build/classes/model/Goods.class deleted file mode 100644 index 4699f1718194f3c1dc5549550e13be796fa28c3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1345 zcmZ{i-EI<55Xb*#Sr*wY7Wu~77C%|G6*Mt=QRT+khJ;j2EB6a*a2q}vSWJ8mAHzgV zBqmlNeNi2y4SSdVWTU4c|{aeMBK-C^%YATF=Z?13YYkoNnjJ@j1fvw&y_=+gIY z>~<(X9Ft=*y}IhV&X`kbFWsT*)dh~saPqLHaUAwlS_0~8>O)5aw+tkZ5{Q_URvZEu z15s#f8mx#MyV-fQ~J;?ietj32Zmrp>sAJw4L#V-R=`|syXV|{gyp;`RqGY z@1r}Rew$1BkrsN-@lFG^GG-+V%k3}4WY=`f{TM-_xvoa=W`0Ztw+p4IU(z}m#4RpV zv%v`y!4rQF6i=f_1o6ICHIF%1KOarU9p}X5{&m?jme_W^8^Yk^VOuuXua3?sNY9{e21GC3cE11j^&-P==kaGWLT|Mnx0^HqQL- zekb%Nqt2K9nH`(r6kSzO-@hmoAk1gyhg62wOW zZ(29&|0mP#2^8KF*M^C82PKpR%vQTs0+}7G!BUaypqNB;2X|nRr5jA-@%gwfqf@^h zlFsc;2Y%S|qd?u$WFh_*kaMGZ-4ecSeI(u>aOSg6sLE2j2As(g0M^vlEmPWn;wRLuv2+wtg zW};fcSt*>r<6MyHD#(5=$W}f`brs|l$GyG5Qg7VN}+XuQYcW6Z-ufHs(>GeAwh|;2>}s5yez>6}zb9M`5*(PR_J+pJ>%z0+s**|}O{sypuwGKoSx=$)ayOiInot~B)+wDM9 zA$e@QxAG;ce3aigIJOU~3W+m6piopuZCwQHRb8iiw5DJ*BDSp)TcM}%xlt^-_Su<2 z*Snfkt~%8ZJ8sc-6;wf?qawECj9Dj@TA4SgP2T3(Rm&;)I}e?*Q(afs&R)Iue>{c4 z=GCydeTC>_)}BBc`V91-U!g5Kw;zYXfPr?z#2PZt;aS55Iz8*UfjAPfJ7(aTXH6I| z&?UYp1Ko(R0b5Sl-maY-*zODKpv0D>wkn5KY2R`k`SzXB>RX4+Np4-%fer0Cva1bQ zq(lALxvOO`?Cf$_I;2ZdY)@0VhC~-9Jx{7B=3KW_(*@_wBqMh(>&fO((Ile-8_{e* z01`Z+rI%t73_Jgbb7#YspIJBnac(y}(d?!^zE`QahxQYW1&eMpW>F>)lk9sNhnf>D z!qJL|YVH|y!K!%*-n8Hm=V;(p70M9v8 zyobISu3`zl(w0;Z(U#O8_2p#nm{%;Rqg`84iPVsj!DBv!S!Df6@?0fbyZIgIuQVdO z91IhusSyk>z(-J+qu*=8I-><3rdx1PU_yJBc>S`@FyKX<7ZLM|P%JYHWH1P_8VZsN z2N?{4Z1B2AEkLA)(t(9gkW3KdX(-5II7lW4@{Az6EkHy<0m1dYb zWhlsPEcu5oq#5Bf20>mC)Pnrt%#!?~N`2?j;*$K_)FKy0e|82IMh1bb#Ii*F zoW#6zegCAa)Z`LI2JXa^6qqtbhCB@)gp%NrqRhN>YifyTVj9HAz*m%-n_rfSaDf^Y z7hu;}T9A@hf~1oxIKQ+gIn^yQCl%;Zn2A8I>w&z)#>l|Pzzhs01_oweNU$=nF@QpZ Toq+>PbAo7~3N9eY#J~*z4&P&7 diff --git a/10SuperMarketServlet/build/classes/repository/CustomerDAOImpl.class b/10SuperMarketServlet/build/classes/repository/CustomerDAOImpl.class deleted file mode 100644 index 32b96e0f777bcfa8e7ea69782c0a812c7945f958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1579 zcmd5+OK%e~5dNH|d2B*c(g)BKSdb{mrMbX`BBZE*RJ2ghhDscrT{m^uU9Y^}RQ+X0 zAi9g)`mKqfa{kpfm z7bRgCMTX@OAM!-yq2~26qfVt30oj&b%2=9L3=8ef5kqlT1)_`wLt_@x8?BYD;5I9) ze2TS5RX7%b>#Hb{6ak^SiB|MXl)iACYX3yIGD?&-uF}KpG|@619%~+nQ>DMSKDWWR z1L01PZm`S2v~D?ZyGFU(HD`%%svk2R%3~??HFnd~Ut>34(Hm~+U&en<-|gsSrX6;n0Y#fD$~ArD{YQf zC+8QlX4}?=#)mhfwN0ltB`;}$F>YvcetQCCP9P8?;Xl xO7`v?p_PNs%0;-32XhF8D-k-m2oL`O;du_i0$h5vKpC6l=P~I|Y1te-`2#Lkw-*2a diff --git a/10SuperMarketServlet/build/classes/repository/GoodsDAO.class b/10SuperMarketServlet/build/classes/repository/GoodsDAO.class deleted file mode 100644 index b633d3e2255648c6919eabe773eb5f52cba752bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmX^0Z`VEs1_l!b9(D#MMh4-c)Pnrt%#!?~N`3eI{FGuBM}Kw(7Dfhvti-ZJ{hY+S zbbbG%tkmQZMh1?=loYTUMg|`ZAB22xNl|8Ax;3VVrwgW-CZ-T019wqsZhl!R)NnN{ zhGW-OT9A@h0@KD7oL^d$oa&aDlgh}z3-gQ~$enDA42%rSKyNcJFa!O@%D~0|@*_I~ R2bksr(LfbkK$3}p8vxmnPtE`U diff --git a/10SuperMarketServlet/build/classes/repository/GoodsDAOImpl.class b/10SuperMarketServlet/build/classes/repository/GoodsDAOImpl.class deleted file mode 100644 index 11fabf49f25a140e6346a2cc0d3d5a0c1cbff96a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmd5+-)|B@5dM}T2M0n+tyNof{ngNyk{F-Fm=LQ5bK0b(O?*7=R=UXDUiKE6{$(0X z^xZ$oI7^_AaH;xYeAt=H+{`zVnQ!jL&oAEqJi(5G9K)s-iAtqW`n>sCsW9DdA9SK* z=pfIqI`GGSbLhwY=0R^D0^^{-u%3~^P#J{1percVH-e$+y;-nZ3|ohz*vLq9;;~F+ zZz$Svtc-7@ic^NN*B%*lCbbADw(v~G(mZEaY3!ab3p&u`)u$Nry(x~O8kf-{h>zk&zM{1-4@k-jMtt}q+o*gxvtT$(0 z%fUnPEH+8zTbZV`i7qiP#XZnL(z`-02M0ycCHj>VNV}x-q|2y~ygK>8*jT{*it79N z>L=8{la<2;Nt*$}x=zx@QxrCFgEXxWw@A(q9Q$p8u$6(Zor!Q8cNP$Gmm)MW5$^s4 Z!s85t6>zGWqlwMtbD!)-^z4it`~pw9dH4VT diff --git a/10SuperMarketServlet/build/classes/repository/RetailerDAO.class b/10SuperMarketServlet/build/classes/repository/RetailerDAO.class deleted file mode 100644 index 106f92abfebc569a3f3ddf35a4c8c54820a923d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmb7B%SyvQ6g{`r#?-16!7p&38?#W{M1-QWD1n0cg0VA%DQPB5CKZ3pg&)w55^n}W z3%Y1`b1vs`=bqK~=NEumoCfF+&aEm{{sepP2D)>Q7G(K2D(f|_3DM?#MeB9oRW%2Izvb$H{zw*sQ z6MgrOGR~cCY0?Xn2VEh6@kX zR%L(J54{{@8B84W7B6``XqNUH$LN?G3^SNb_hK-5>^7V_k~cTVV9eg@k;@F`t5INt zkGnxjXwmSn5(Lt4BV?c%jM$aP$P=N^CEMY35eT!vU}$CakU@4+x|oA;2IJ>3Z7U^J z9&WH9br2}j(rck>InoaWML?)ls3cwE>(^GXP(MOT_@PwBlB&6;LnVUd2gQ9nk?N!6 z@HiN&fmR3U-*TyTpE@N~%Sek`<}Acwq5BG#*!4c{UoowsjyzLCvwdn5cc_am31f>J zUU3}Mdi&JDFzJx~XYZ}W6>|LFqA9`{OpU?_Of#5SvCn^H&BPz89RJ#JTLkzn@*Ak? zoIWChNn1MHJLF2la$A`-M}i1o!A>WZn2v}Mrnu{NNU9RJJ7{)Y274)2_XpFjS?yQl zVS#~tF_XkZGI&!ECAI{fY)0Bh9~Fb;lxW+LL`HZeTWCY67HXmya1$x2*sB3t)@`5Y z(JOT>DsPnYaG$}ai<3!caqw&kf4;@r1*=72=!v*sSINHPMcGpccj=ycM2R%p+2ShqZ WK^lTbNnR`6%CD0Alvb9i_V^c}E2`T7 diff --git a/10SuperMarketServlet/build/classes/repository/SupplierDAO.class b/10SuperMarketServlet/build/classes/repository/SupplierDAO.class deleted file mode 100644 index a577df65a7264f1d64730d932c68dd8f8594e291..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 325 zcmX^0Z`VEs1_l!b9(D#MMh3B>)Pnrt%#!?~O8wx{f`XjP)FKy0e|82IMh1bb#Ii*F zoW#6zegCAa)Z`LI2JXa^6qqtbhIkDhgp%NrqRhN>Yhpw^JzX%BX<`a7GVm3p=H{2B zBCJ%yVkLH+r3ER8B}h8Cg7Zs@l2hF>b5em`gP92Qs~*S?Y>W(y49viQVPIeedYzSl XjR6z{>=5dJoex%@Jzv8|d`J%82qr2+BDh!Cto~}<|Gl-%2|JY6F1-X|2(vc1}@i8!wSRdmN%R2fwAN1+SxZf z8H-n0G!%NkX`Bo#Px(ANb= diff --git a/10SuperMarketServlet/build/classes/service/CustomerServiceImpl.class b/10SuperMarketServlet/build/classes/service/CustomerServiceImpl.class deleted file mode 100644 index 98b77d7635e09a5c6ca4b1c54c7d9a7d1a8ffd03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1187 zcmbVLT~8B16g^W)KepIH6{!L;O$Y%W=!;KcOd8aLWFv`15+A3#V;S7t+04!^;g^|c zqVN6ye~$5PZD|v>B=RtGGk5Mi_sqF-fBpIP1HcRHR#9TuOr*(_Cws?fVs$9Z;NSTq zjDsr546BzS6TLu0qu%N8QhK(E3d6>NG=_#Z0eaIvW$3s@#yU|}o9mkrbaO!MOd@>MLcWPqCF(DpK|}CG9T)JUC}4A8TJ$(PC)LSidz! zn;O;_et(RNOmvV*pL;rtRWPo`W232jn7rgp{p><=6~@|FuFdE$iH(XzpN$CRl{R0v zCvuW}DESoWUMUli3*flbTyT3GOQ(LLz};~Uns~T^1|Bi2@4K^?4{T2UC|9QCsz|<1 z!=W^1f*#AzcC{yhb753|o;b_)LXr5}?t=E_zk=G)5WYYCFAPyZ&D$*Q=Q+5YR>KxU z_wH6wCmEVXhB}i(R9pJk40{Dc3kpzX8vDZLnd6aQa0WUxo_wcrsn2LWFHRn?sm!C_>mRMA-Qcgy)3_oOqYe F{R?iSHiQ5G diff --git a/10SuperMarketServlet/build/classes/service/GoodsService.class b/10SuperMarketServlet/build/classes/service/GoodsService.class deleted file mode 100644 index 1c3f019e81614b20c361379369ee4f76a3bc44a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmX^0Z`VEs1_l!b9(D#MMh21M)S|M?5}i{aR{ zl@_EVmcX=e1?QI*C8xS&=A<$*2qJq(59C%hMg~R(W}x307?^?nV`X4t0Qr-hfdfo) Of@q)$E+EOozzqNv`BGj0 diff --git a/10SuperMarketServlet/build/classes/service/GoodsServiceImpl.class b/10SuperMarketServlet/build/classes/service/GoodsServiceImpl.class deleted file mode 100644 index cabaed6c7f40d5e3bc4ec2f38b6c01a6a6c6f8c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1123 zcmbW0TWb?R6vzLQrnziuQ)8nw^)eBW^rd<6$%+uHN?@^IYQe|J?wC&9-C1U5xAc<< z3i|E`@Z*SQ)6^6*6!c-|FlW#Co$LJg_2nCYr+8dPg<(6Brci+#ywN($#ut}SoJMt2 z88%NvAqJ61rh~)DsSIo#HHIyh4?|;GA`XU!3?1LdRAN90zNVc`-DpB?YrPz1Uc8?jVFLfyEXfd=FnZ7bcn+9$& z{CuAnndzvIArEw%s%RF9r$$rkID5vu=Fy4dDo(YrT$|}$mKv2zKN=CsGi^TcK$IEs ziR720|8ki()`8 z5>zZh+t-1Jj)hU>eXgw96Gffx`mT|dYe0i&h%lUO2ZQg3wj6(Su&mo%RyA;sp?Cd= zXhO6XM#j33^BkTya&XYeEl)#XFWtPc&P^a+tFjlJzqfs_Y$8L`pAU-4UM)nFOZ337 zLfl3c?&oi}FBYK5!-?<+Pwv^PJa{he+Vbm%NSK&;zzmiAx=zAeyOQ7s>tI_CKrE6gi)>d?cP88E_M6AO3+|W#ED%_oVn(2>hoCp@V*+co=79=@QTp=A1)j9f^GPI) z@OekZA{0H3x205u8KGo|7`q)AH4vJ+sJpN)q%a3)v@;FZI3tihR4y+-l|c16>bF`e zU4**?et(pjhsuk&OC9A0!b`o;Kr3|bhp(wsIz8u9_<_=fD&5}=11)6#vt~XYDE);x zED4hKI31Dx%Vb#O3>-CzGHNaZZk4VoaI>BTi?CdQGTbAuvSVLo-Ze?^t)wzlTS)#P z@_SsLGEA00%~lTc&X^X-ekjbFbAiR*u&1;)xfR%sW#+o0`_h)~5jP!|!21l}lhI5{ z8k3?TJR(rPxn0;T0+m?s!C@2{<#SD7J0pZ4J~F~<+9EU2^jD9xJG6ysxmMqfq cOj3P}v^68?MJDOV7-@S((q1O%X`0uwzt#+H*8l(j diff --git a/10SuperMarketServlet/build/classes/service/SupplierService.class b/10SuperMarketServlet/build/classes/service/SupplierService.class deleted file mode 100644 index 68dd431cb9c172f972b647a4b7098ab58f782213..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmX^0Z`VEs1_l!b9(D#MMh5ZX)S|M?b=^jrW}x?38Q2&= V!NAVI0j4=YG*AT>kYr-u1^{{+U?Bhi diff --git a/10SuperMarketServlet/build/classes/service/SupplierServiceImpl.class b/10SuperMarketServlet/build/classes/service/SupplierServiceImpl.class deleted file mode 100644 index dd408fcf5898e1a903ca4ae2301b846dc470e62b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1172 zcmbW0-)j>=5XZlprulKHNsYFR*4hn-wlB?#PgaCr6#|C^Qwu)H=59^5-rXL1dsq6G z2@3k|AK;%O&b3Js$fckUx5LiOeCE3|yTAT?`vKrNo>Wm{*iNL$lqY+`G>!u$&G33Z z2;-oNGQ;}0$V4v?(YSX!I+vcUqQbDXB#ohwOh8BdV}_1vWULcqwYj`0L4OXZ^7}Nh zDwKmLQ;8Y{vL8j-3afOK5XSANR$nM1eTuETRFSf;C~0pQaQ~E{{9606iWWm_ruvOB z+SG8D;rEBg$V3O3^tq?QSOr(rcx*J450e+%sh^xluEJOw%e5IFB(YJ^__GnAywK(g z_e3s|k0hUx{wrnDJRa#bYX zrQt}L6G4Y%XuH}I!KpAR-%p%nd#0%QJMNP4=C^{z(Gb2ry)O)(3TiH@So91AM~lw= zMOO`v7`nI5jz-7OG&0ngoGE)+psb((Wu~z&>|CZZ)T#00Ta~w}GbPTwjf1?+40U(n zqpqxGB1k2=U|6AVmA(?HsFAJHi>r`z$d<`Autw{ht9Q6UQGoLu&5!N%uW0|IT?res z<{2Q?CarlqMPUmavJ4OKaE_4kuL;`)gv~<24j#`DW*UkJypXW_4}@oh1Wvk3=>7%R CT`;u( diff --git a/10SuperMarketServlet/pom.xml b/10SuperMarketServlet/pom.xml deleted file mode 100644 index 0233ba8..0000000 --- a/10SuperMarketServlet/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ - - 4.0.0 - GroceryServlet2 - GroceryServlet2 - 0.0.1-SNAPSHOT - war - Grocery - - src - - - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - - - - maven-war-plugin - 3.0.0 - - WebContent - - - - - - - javax.servlet - servlet-api - 2.5 - provided - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - jstl - jstl - 1.2 - - - mysql - mysql-connector-java - 5.1.38 - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - \ No newline at end of file diff --git a/10SuperMarketServlet/src/MainServlet/DemoServlet.java b/10SuperMarketServlet/src/MainServlet/DemoServlet.java deleted file mode 100644 index 1055e76..0000000 --- a/10SuperMarketServlet/src/MainServlet/DemoServlet.java +++ /dev/null @@ -1,65 +0,0 @@ -package MainServlet; - -import java.io.IOException; -import java.util.List; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -import controller.AppJavaConfig; -import model.Customer; -import model.Goods; -import service.CustomerService; -import service.CustomerServiceImpl; -import service.RetailerService; -import service.RetailerServiceImpl; - -/** - * Servlet implementation class DemoServlet - */ - -// @WebServlet("/ramServlet") -public class DemoServlet extends HttpServlet { - - /** - * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse - * response) - */ - - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - response.setContentType("text/html"); - ApplicationContext context = new AnnotationConfigApplicationContext(AppJavaConfig.class); - //CustomerService customerService = (CustomerService) context.getBean("customerService",CustomerServiceImpl.class); - RetailerService retailerService = (RetailerService) context.getBean("retailerService", - RetailerServiceImpl.class); - - - String ID = request.getParameter("id"); - int id = Integer.parseInt(ID); - - - - - List customerList = retailerService.viewCustomer(id); - //List goodsList = retailerService.viewGoods(); - - - - // request.setAttribute("glist", goodsList); - request.setAttribute("list", customerList); - - RequestDispatcher requestDispatcher = request.getRequestDispatcher("home1.jsp"); - // RequestDispatcher requestDispatchergoods = request.getRequestDispatcher("viewgoods.jsp"); - requestDispatcher.forward(request, response); - //requestDispatchergoods.forward(request, response); - } - -} diff --git a/10SuperMarketServlet/src/MainServlet/DemoServlet2.java b/10SuperMarketServlet/src/MainServlet/DemoServlet2.java deleted file mode 100644 index 8d1b4e9..0000000 --- a/10SuperMarketServlet/src/MainServlet/DemoServlet2.java +++ /dev/null @@ -1,57 +0,0 @@ -package MainServlet; - -import java.io.IOException; -import java.util.List; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -import controller.AppJavaConfig; -import model.Customer; -import model.Goods; -import service.CustomerService; -import service.CustomerServiceImpl; -import service.RetailerService; -import service.RetailerServiceImpl; - -/** - * Servlet implementation class DemoServlet - */ - -// @WebServlet("/ramServlet") -public class DemoServlet2 extends HttpServlet { - - /** - * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse - * response) - */ - - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - response.setContentType("text/html"); - ApplicationContext context = new AnnotationConfigApplicationContext(AppJavaConfig.class); - //CustomerService customerService = (CustomerService) context.getBean("customerService",CustomerServiceImpl.class); - RetailerService retailerService = (RetailerService) context.getBean("retailerService", - RetailerServiceImpl.class); - // List customerList = retailerService.viewCustomer(106); - List goodsList = retailerService.viewGoods(); - - - - request.setAttribute("glist", goodsList); - // request.setAttribute("list", customerList); - - // RequestDispatcher requestDispatcher = request.getRequestDispatcher("home1.jsp"); - RequestDispatcher requestDispatchergoods = request.getRequestDispatcher("viewgoods.jsp"); - //requestDispatcher.forward(request, response); - requestDispatchergoods.forward(request, response); - } - -} diff --git a/10SuperMarketServlet/src/MainServlet/DemoServlet3.java b/10SuperMarketServlet/src/MainServlet/DemoServlet3.java deleted file mode 100644 index ec8ecce..0000000 --- a/10SuperMarketServlet/src/MainServlet/DemoServlet3.java +++ /dev/null @@ -1,72 +0,0 @@ -package MainServlet; - -import java.io.IOException; -import java.util.List; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -import controller.AppJavaConfig; -import model.Customer; -import model.Goods; -import model.Supplier; -import service.CustomerService; -import service.CustomerServiceImpl; -import service.RetailerService; -import service.RetailerServiceImpl; - -/** - * Servlet implementation class DemoServlet - */ - -// @WebServlet("/ramServlet") -public class DemoServlet3 extends HttpServlet { - - /** - * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse - * response) - */ - - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - response.setContentType("text/html"); - ApplicationContext context = new AnnotationConfigApplicationContext(AppJavaConfig.class); - //CustomerService customerService = (CustomerService) context.getBean("customerService",CustomerServiceImpl.class); - RetailerService retailerService = (RetailerService) context.getBean("retailerService", - RetailerServiceImpl.class); - - - String ID = request.getParameter("id1"); - try { - int id1 = Integer.parseInt(ID); - - - - - // List customerList = retailerService.viewCustomer(106); - - List supplierList = retailerService.viewSupplier(id1); - - - - - request.setAttribute("slist", supplierList); - // request.setAttribute("list", customerList); - - // RequestDispatcher requestDispatcher = request.getRequestDispatcher("home1.jsp"); - RequestDispatcher requestDispatcherSupplier = request.getRequestDispatcher("viewsupplier.jsp"); - //requestDispatcher.forward(request, response); - requestDispatcherSupplier.forward(request, response); - }catch (NumberFormatException e){ - System.out.println("not a number"); - } - } - -} diff --git a/10SuperMarketServlet/src/controller/AppJavaConfig.java b/10SuperMarketServlet/src/controller/AppJavaConfig.java deleted file mode 100644 index 6aca2c5..0000000 --- a/10SuperMarketServlet/src/controller/AppJavaConfig.java +++ /dev/null @@ -1,76 +0,0 @@ -package controller; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.datasource.DriverManagerDataSource; - -/** - * @class this is java configuration file - */ -@Configuration -@ComponentScan({ "service", "repository", "controller" }) -@PropertySource(value = { "classpath:database.properties" }) -public class AppJavaConfig { - - @Autowired - Environment environment; - - @Bean - DataSource dataSource() { - final DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); - driverManagerDataSource.setUrl(environment.getProperty("url")); - driverManagerDataSource.setUsername(environment.getProperty("dbuser")); - driverManagerDataSource.setPassword(environment.getProperty("dbpassword")); - driverManagerDataSource.setDriverClassName(environment.getProperty("driver")); - return driverManagerDataSource; - } - - @Bean - JdbcTemplate jdbcTempalte(DataSource dataSource) { - JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); - return jdbcTemplate; - } - - - /* - * @Bean public CustomerDAO customerDaoBean() { return new CustomerDAOImpl(); } - * - * @Bean public GoodsDAO goodsDAOBean() { return new GoodsDAOImpl(); } - * - * @Bean public SupplierDAO supplierDAOBean() { return new SupplierDAOImpl(); } - */ - - /** - * this is CustomerService bean used to invoke the services - */ - /* - * @Bean public RetailerDAO retailerDAOBean() { return new RetailerDAOImpl(); } - * - *//** - * this is CustomerService bean used to invoke the services - *//* - * @Bean public CustomerService customerService() { return new - * CustomerServiceImpl(); } - */ - - /** - * this is GoodsService bean used to invoke the services - */ - /* - * @Bean public GoodsService goodsService() { return new GoodsServiceImpl(); } - * - * @Bean public SupplierService supplierService() { return new - * SupplierServiceImpl(); } - * - * @Bean public RetailerService retailerService() { return new - * RetailerServiceImpl(); } - */ - -} diff --git a/10SuperMarketServlet/src/main/resources/database.properties b/10SuperMarketServlet/src/main/resources/database.properties deleted file mode 100644 index 9c1f900..0000000 --- a/10SuperMarketServlet/src/main/resources/database.properties +++ /dev/null @@ -1,4 +0,0 @@ -driver=com.mysql.jdbc.Driver -url=jdbc:mysql://localhost:3306/mydb1 -dbuser=root -dbpassword=root \ No newline at end of file diff --git a/10SuperMarketServlet/src/model/Customer.java b/10SuperMarketServlet/src/model/Customer.java deleted file mode 100644 index 86ec6b1..0000000 --- a/10SuperMarketServlet/src/model/Customer.java +++ /dev/null @@ -1,133 +0,0 @@ -package model; - -/** - * @author Ram - * - */ - - - - -/** - * @class this class represent a customer entity - * - */ -public class Customer { - - /** - * @field this is use to provide particular id which will represent a whole - * record in table - */ - private int customerId; - - /** - * @field this is use to provide particular id which will represent a whole - * record in table - */ - private String customerName; - /** - * @field this is use to represent a name of the customer - * - */ - private String customerAddress; - /** - * @field this is use to represent a payment of the customer - * - */ - private String paymentMode; - - /** - * @param customerId - * @param customerName - * @param customerAddress - * @param paymentMode - */ - public Customer(final int customerId, final String customerName, final String customerAddress, - final String paymentMode) { - this.customerId = customerId; - this.customerName = customerName; - this.customerAddress = customerAddress; - this.paymentMode = paymentMode; - } - - /** - * - * @param customerName - * - */ - public Customer(final String customerName) { - - this.customerName = customerName; - - } - - /** - * - * @constructor this is default constructor - * - */ - public Customer() { - - } - - /** - * @return the customerId - */ - public int getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(final int customerId) { - this.customerId = customerId; - } - - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - - /** - * @param customerName - * the customerName to set - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * @return the customerAddress - */ - public String getCustomerAddress() { - return customerAddress; - } - - /** - * @param customerAddress - * the customerAddress to set - */ - public void setCustomerAddress(final String customerAddress) { - this.customerAddress = customerAddress; - } - - /** - * @return the paymentMode - */ - public String getPaymentMode() { - return paymentMode; - } - - /** - * @param paymentMode - * the paymentMode to set - */ - public void setPaymentMode(final String paymentMode) { - this.paymentMode = paymentMode; - } - -} diff --git a/10SuperMarketServlet/src/model/Goods.java b/10SuperMarketServlet/src/model/Goods.java deleted file mode 100644 index 8a0ffeb..0000000 --- a/10SuperMarketServlet/src/model/Goods.java +++ /dev/null @@ -1,89 +0,0 @@ -package model; - -public class Goods { - - - private int goodsId; - private String goodsName; - private int goodsQuantity; - private double goodsPrice; - - /** - * @param goodsId - * @param goodsName - * @param goodsQuantity - * @param goodsPrice - */ - public Goods(final int goodsId, final String goodsName, final int goodsQuantity, - final double goodsPrice) { - this.goodsId = goodsId; - this.goodsName = goodsName; - this.goodsQuantity = goodsQuantity; - this.goodsPrice = goodsPrice; - } - - public Goods() { - // TODO Auto-generated constructor stub - } - - /** - * @return the goodsId - */ - public int getGoodsId() { - return goodsId; - } - - /** - * @param goodsId - * the goodsId to set - */ - public void setGoodsId(int goodsId) { - this.goodsId = goodsId; - } - - /** - * @return the goodsName - */ - public String getGoodsName() { - return goodsName; - } - - /** - * @param goodsName - * the goodsName to set - */ - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - - /** - * @return the goodsQuantity - */ - public int getGoodsQuantity() { - return goodsQuantity; - } - - /** - * @param goodsQuantity - * the goodsQuantity to set - */ - public void setGoodsQuantity(int goodsQuantity) { - this.goodsQuantity = goodsQuantity; - } - - /** - * @return the goodsPrice - */ - public double getGoodsPrice() { - return goodsPrice; - } - - /** - * @param goodsPrice - * the goodsPrice to set - */ - public void setGoodsPrice(double goodsPrice) { - this.goodsPrice = goodsPrice; - } - -} diff --git a/10SuperMarketServlet/src/model/Retailer.java b/10SuperMarketServlet/src/model/Retailer.java deleted file mode 100644 index db73d14..0000000 --- a/10SuperMarketServlet/src/model/Retailer.java +++ /dev/null @@ -1,68 +0,0 @@ - -package model; - -/** - * @author Ram - * - */ -public class Retailer { - - private String retailerName; - private String retailerAddres; - /** - * @param retailerName - * @param retailerAddres - */ - - public Retailer () - { - - } - - - public Retailer(String retailerName, String retailerAddres) { - this.retailerName = retailerName; - this.retailerAddres = retailerAddres; - } - - /** - * @return the retailerName - */ - public String getRetailerName() { - return retailerName; - } - - /** - * @param retailerName - * the retailerName to set - */ - public void setRetailerName(String retailerName) { - this.retailerName = retailerName; - } - - /** - * @return the retailerAddres - */ - public String getRetailerAddres() { - return retailerAddres; - } - - /** - * @param retailerAddres - * the retailerAddres to set - */ - public void setRetailerAddres(String retailerAddres) { - this.retailerAddres = retailerAddres; - } - - - - - - - - - - - -} diff --git a/10SuperMarketServlet/src/model/Supplier.java b/10SuperMarketServlet/src/model/Supplier.java deleted file mode 100644 index 00ffc73..0000000 --- a/10SuperMarketServlet/src/model/Supplier.java +++ /dev/null @@ -1,173 +0,0 @@ -package model; - -import java.util.List; - -/** - * @author Sumit - * - */ -public class Supplier { - - private int supplierId; - private String supplierName; - private String supplierAddress; - private int quantityOrder; - private int orderId; - private double amount; - List goodsList; - - /** - * @param supplierId - * @param supplierName - * @param supplierAddress - * @param quantityOrder - * @param orderId - * @param amount - * @param goodsList - */ - public Supplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount, List goodsList) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - this.goodsList = goodsList; - } - - public Supplier() { - // TODO Auto-generated constructor stub - } - - public Supplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - } - - /** - * @return the supplierId - */ - public int getSupplierId() { - return supplierId; - } - - /** - * @param supplierId - * the supplierId to set - */ - public void setSupplierId(int supplierId) { - this.supplierId = supplierId; - } - - /** - * @return the supplierName - */ - public String getSupplierName() { - return supplierName; - } - - /** - * @param supplierName - * the supplierName to set - */ - public void setSupplierName(String supplierName) { - this.supplierName = supplierName; - } - - /** - * @return the supplierAddress - */ - public String getSupplierAddress() { - return supplierAddress; - } - - /** - * @param supplierAddress - * the supplierAddress to set - */ - public void setSupplierAddress(String supplierAddress) { - this.supplierAddress = supplierAddress; - } - - /** - * @return the quantityOrder - */ - public int getQuantityOrder() { - return quantityOrder; - } - - /** - * @param quantityOrder - * the quantityOrder to set - */ - public void setQuantityOrder(int quantityOrder) { - this.quantityOrder = quantityOrder; - } - - /** - * @return the orderId - */ - public int getOrderId() { - return orderId; - } - - /** - * @param orderId - * the orderId to set - */ - public void setOrderId(int orderId) { - this.orderId = orderId; - } - - /** - * @return the amount - */ - public double getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(double amount) { - this.amount = amount; - } - - /** - * @return the goodsList - */ - public List getGoodsList() { - return goodsList; - } - - /** - * @param goodsList - * the goodsList to set - */ - public void setGoodsList(List goodsList) { - this.goodsList = goodsList; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Supplier [supplierId=" + supplierId + ", supplierName=" + supplierName + ", supplierAddress=" - + supplierAddress + ", quantityOrder=" + quantityOrder + ", orderId=" + orderId + ", amount=" + amount - + ", goodsList=" + goodsList + "]"; - } - - - - -} diff --git a/10SuperMarketServlet/src/repository/CustomerDAO.java b/10SuperMarketServlet/src/repository/CustomerDAO.java deleted file mode 100644 index cfb9f3b..0000000 --- a/10SuperMarketServlet/src/repository/CustomerDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -package repository; - -import model.Customer; - -public interface CustomerDAO { - - - public int addCustomer(Customer c); - - - public int updateCustomer(int customerID, String name); - - - public int removeCustomer(int id); -} diff --git a/10SuperMarketServlet/src/repository/CustomerDAOImpl.java b/10SuperMarketServlet/src/repository/CustomerDAOImpl.java deleted file mode 100644 index 4567a72..0000000 --- a/10SuperMarketServlet/src/repository/CustomerDAOImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package repository; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - -import model.Customer; -@Repository -@Qualifier("customerDAO") -public class CustomerDAOImpl implements CustomerDAO { - - /* - * - */ - @Autowired - private JdbcTemplate jdbcTemplate; - - /*public void setJdbcTemplate(final JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - }*/ - - - - @Override - public int updateCustomer(final int customerID, final String name) { - - String query = "update customer set customerName=" + "'" + name + "'" + " where customerId=" + customerID; - // String query = "update customer set customerName="+name+" where customerId="+ - // customerID; - - System.out.println(query); - return jdbcTemplate.update(query); - - } - - @Override - public int removeCustomer(final int identy) { - final String query = "delete from customer where customerId="+identy; - System.out.println(query); - return jdbcTemplate.update(query); - } - - @Override - public int addCustomer(Customer c) { - String query = "insert into customer values('" + c.getCustomerId() + "','" + c.getCustomerName() + "','" - + c.getCustomerAddress() + "','" + c.getPaymentMode() + "')"; - System.out.println(query); - return jdbcTemplate.update(query); - } -} diff --git a/10SuperMarketServlet/src/repository/GoodsDAO.java b/10SuperMarketServlet/src/repository/GoodsDAO.java deleted file mode 100644 index bffefd8..0000000 --- a/10SuperMarketServlet/src/repository/GoodsDAO.java +++ /dev/null @@ -1,13 +0,0 @@ -package repository; - -import model.Goods; - -public interface GoodsDAO { - - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice); - - public int removeGoods(int goodsId); - - public int updateGoods(int goodsId,String goodsName); -} diff --git a/10SuperMarketServlet/src/repository/GoodsDAOImpl.java b/10SuperMarketServlet/src/repository/GoodsDAOImpl.java deleted file mode 100644 index 7a15f84..0000000 --- a/10SuperMarketServlet/src/repository/GoodsDAOImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package repository; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - -import model.Goods; - -/** - * @author Ram - * - */ -@Repository -@Qualifier("GoodsDAO") -public class GoodsDAOImpl implements GoodsDAO { - - // private DataSource dataSource; - - // private JdbcTemplate jdbcTemplate = new JdbcTemplate(); - - /** - * configuring a jdbc template - */ - @Autowired - private JdbcTemplate jdbcTemplate; - - /*public void setJdbcTemplate1(final JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - }*/ - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) { - String query = "insert into goods values(" + goodsId + "," + "'" + goodsName + "'" + "," + goodsQuantity+ "," - + goodsPrice + ")"; - System.out.println(query); - - return jdbcTemplate.update(query); - } - - @Override - public int updateGoods(int goodsId, String goodsName) { - String query = "update goods set goodsName=" + "'" + goodsName + "'" + " where goodsId=" + goodsId; - // String query = "update customer set customerName="+name+" where customerId="+ - // customerID; - - System.out.println(query); - return jdbcTemplate.update(query); - } - - @Override - public int removeGoods(int goodsId) { - - String query = "delete from goods where goodsId=" + goodsId; - System.out.println(query); - return jdbcTemplate.update(query); - } - - /*public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - }*/ - -} diff --git a/10SuperMarketServlet/src/repository/RetailerDAO.java b/10SuperMarketServlet/src/repository/RetailerDAO.java deleted file mode 100644 index 5e3aeed..0000000 --- a/10SuperMarketServlet/src/repository/RetailerDAO.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * - */ -package repository; - -import java.util.List; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public interface RetailerDAO { - - - int addRetailer(Supplier s); - -public List viewGoods(); - -public List viewCustomer(int customerId ); - -public List viewSupplier(int supplierId); - - -} diff --git a/10SuperMarketServlet/src/repository/RetailerDAOImpl.java b/10SuperMarketServlet/src/repository/RetailerDAOImpl.java deleted file mode 100644 index 91e91ea..0000000 --- a/10SuperMarketServlet/src/repository/RetailerDAOImpl.java +++ /dev/null @@ -1,82 +0,0 @@ -/** - * - */ -package repository; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.DataAccessException; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.core.ResultSetExtractor; -import org.springframework.stereotype.Repository; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ - -@Repository("serviceDAO") -public class RetailerDAOImpl implements RetailerDAO { - - @Autowired - private JdbcTemplate jdbcTemplate; - - /* - * @Override public int viewGoods() { // TODO Auto-generated method stub String - * query = "select * from goods"; System.out.println(query); return - * jdbcTemplate.update(query); - * - * } - */ - - - @Override - public List viewCustomer(final int customerId) { - // TODO Auto-generated method stub - List list = (List) jdbcTemplate.query( - "SELECT * FROM customer where customerId = '" + customerId + "' ", - new BeanPropertyRowMapper(Customer.class)); - System.out.println("In cust view"); - return list; - } - - - @Override - public List viewSupplier(final int supplierId) { - // TODO Auto-generated method stub - List list = (List) jdbcTemplate.query( - "SELECT * FROM supplier where supplierID = '" + supplierId + "' ", - new BeanPropertyRowMapper(Supplier.class)); - System.out.println("In supplier view"); - return list; - } - - - public List viewGoods() { - // TODO Auto-generated method stub - List list = (List) jdbcTemplate.query( - "SELECT * FROM goods", - new BeanPropertyRowMapper(Goods.class)); - System.out.println("In goods view"); - return list; - } - - @Override - public int addRetailer(Supplier s) { - - String query = "insert into retailer values (" + "'" + s.getSupplierName() + "'" + "," + "'" - + s.getSupplierAddress() + "'" + ")"; - System.out.println(query); - return jdbcTemplate.update(query); - } - -} diff --git a/10SuperMarketServlet/src/repository/SupplierDAO.java b/10SuperMarketServlet/src/repository/SupplierDAO.java deleted file mode 100644 index 3adab52..0000000 --- a/10SuperMarketServlet/src/repository/SupplierDAO.java +++ /dev/null @@ -1,13 +0,0 @@ -package repository; - -public interface SupplierDAO { - - public int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); - - public int removeSupplier(int supplierId); - - public int updateSupplier(int supplierId, String supplierName); - -} diff --git a/10SuperMarketServlet/src/repository/SupplierDAOImpl.java b/10SuperMarketServlet/src/repository/SupplierDAOImpl.java deleted file mode 100644 index f9236a7..0000000 --- a/10SuperMarketServlet/src/repository/SupplierDAOImpl.java +++ /dev/null @@ -1,66 +0,0 @@ -package repository; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - - -@Repository -@Qualifier("supplierDAO") -public class SupplierDAOImpl implements SupplierDAO { - - private DataSource dataSource; -@Autowired -JdbcTemplate jdbcTemplate; - - - - - - - @Override - public int addSupplier(final int supplierId, final String supplierName, final String supplierAddress, final int quantityOrder, final int orderId, - final double amount) { - String Query = "insert into supplier values(" + supplierId + "," + "'" + supplierName + "'" + "," + "'" - + supplierAddress + "'" + "," + quantityOrder + "," + orderId + "," + amount + ")"; - System.out.println(Query); - return jdbcTemplate.update(Query); - } - - @Override - public int removeSupplier(int supplierId) { - - String query = "delete from supplier where supplierId=" + supplierId; - System.out.println(query); - return jdbcTemplate.update(query); - } - - - @Override - public int updateSupplier(int supplierId, String supplierName) { - - String query = "update supplier set supplierName="+"'" +supplierName+"'"+ "where supplierId="+supplierId; - - System.out.println(query); - return jdbcTemplate.update(query); - } -/* - *//** - * @return the jdbcTemplate - *//* - public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - *//** - * @param jdbcTemplate - * the jdbcTemplate to set - *//* - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - }*/ - -} diff --git a/10SuperMarketServlet/src/service/CustomerService.java b/10SuperMarketServlet/src/service/CustomerService.java deleted file mode 100644 index fffc1be..0000000 --- a/10SuperMarketServlet/src/service/CustomerService.java +++ /dev/null @@ -1,14 +0,0 @@ -package service; - -import model.Customer; - -public interface CustomerService { - - - //public String addCustomer(Customer e); -// public String updateCustomer(int customerID, String name); - //public int removeCustomer(int id); - int addCustomer(Customer c); - int updateCustomer(int customerId, String customerName); - int removeCusotmer(int customerId); -} diff --git a/10SuperMarketServlet/src/service/CustomerServiceImpl.java b/10SuperMarketServlet/src/service/CustomerServiceImpl.java deleted file mode 100644 index 985bf53..0000000 --- a/10SuperMarketServlet/src/service/CustomerServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import model.Customer; -import repository.CustomerDAO; - -/** - * @author Ram - */ -@Service("customerService") -public class CustomerServiceImpl implements CustomerService { - - @Autowired - private CustomerDAO customerDAO; - - /** - * @param customerDAO - */ - public CustomerServiceImpl(final CustomerDAO customerDAO) { - super(); - this.customerDAO = customerDAO; - } - - public CustomerServiceImpl() { - // TODO Auto-generated constructor stub - } - - - public int addCustomer(final Customer c) { - final int addData = customerDAO.addCustomer(c); - return addData; - } - - public int updateCustomer(int customerId, String customerName) { - int updateData = customerDAO.updateCustomer(customerId, customerName); - return updateData; - } - - @Override - public int removeCusotmer(int customerId) { - int removeData = customerDAO.removeCustomer(customerId); - return removeData; - } - -} diff --git a/10SuperMarketServlet/src/service/GoodsService.java b/10SuperMarketServlet/src/service/GoodsService.java deleted file mode 100644 index 345474c..0000000 --- a/10SuperMarketServlet/src/service/GoodsService.java +++ /dev/null @@ -1,30 +0,0 @@ -package service; - -import model.Goods; - -public interface GoodsService { - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and adding goodsID, name,quantity,price - * - */ - int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice); - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and removing a perticular Goods from table - * - */ - int removeGoods(int goodsId); - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and updating a perticular Goods - * - */ - int updateGoods(int goodsId, String goodsName); - // public String orderGoods(int goodsId); - -} diff --git a/10SuperMarketServlet/src/service/GoodsServiceImpl.java b/10SuperMarketServlet/src/service/GoodsServiceImpl.java deleted file mode 100644 index 92d25e3..0000000 --- a/10SuperMarketServlet/src/service/GoodsServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import model.Goods; -import repository.GoodsDAO; - -@Service("goodsService") -public class GoodsServiceImpl implements GoodsService { - - public GoodsServiceImpl() { - - } - - @Autowired - private GoodsDAO goodsdao; - - public GoodsServiceImpl(final GoodsDAO goodsdao) { - super(); - this.goodsdao = goodsdao; - } - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) { - - int addData = goodsdao.addGoods(goodsId,goodsName,goodsQuantity,goodsPrice); - return addData; - } - - @Override - public int removeGoods(int goodsId) { - // GoodsDAO goodsDAO = null; - int remmoveData = goodsdao.removeGoods(goodsId); - return remmoveData; - } - - @Override - public int updateGoods(int goodsId, String goodsName) { - // GoodsDAO goodsDAO = null; - int updateData = goodsdao.updateGoods(goodsId, goodsName); - return updateData; - } - -} diff --git a/10SuperMarketServlet/src/service/RetailerService.java b/10SuperMarketServlet/src/service/RetailerService.java deleted file mode 100644 index 536690d..0000000 --- a/10SuperMarketServlet/src/service/RetailerService.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * - */ -package service; - -import java.util.List; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public interface RetailerService { - - //int addSupplier(String supplierName, String supplierAddress); - - int addRetailer(Supplier s); - - -public List viewGoods(); - -public List viewCustomer(int customerId ); - -public List viewSupplier(int supplierId); - - -} diff --git a/10SuperMarketServlet/src/service/RetailerServiceImpl.java b/10SuperMarketServlet/src/service/RetailerServiceImpl.java deleted file mode 100644 index 3f2b892..0000000 --- a/10SuperMarketServlet/src/service/RetailerServiceImpl.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * - */ -package service; - -import java.util.ArrayList; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import model.Customer; -import model.Goods; -import model.Supplier; -import repository.CustomerDAO; -import repository.RetailerDAO; -import repository.RetailerDAOImpl; - -/** - * @author trainee - * - */ -@Service("retailerService") -public class RetailerServiceImpl implements RetailerService { - - @Autowired - private RetailerDAO retailerDao; - - @Override - public int addRetailer(final Supplier s) { - - return retailerDao.addRetailer(s); - - } - - public List viewCustomer(int customerId ) { - List customerList = new ArrayList(); - customerList = retailerDao.viewCustomer(customerId); - return customerList; - } - - @Override - public List viewSupplier(final int supplierId) { - // TODO Auto-generated method stub - return retailerDao.viewSupplier(supplierId); - } - - @Override - public List viewGoods() { - // TODO Auto-generated method stub - return retailerDao.viewGoods(); - } - -} diff --git a/10SuperMarketServlet/src/service/SupplierService.java b/10SuperMarketServlet/src/service/SupplierService.java deleted file mode 100644 index b230abd..0000000 --- a/10SuperMarketServlet/src/service/SupplierService.java +++ /dev/null @@ -1,30 +0,0 @@ -package service; - -/** - * this interface contains various operations. - */ -public interface SupplierService { - - /** - * this method is used to invoke the Repository method addSupplier - * which will hit the databases. - * - */ - int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); - /** - * this method is used to invoke the Repository method removeSupplier - * which will hit the databases. - * - */ - int removeSupplier(int supplierId); - - /** - * this method is used to invoke the Repository method addSupplier - * which will hit the databases. - * - */ - int updateSupplier(int supplierId,String supplierName); - -} diff --git a/10SuperMarketServlet/src/service/SupplierServiceImpl.java b/10SuperMarketServlet/src/service/SupplierServiceImpl.java deleted file mode 100644 index 1ea11f1..0000000 --- a/10SuperMarketServlet/src/service/SupplierServiceImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import repository.SupplierDAO; - -/** - * this class implementing methods of its parent interface - */ - -@Service("supplierService") -public class SupplierServiceImpl implements SupplierService { - - /** - * @param supplierDAO - * this will be used to access DAO methods - */ - @Autowired - private SupplierDAO supplierDAO; - - /** - * @param supplierDAO - */ - - @Override - public int addSupplier(final int supplierId, final String supplierName, final String supplierAddress, - final int quantityOrder, final int orderId, final double amount) { - - // SupplierDAO supplierDAO = null; - final int addData = supplierDAO.addSupplier(supplierId, supplierName, supplierAddress, quantityOrder, orderId, - amount); - return addData; - - } - - @Override - public int removeSupplier(final int supplierId) { - // final SupplierDAO supplierDAO = null; - final int removeData = supplierDAO.removeSupplier(supplierId); - return removeData; - } - - @Override - public int updateSupplier(final int supplierId, final String supplierName) { - final SupplierDAO supplierDAO = null; - int removeData = supplierDAO.updateSupplier(supplierId, supplierName); - return removeData; - } - -} diff --git a/11SpringBootUsingJDBC/.gitignore b/11SpringBootUsingJDBC/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/11SpringBootUsingJDBC/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/11SpringBootUsingJDBC/.mvn/wrapper/maven-wrapper.jar b/11SpringBootUsingJDBC/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/11SpringBootUsingJDBC/.mvn/wrapper/maven-wrapper.properties b/11SpringBootUsingJDBC/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/11SpringBootUsingJDBC/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/11SpringBootUsingJDBC/bin/.gitignore b/11SpringBootUsingJDBC/bin/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/11SpringBootUsingJDBC/bin/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/11SpringBootUsingJDBC/bin/.mvn/wrapper/maven-wrapper.jar b/11SpringBootUsingJDBC/bin/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/11SpringBootUsingJDBC/bin/.mvn/wrapper/maven-wrapper.properties b/11SpringBootUsingJDBC/bin/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/11SpringBootUsingJDBC/bin/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/11SpringBootUsingJDBC/bin/mvnw b/11SpringBootUsingJDBC/bin/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/11SpringBootUsingJDBC/bin/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/11SpringBootUsingJDBC/bin/mvnw.cmd b/11SpringBootUsingJDBC/bin/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/11SpringBootUsingJDBC/bin/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/11SpringBootUsingJDBC/bin/pom.xml b/11SpringBootUsingJDBC/bin/pom.xml deleted file mode 100644 index 2d1e8c8..0000000 --- a/11SpringBootUsingJDBC/bin/pom.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 4.0.0 - - com.example - demo - 0.0.1-SNAPSHOT - jar - - demo - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/11SpringBootUsingJDBC/bin/src/main/java/com/example/demo/DemoApplication.class b/11SpringBootUsingJDBC/bin/src/main/java/com/example/demo/DemoApplication.class deleted file mode 100644 index 54d0e034c8b56d3830c74e26962cc3bbe46be730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1341 zcmb_cUvJYe5I?uw+J-_$*%&ZD-kv%h5*~P>2x$zEDs>>yG70hII&SNc*ui$H?Njh^ zkU)ZWJ{01d3|2t}L)t?wcJA`KKfk;C_Wjcr0C)g*>rf#OTEnB1NfjNjIg7YXBXP{q zED=#GQXM@-v6p3uQE!FR+uJCO{16NBf%Yk)kjiE_n1JnyL(8Wwy$GRhbDpc zne8)Uv}wR4Qu**&8DVuY7coVTnM?|Bni)M#L~0+>pgEce>P|92JwWK4g{3pfnNr%( zv7kReLfUs!S}Ij64aSq4plTwFP#ir>j85_XK1W?lL!K~e=|m>NF7>is=r7tyEYPp_ zpE3T9O$FV-#KY54hrZN1G}gjWpIXWspHYVu5XTwjv-lhG6?(qHqAq`clqtzH)5cM4 zrc0`IE|Xzqq?$g_+AXlZ1dKXOSwU3L>|@(VE*-UbCJZvGtTQ=x+R&1^?yhGkSFxB# z<(WYZo>`u_MeC3rGlAFd6B1MVMYwQlt5>oIZFV)}c2CW|S?>^BEX+oxBD z+qf#qSTWNBX)Q81!YQ|~4Y)jTF#%NYv;wOr>&2p~;t3%542?IP;3KrY7B+2^-Ujel zL)j{=;3{pc A`2YX_ diff --git a/11SpringBootUsingJDBC/bin/src/main/resources/application.properties b/11SpringBootUsingJDBC/bin/src/main/resources/application.properties deleted file mode 100644 index e69de29..0000000 diff --git a/11SpringBootUsingJDBC/bin/src/test/java/com/example/demo/DemoApplicationTests.class b/11SpringBootUsingJDBC/bin/src/test/java/com/example/demo/DemoApplicationTests.class deleted file mode 100644 index 37114bbdec0cbafd54bbc26775aeaf6e3b78c91a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmcgsU2oGc6ur*+844{O113N+d+H>VJOD2%LK+ODNdY8UhIn)xuk}dm$Z@Lj%aA~V zcYYM&I_c=7RTS~SLvEb-_}p`^kNxB4mu~>@2<|n(Bk(XcJhURW;TfB=kn1!Q3zlYy z2xF1z@Cd_UmL-xiE43OUGH*hSK(E9nOijZ#lQY3BfyNW5q;kQSbk!p%qCCpzzpJ{E~9&P|1qX8tBmgYs~n6=8SDY(^! zR+~N8r!uF7ip8l^*yK~3!7(cmq+X!|`l`TW6^b(DcBLY|0K%?rROCYou6Cdf*9hzk zqLrUU)^%X${ML<7%IhMX2s37AAp-qKbC#SiBi;A%XU)!JPT+C$56&MF=%8{d7B zMw&a=d@ECNtmZP8nB~x!rgSpSHX>Krum!gW9R1nvrQJ97fq*~Kh2i3*bOr9NJD#P# z3ACf7hfs8V&XNN0y{K}`xebPJAMm*1eE{I$s16N`&GLTO!V!S~6h~Fm@^wT!()7ZyRSlxUod-;QKP$%{6SDHEbT-#`PZT{^q+2@C%N!XEOi* diff --git a/11SpringBootUsingJDBC/mvnw b/11SpringBootUsingJDBC/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/11SpringBootUsingJDBC/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/11SpringBootUsingJDBC/mvnw.cmd b/11SpringBootUsingJDBC/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/11SpringBootUsingJDBC/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/11SpringBootUsingJDBC/pom.xml b/11SpringBootUsingJDBC/pom.xml deleted file mode 100644 index 5652055..0000000 --- a/11SpringBootUsingJDBC/pom.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - 4.0.0 - - com.example - demo - 0.0.1-SNAPSHOT - jar - - demo - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - javax.servlet - servlet-api - 2.5 - provided - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - jstl - jstl - 1.2 - - - mysql - mysql-connector-java - 5.1.38 - - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet.java b/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet.java deleted file mode 100644 index 6889207..0000000 --- a/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet.java +++ /dev/null @@ -1,62 +0,0 @@ -package MainServlet; - -import java.io.IOException; -import java.util.List; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -import controller.AppJavaConfig; -import model.Customer; -import model.Goods; -import service.CustomerService; -import service.CustomerServiceImpl; -import service.RetailerService; -import service.RetailerServiceImpl; - -/** - * Servlet implementation class DemoServlet - */ - -// @WebServlet("/ramServlet") -public class DemoServlet extends HttpServlet { - - /** - * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse - * response) - */ - - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - response.setContentType("text/html"); - - ApplicationContext context = new AnnotationConfigApplicationContext(AppJavaConfig.class); - // CustomerService customerService = (CustomerService) - // context.getBean("customerService",CustomerServiceImpl.class); - RetailerService retailerService = (RetailerService) context.getBean("retailerService", - RetailerServiceImpl.class); - - final String ID = request.getParameter("id"); - final int id = Integer.parseInt(ID); - - List customerList = retailerService.viewCustomer(id); - // List goodsList = retailerService.viewGoods(); - - // request.setAttribute("glist", goodsList); - request.setAttribute("list", customerList); - - RequestDispatcher requestDispatcher = request.getRequestDispatcher("home1.jsp"); - // RequestDispatcher requestDispatchergoods = - // request.getRequestDispatcher("viewgoods.jsp"); - requestDispatcher.forward(request, response); - // requestDispatchergoods.forward(request, response); - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet2.java b/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet2.java deleted file mode 100644 index 8d1b4e9..0000000 --- a/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet2.java +++ /dev/null @@ -1,57 +0,0 @@ -package MainServlet; - -import java.io.IOException; -import java.util.List; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -import controller.AppJavaConfig; -import model.Customer; -import model.Goods; -import service.CustomerService; -import service.CustomerServiceImpl; -import service.RetailerService; -import service.RetailerServiceImpl; - -/** - * Servlet implementation class DemoServlet - */ - -// @WebServlet("/ramServlet") -public class DemoServlet2 extends HttpServlet { - - /** - * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse - * response) - */ - - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - response.setContentType("text/html"); - ApplicationContext context = new AnnotationConfigApplicationContext(AppJavaConfig.class); - //CustomerService customerService = (CustomerService) context.getBean("customerService",CustomerServiceImpl.class); - RetailerService retailerService = (RetailerService) context.getBean("retailerService", - RetailerServiceImpl.class); - // List customerList = retailerService.viewCustomer(106); - List goodsList = retailerService.viewGoods(); - - - - request.setAttribute("glist", goodsList); - // request.setAttribute("list", customerList); - - // RequestDispatcher requestDispatcher = request.getRequestDispatcher("home1.jsp"); - RequestDispatcher requestDispatchergoods = request.getRequestDispatcher("viewgoods.jsp"); - //requestDispatcher.forward(request, response); - requestDispatchergoods.forward(request, response); - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet3.java b/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet3.java deleted file mode 100644 index ec8ecce..0000000 --- a/11SpringBootUsingJDBC/src/main/java/MainServlet/DemoServlet3.java +++ /dev/null @@ -1,72 +0,0 @@ -package MainServlet; - -import java.io.IOException; -import java.util.List; - -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -import controller.AppJavaConfig; -import model.Customer; -import model.Goods; -import model.Supplier; -import service.CustomerService; -import service.CustomerServiceImpl; -import service.RetailerService; -import service.RetailerServiceImpl; - -/** - * Servlet implementation class DemoServlet - */ - -// @WebServlet("/ramServlet") -public class DemoServlet3 extends HttpServlet { - - /** - * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse - * response) - */ - - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - - response.setContentType("text/html"); - ApplicationContext context = new AnnotationConfigApplicationContext(AppJavaConfig.class); - //CustomerService customerService = (CustomerService) context.getBean("customerService",CustomerServiceImpl.class); - RetailerService retailerService = (RetailerService) context.getBean("retailerService", - RetailerServiceImpl.class); - - - String ID = request.getParameter("id1"); - try { - int id1 = Integer.parseInt(ID); - - - - - // List customerList = retailerService.viewCustomer(106); - - List supplierList = retailerService.viewSupplier(id1); - - - - - request.setAttribute("slist", supplierList); - // request.setAttribute("list", customerList); - - // RequestDispatcher requestDispatcher = request.getRequestDispatcher("home1.jsp"); - RequestDispatcher requestDispatcherSupplier = request.getRequestDispatcher("viewsupplier.jsp"); - //requestDispatcher.forward(request, response); - requestDispatcherSupplier.forward(request, response); - }catch (NumberFormatException e){ - System.out.println("not a number"); - } - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/com/example/demo/CustomErrorType.java b/11SpringBootUsingJDBC/src/main/java/com/example/demo/CustomErrorType.java deleted file mode 100644 index 0de185b..0000000 --- a/11SpringBootUsingJDBC/src/main/java/com/example/demo/CustomErrorType.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.demo; - - -public class CustomErrorType { - - private String errorMessage; - - public CustomErrorType(String errorMessage){ - this.errorMessage = errorMessage; - } - - public String getErrorMessage() { - return errorMessage; - } - -} \ No newline at end of file diff --git a/11SpringBootUsingJDBC/src/main/java/com/example/demo/CustomersOp.java b/11SpringBootUsingJDBC/src/main/java/com/example/demo/CustomersOp.java deleted file mode 100644 index 8f1c778..0000000 --- a/11SpringBootUsingJDBC/src/main/java/com/example/demo/CustomersOp.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.example.demo; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -import model.Customer; -import service.CustomerService; -import service.RetailerService; - -@RestController -public class CustomersOp { - - @Autowired - private RetailerService rs; - - @Autowired - private CustomerService customerService; - - // - @RequestMapping(value = "/user/{customerId}", method = RequestMethod.GET) - public ResponseEntity getUser(@PathVariable("customerId") int customerId) { - System.out.printf("User with id {} is :", customerId); - List user = rs.viewCustomer(customerId); - if (user == null) { - System.out.printf("User with id {} not found.", customerId); - return new ResponseEntity(new CustomErrorType("User with id " + customerId + " not found"), - HttpStatus.NOT_FOUND); - } - return new ResponseEntity(user, HttpStatus.OK); - } - - // Add customer - - @RequestMapping(value = "/addNewCustomer", method = RequestMethod.GET) - public Customer NewUser() { - - Customer c = new Customer(24, "hulk", "newyork", "Debit"); - customerService.addCustomer(c); - - return null; - - } - - @RequestMapping(value = "/deleteuser/{id}", method = RequestMethod.GET) - public Customer deleteUser(@PathVariable("id") int id) { - System.out.printf("Fetching & Deleting User with id {}", id); - - customerService.removeCusotmer(id); - return null; - } - - @RequestMapping(value = "/updateuser/{id}/{name}", method = RequestMethod.GET) - @ResponseBody - public int updateUser(@PathVariable("id") int id, @PathVariable("name") String name) { - System.out.printf("Updating User with id {}", id); - - final int dummy = customerService.updateCustomer(id, name); - - return dummy; - } - - /* - * @RequestMapping("/showcustomer") public @ResponseBody List - * addCustomer() { System.out.println("hi"); //return "hi to browser"; - * - * //ApplicationContext context = new - * AnnotationConfigApplicationContext(AppJavaConfig.class); //CustomerService - * customerService = (CustomerService) - * context.getBean("customerService",CustomerServiceImpl.class); RetailerService - * retailerService = (RetailerService) context.getBean("retailerService", - * RetailerServiceImpl.class); - * - * - * - * List customerList = rs.viewCustomer(1); - * - * return customerList; - * - * - * - * - * - * - * } - */ -} diff --git a/11SpringBootUsingJDBC/src/main/java/com/example/demo/DemoApplication.java b/11SpringBootUsingJDBC/src/main/java/com/example/demo/DemoApplication.java deleted file mode 100644 index 44c4928..0000000 --- a/11SpringBootUsingJDBC/src/main/java/com/example/demo/DemoApplication.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.demo; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.ComponentScan; - -@SpringBootApplication -@ComponentScan({ "service", "repository", "controller", "com.example.demo" }) -public class DemoApplication { - - public static void main(String[] args) { - - SpringApplication.run(DemoApplication.class, args); - - System.out.println("HEllo World"); - - } -} diff --git a/11SpringBootUsingJDBC/src/main/java/controller/AppJavaConfig.java b/11SpringBootUsingJDBC/src/main/java/controller/AppJavaConfig.java deleted file mode 100644 index 6aca2c5..0000000 --- a/11SpringBootUsingJDBC/src/main/java/controller/AppJavaConfig.java +++ /dev/null @@ -1,76 +0,0 @@ -package controller; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.datasource.DriverManagerDataSource; - -/** - * @class this is java configuration file - */ -@Configuration -@ComponentScan({ "service", "repository", "controller" }) -@PropertySource(value = { "classpath:database.properties" }) -public class AppJavaConfig { - - @Autowired - Environment environment; - - @Bean - DataSource dataSource() { - final DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); - driverManagerDataSource.setUrl(environment.getProperty("url")); - driverManagerDataSource.setUsername(environment.getProperty("dbuser")); - driverManagerDataSource.setPassword(environment.getProperty("dbpassword")); - driverManagerDataSource.setDriverClassName(environment.getProperty("driver")); - return driverManagerDataSource; - } - - @Bean - JdbcTemplate jdbcTempalte(DataSource dataSource) { - JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); - return jdbcTemplate; - } - - - /* - * @Bean public CustomerDAO customerDaoBean() { return new CustomerDAOImpl(); } - * - * @Bean public GoodsDAO goodsDAOBean() { return new GoodsDAOImpl(); } - * - * @Bean public SupplierDAO supplierDAOBean() { return new SupplierDAOImpl(); } - */ - - /** - * this is CustomerService bean used to invoke the services - */ - /* - * @Bean public RetailerDAO retailerDAOBean() { return new RetailerDAOImpl(); } - * - *//** - * this is CustomerService bean used to invoke the services - *//* - * @Bean public CustomerService customerService() { return new - * CustomerServiceImpl(); } - */ - - /** - * this is GoodsService bean used to invoke the services - */ - /* - * @Bean public GoodsService goodsService() { return new GoodsServiceImpl(); } - * - * @Bean public SupplierService supplierService() { return new - * SupplierServiceImpl(); } - * - * @Bean public RetailerService retailerService() { return new - * RetailerServiceImpl(); } - */ - -} diff --git a/11SpringBootUsingJDBC/src/main/java/model/Customer.java b/11SpringBootUsingJDBC/src/main/java/model/Customer.java deleted file mode 100644 index 86ec6b1..0000000 --- a/11SpringBootUsingJDBC/src/main/java/model/Customer.java +++ /dev/null @@ -1,133 +0,0 @@ -package model; - -/** - * @author Ram - * - */ - - - - -/** - * @class this class represent a customer entity - * - */ -public class Customer { - - /** - * @field this is use to provide particular id which will represent a whole - * record in table - */ - private int customerId; - - /** - * @field this is use to provide particular id which will represent a whole - * record in table - */ - private String customerName; - /** - * @field this is use to represent a name of the customer - * - */ - private String customerAddress; - /** - * @field this is use to represent a payment of the customer - * - */ - private String paymentMode; - - /** - * @param customerId - * @param customerName - * @param customerAddress - * @param paymentMode - */ - public Customer(final int customerId, final String customerName, final String customerAddress, - final String paymentMode) { - this.customerId = customerId; - this.customerName = customerName; - this.customerAddress = customerAddress; - this.paymentMode = paymentMode; - } - - /** - * - * @param customerName - * - */ - public Customer(final String customerName) { - - this.customerName = customerName; - - } - - /** - * - * @constructor this is default constructor - * - */ - public Customer() { - - } - - /** - * @return the customerId - */ - public int getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(final int customerId) { - this.customerId = customerId; - } - - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - - /** - * @param customerName - * the customerName to set - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * @return the customerAddress - */ - public String getCustomerAddress() { - return customerAddress; - } - - /** - * @param customerAddress - * the customerAddress to set - */ - public void setCustomerAddress(final String customerAddress) { - this.customerAddress = customerAddress; - } - - /** - * @return the paymentMode - */ - public String getPaymentMode() { - return paymentMode; - } - - /** - * @param paymentMode - * the paymentMode to set - */ - public void setPaymentMode(final String paymentMode) { - this.paymentMode = paymentMode; - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/model/Goods.java b/11SpringBootUsingJDBC/src/main/java/model/Goods.java deleted file mode 100644 index 8a0ffeb..0000000 --- a/11SpringBootUsingJDBC/src/main/java/model/Goods.java +++ /dev/null @@ -1,89 +0,0 @@ -package model; - -public class Goods { - - - private int goodsId; - private String goodsName; - private int goodsQuantity; - private double goodsPrice; - - /** - * @param goodsId - * @param goodsName - * @param goodsQuantity - * @param goodsPrice - */ - public Goods(final int goodsId, final String goodsName, final int goodsQuantity, - final double goodsPrice) { - this.goodsId = goodsId; - this.goodsName = goodsName; - this.goodsQuantity = goodsQuantity; - this.goodsPrice = goodsPrice; - } - - public Goods() { - // TODO Auto-generated constructor stub - } - - /** - * @return the goodsId - */ - public int getGoodsId() { - return goodsId; - } - - /** - * @param goodsId - * the goodsId to set - */ - public void setGoodsId(int goodsId) { - this.goodsId = goodsId; - } - - /** - * @return the goodsName - */ - public String getGoodsName() { - return goodsName; - } - - /** - * @param goodsName - * the goodsName to set - */ - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - - /** - * @return the goodsQuantity - */ - public int getGoodsQuantity() { - return goodsQuantity; - } - - /** - * @param goodsQuantity - * the goodsQuantity to set - */ - public void setGoodsQuantity(int goodsQuantity) { - this.goodsQuantity = goodsQuantity; - } - - /** - * @return the goodsPrice - */ - public double getGoodsPrice() { - return goodsPrice; - } - - /** - * @param goodsPrice - * the goodsPrice to set - */ - public void setGoodsPrice(double goodsPrice) { - this.goodsPrice = goodsPrice; - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/model/Retailer.java b/11SpringBootUsingJDBC/src/main/java/model/Retailer.java deleted file mode 100644 index db73d14..0000000 --- a/11SpringBootUsingJDBC/src/main/java/model/Retailer.java +++ /dev/null @@ -1,68 +0,0 @@ - -package model; - -/** - * @author Ram - * - */ -public class Retailer { - - private String retailerName; - private String retailerAddres; - /** - * @param retailerName - * @param retailerAddres - */ - - public Retailer () - { - - } - - - public Retailer(String retailerName, String retailerAddres) { - this.retailerName = retailerName; - this.retailerAddres = retailerAddres; - } - - /** - * @return the retailerName - */ - public String getRetailerName() { - return retailerName; - } - - /** - * @param retailerName - * the retailerName to set - */ - public void setRetailerName(String retailerName) { - this.retailerName = retailerName; - } - - /** - * @return the retailerAddres - */ - public String getRetailerAddres() { - return retailerAddres; - } - - /** - * @param retailerAddres - * the retailerAddres to set - */ - public void setRetailerAddres(String retailerAddres) { - this.retailerAddres = retailerAddres; - } - - - - - - - - - - - -} diff --git a/11SpringBootUsingJDBC/src/main/java/model/Supplier.java b/11SpringBootUsingJDBC/src/main/java/model/Supplier.java deleted file mode 100644 index 00ffc73..0000000 --- a/11SpringBootUsingJDBC/src/main/java/model/Supplier.java +++ /dev/null @@ -1,173 +0,0 @@ -package model; - -import java.util.List; - -/** - * @author Sumit - * - */ -public class Supplier { - - private int supplierId; - private String supplierName; - private String supplierAddress; - private int quantityOrder; - private int orderId; - private double amount; - List goodsList; - - /** - * @param supplierId - * @param supplierName - * @param supplierAddress - * @param quantityOrder - * @param orderId - * @param amount - * @param goodsList - */ - public Supplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount, List goodsList) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - this.goodsList = goodsList; - } - - public Supplier() { - // TODO Auto-generated constructor stub - } - - public Supplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - } - - /** - * @return the supplierId - */ - public int getSupplierId() { - return supplierId; - } - - /** - * @param supplierId - * the supplierId to set - */ - public void setSupplierId(int supplierId) { - this.supplierId = supplierId; - } - - /** - * @return the supplierName - */ - public String getSupplierName() { - return supplierName; - } - - /** - * @param supplierName - * the supplierName to set - */ - public void setSupplierName(String supplierName) { - this.supplierName = supplierName; - } - - /** - * @return the supplierAddress - */ - public String getSupplierAddress() { - return supplierAddress; - } - - /** - * @param supplierAddress - * the supplierAddress to set - */ - public void setSupplierAddress(String supplierAddress) { - this.supplierAddress = supplierAddress; - } - - /** - * @return the quantityOrder - */ - public int getQuantityOrder() { - return quantityOrder; - } - - /** - * @param quantityOrder - * the quantityOrder to set - */ - public void setQuantityOrder(int quantityOrder) { - this.quantityOrder = quantityOrder; - } - - /** - * @return the orderId - */ - public int getOrderId() { - return orderId; - } - - /** - * @param orderId - * the orderId to set - */ - public void setOrderId(int orderId) { - this.orderId = orderId; - } - - /** - * @return the amount - */ - public double getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(double amount) { - this.amount = amount; - } - - /** - * @return the goodsList - */ - public List getGoodsList() { - return goodsList; - } - - /** - * @param goodsList - * the goodsList to set - */ - public void setGoodsList(List goodsList) { - this.goodsList = goodsList; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Supplier [supplierId=" + supplierId + ", supplierName=" + supplierName + ", supplierAddress=" - + supplierAddress + ", quantityOrder=" + quantityOrder + ", orderId=" + orderId + ", amount=" + amount - + ", goodsList=" + goodsList + "]"; - } - - - - -} diff --git a/11SpringBootUsingJDBC/src/main/java/repository/CustomerDAO.java b/11SpringBootUsingJDBC/src/main/java/repository/CustomerDAO.java deleted file mode 100644 index cfb9f3b..0000000 --- a/11SpringBootUsingJDBC/src/main/java/repository/CustomerDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -package repository; - -import model.Customer; - -public interface CustomerDAO { - - - public int addCustomer(Customer c); - - - public int updateCustomer(int customerID, String name); - - - public int removeCustomer(int id); -} diff --git a/11SpringBootUsingJDBC/src/main/java/repository/CustomerDAOImpl.java b/11SpringBootUsingJDBC/src/main/java/repository/CustomerDAOImpl.java deleted file mode 100644 index 4567a72..0000000 --- a/11SpringBootUsingJDBC/src/main/java/repository/CustomerDAOImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package repository; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - -import model.Customer; -@Repository -@Qualifier("customerDAO") -public class CustomerDAOImpl implements CustomerDAO { - - /* - * - */ - @Autowired - private JdbcTemplate jdbcTemplate; - - /*public void setJdbcTemplate(final JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - }*/ - - - - @Override - public int updateCustomer(final int customerID, final String name) { - - String query = "update customer set customerName=" + "'" + name + "'" + " where customerId=" + customerID; - // String query = "update customer set customerName="+name+" where customerId="+ - // customerID; - - System.out.println(query); - return jdbcTemplate.update(query); - - } - - @Override - public int removeCustomer(final int identy) { - final String query = "delete from customer where customerId="+identy; - System.out.println(query); - return jdbcTemplate.update(query); - } - - @Override - public int addCustomer(Customer c) { - String query = "insert into customer values('" + c.getCustomerId() + "','" + c.getCustomerName() + "','" - + c.getCustomerAddress() + "','" + c.getPaymentMode() + "')"; - System.out.println(query); - return jdbcTemplate.update(query); - } -} diff --git a/11SpringBootUsingJDBC/src/main/java/repository/GoodsDAO.java b/11SpringBootUsingJDBC/src/main/java/repository/GoodsDAO.java deleted file mode 100644 index bffefd8..0000000 --- a/11SpringBootUsingJDBC/src/main/java/repository/GoodsDAO.java +++ /dev/null @@ -1,13 +0,0 @@ -package repository; - -import model.Goods; - -public interface GoodsDAO { - - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice); - - public int removeGoods(int goodsId); - - public int updateGoods(int goodsId,String goodsName); -} diff --git a/11SpringBootUsingJDBC/src/main/java/repository/GoodsDAOImpl.java b/11SpringBootUsingJDBC/src/main/java/repository/GoodsDAOImpl.java deleted file mode 100644 index 7a15f84..0000000 --- a/11SpringBootUsingJDBC/src/main/java/repository/GoodsDAOImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package repository; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - -import model.Goods; - -/** - * @author Ram - * - */ -@Repository -@Qualifier("GoodsDAO") -public class GoodsDAOImpl implements GoodsDAO { - - // private DataSource dataSource; - - // private JdbcTemplate jdbcTemplate = new JdbcTemplate(); - - /** - * configuring a jdbc template - */ - @Autowired - private JdbcTemplate jdbcTemplate; - - /*public void setJdbcTemplate1(final JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - }*/ - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) { - String query = "insert into goods values(" + goodsId + "," + "'" + goodsName + "'" + "," + goodsQuantity+ "," - + goodsPrice + ")"; - System.out.println(query); - - return jdbcTemplate.update(query); - } - - @Override - public int updateGoods(int goodsId, String goodsName) { - String query = "update goods set goodsName=" + "'" + goodsName + "'" + " where goodsId=" + goodsId; - // String query = "update customer set customerName="+name+" where customerId="+ - // customerID; - - System.out.println(query); - return jdbcTemplate.update(query); - } - - @Override - public int removeGoods(int goodsId) { - - String query = "delete from goods where goodsId=" + goodsId; - System.out.println(query); - return jdbcTemplate.update(query); - } - - /*public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - }*/ - -} diff --git a/11SpringBootUsingJDBC/src/main/java/repository/RetailerDAO.java b/11SpringBootUsingJDBC/src/main/java/repository/RetailerDAO.java deleted file mode 100644 index 5e3aeed..0000000 --- a/11SpringBootUsingJDBC/src/main/java/repository/RetailerDAO.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * - */ -package repository; - -import java.util.List; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public interface RetailerDAO { - - - int addRetailer(Supplier s); - -public List viewGoods(); - -public List viewCustomer(int customerId ); - -public List viewSupplier(int supplierId); - - -} diff --git a/11SpringBootUsingJDBC/src/main/java/repository/RetailerDAOImpl.java b/11SpringBootUsingJDBC/src/main/java/repository/RetailerDAOImpl.java deleted file mode 100644 index f8dfb84..0000000 --- a/11SpringBootUsingJDBC/src/main/java/repository/RetailerDAOImpl.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * - */ -package repository; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.BeanPropertyRowMapper; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ - -@Repository -public class RetailerDAOImpl implements RetailerDAO { - - @Autowired - private JdbcTemplate jdbcTemplate; - - /* - * @Override public int viewGoods() { // TODO Auto-generated method stub String - * query = "select * from goods"; System.out.println(query); return - * jdbcTemplate.update(query); - * - * } - */ - - - @Override - public List viewCustomer(final int customerId) { - // TODO Auto-generated method stub - List list = (List) jdbcTemplate.query( - "SELECT * FROM customer where customerId = '" + customerId + "' ", - new BeanPropertyRowMapper(Customer.class)); - System.out.println("In cust view"); - return list; - } - - - @Override - public List viewSupplier(final int supplierId) { - // TODO Auto-generated method stub - List list = (List) jdbcTemplate.query( - "SELECT * FROM supplier where supplierID = '" + supplierId + "' ", - new BeanPropertyRowMapper(Supplier.class)); - System.out.println("In supplier view"); - return list; - } - - - public List viewGoods() { - // TODO Auto-generated method stub - List list = (List) jdbcTemplate.query( - "SELECT * FROM goods", - new BeanPropertyRowMapper(Goods.class)); - System.out.println("In goods view"); - return list; - } - - @Override - public int addRetailer(Supplier s) { - - String query = "insert into retailer values (" + "'" + s.getSupplierName() + "'" + "," + "'" - + s.getSupplierAddress() + "'" + ")"; - System.out.println(query); - return jdbcTemplate.update(query); - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/repository/SupplierDAO.java b/11SpringBootUsingJDBC/src/main/java/repository/SupplierDAO.java deleted file mode 100644 index 3adab52..0000000 --- a/11SpringBootUsingJDBC/src/main/java/repository/SupplierDAO.java +++ /dev/null @@ -1,13 +0,0 @@ -package repository; - -public interface SupplierDAO { - - public int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); - - public int removeSupplier(int supplierId); - - public int updateSupplier(int supplierId, String supplierName); - -} diff --git a/11SpringBootUsingJDBC/src/main/java/repository/SupplierDAOImpl.java b/11SpringBootUsingJDBC/src/main/java/repository/SupplierDAOImpl.java deleted file mode 100644 index f9236a7..0000000 --- a/11SpringBootUsingJDBC/src/main/java/repository/SupplierDAOImpl.java +++ /dev/null @@ -1,66 +0,0 @@ -package repository; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - - -@Repository -@Qualifier("supplierDAO") -public class SupplierDAOImpl implements SupplierDAO { - - private DataSource dataSource; -@Autowired -JdbcTemplate jdbcTemplate; - - - - - - - @Override - public int addSupplier(final int supplierId, final String supplierName, final String supplierAddress, final int quantityOrder, final int orderId, - final double amount) { - String Query = "insert into supplier values(" + supplierId + "," + "'" + supplierName + "'" + "," + "'" - + supplierAddress + "'" + "," + quantityOrder + "," + orderId + "," + amount + ")"; - System.out.println(Query); - return jdbcTemplate.update(Query); - } - - @Override - public int removeSupplier(int supplierId) { - - String query = "delete from supplier where supplierId=" + supplierId; - System.out.println(query); - return jdbcTemplate.update(query); - } - - - @Override - public int updateSupplier(int supplierId, String supplierName) { - - String query = "update supplier set supplierName="+"'" +supplierName+"'"+ "where supplierId="+supplierId; - - System.out.println(query); - return jdbcTemplate.update(query); - } -/* - *//** - * @return the jdbcTemplate - *//* - public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - *//** - * @param jdbcTemplate - * the jdbcTemplate to set - *//* - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - }*/ - -} diff --git a/11SpringBootUsingJDBC/src/main/java/service/CustomerService.java b/11SpringBootUsingJDBC/src/main/java/service/CustomerService.java deleted file mode 100644 index fffc1be..0000000 --- a/11SpringBootUsingJDBC/src/main/java/service/CustomerService.java +++ /dev/null @@ -1,14 +0,0 @@ -package service; - -import model.Customer; - -public interface CustomerService { - - - //public String addCustomer(Customer e); -// public String updateCustomer(int customerID, String name); - //public int removeCustomer(int id); - int addCustomer(Customer c); - int updateCustomer(int customerId, String customerName); - int removeCusotmer(int customerId); -} diff --git a/11SpringBootUsingJDBC/src/main/java/service/CustomerServiceImpl.java b/11SpringBootUsingJDBC/src/main/java/service/CustomerServiceImpl.java deleted file mode 100644 index 08932cc..0000000 --- a/11SpringBootUsingJDBC/src/main/java/service/CustomerServiceImpl.java +++ /dev/null @@ -1,44 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import model.Customer; -import repository.CustomerDAO; - -/** - * @author Ram - */ -@Service("customerService") -public class CustomerServiceImpl implements CustomerService { - - @Autowired - private CustomerDAO customerDAO; - - /** - * @param customerDAO - */ - public CustomerServiceImpl(final CustomerDAO customerDAO) { - super(); - this.customerDAO = customerDAO; - } - - - - public int addCustomer(final Customer c) { - final int addData = customerDAO.addCustomer(c); - return addData; - } - - public int updateCustomer(int customerId, String customerName) { - int updateData = customerDAO.updateCustomer(customerId, customerName); - return updateData; - } - - @Override - public int removeCusotmer(int customerId) { - int removeData = customerDAO.removeCustomer(customerId); - return removeData; - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/service/GoodsService.java b/11SpringBootUsingJDBC/src/main/java/service/GoodsService.java deleted file mode 100644 index 345474c..0000000 --- a/11SpringBootUsingJDBC/src/main/java/service/GoodsService.java +++ /dev/null @@ -1,30 +0,0 @@ -package service; - -import model.Goods; - -public interface GoodsService { - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and adding goodsID, name,quantity,price - * - */ - int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice); - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and removing a perticular Goods from table - * - */ - int removeGoods(int goodsId); - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and updating a perticular Goods - * - */ - int updateGoods(int goodsId, String goodsName); - // public String orderGoods(int goodsId); - -} diff --git a/11SpringBootUsingJDBC/src/main/java/service/GoodsServiceImpl.java b/11SpringBootUsingJDBC/src/main/java/service/GoodsServiceImpl.java deleted file mode 100644 index bd8049c..0000000 --- a/11SpringBootUsingJDBC/src/main/java/service/GoodsServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import model.Goods; -import repository.GoodsDAO; - -@Service("goodsService") -public class GoodsServiceImpl implements GoodsService { - - - @Autowired - private GoodsDAO goodsdao; - - public GoodsServiceImpl(final GoodsDAO goodsdao) { - super(); - this.goodsdao = goodsdao; - } - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) { - - int addData = goodsdao.addGoods(goodsId,goodsName,goodsQuantity,goodsPrice); - return addData; - } - - @Override - public int removeGoods(int goodsId) { - // GoodsDAO goodsDAO = null; - int remmoveData = goodsdao.removeGoods(goodsId); - return remmoveData; - } - - @Override - public int updateGoods(int goodsId, String goodsName) { - // GoodsDAO goodsDAO = null; - int updateData = goodsdao.updateGoods(goodsId, goodsName); - return updateData; - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/service/RetailerService.java b/11SpringBootUsingJDBC/src/main/java/service/RetailerService.java deleted file mode 100644 index 536690d..0000000 --- a/11SpringBootUsingJDBC/src/main/java/service/RetailerService.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * - */ -package service; - -import java.util.List; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public interface RetailerService { - - //int addSupplier(String supplierName, String supplierAddress); - - int addRetailer(Supplier s); - - -public List viewGoods(); - -public List viewCustomer(int customerId ); - -public List viewSupplier(int supplierId); - - -} diff --git a/11SpringBootUsingJDBC/src/main/java/service/RetailerServiceImpl.java b/11SpringBootUsingJDBC/src/main/java/service/RetailerServiceImpl.java deleted file mode 100644 index 0dd0c4a..0000000 --- a/11SpringBootUsingJDBC/src/main/java/service/RetailerServiceImpl.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * - */ -package service; - -import java.util.ArrayList; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import model.Customer; -import model.Goods; -import model.Supplier; -import repository.CustomerDAO; -import repository.RetailerDAO; -import repository.RetailerDAOImpl; - -/** - * @author trainee - * - */ -@Service -public class RetailerServiceImpl implements RetailerService { - - @Autowired - private RetailerDAO retailerDao; - - @Override - public int addRetailer(final Supplier s) { - - return retailerDao.addRetailer(s); - - } - - public List viewCustomer(int customerId ) { - List customerList = new ArrayList(); - customerList = retailerDao.viewCustomer(customerId); - return customerList; - } - - @Override - public List viewSupplier(final int supplierId) { - // TODO Auto-generated method stub - return retailerDao.viewSupplier(supplierId); - } - - @Override - public List viewGoods() { - // TODO Auto-generated method stub - return retailerDao.viewGoods(); - } - -} diff --git a/11SpringBootUsingJDBC/src/main/java/service/SupplierService.java b/11SpringBootUsingJDBC/src/main/java/service/SupplierService.java deleted file mode 100644 index b230abd..0000000 --- a/11SpringBootUsingJDBC/src/main/java/service/SupplierService.java +++ /dev/null @@ -1,30 +0,0 @@ -package service; - -/** - * this interface contains various operations. - */ -public interface SupplierService { - - /** - * this method is used to invoke the Repository method addSupplier - * which will hit the databases. - * - */ - int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); - /** - * this method is used to invoke the Repository method removeSupplier - * which will hit the databases. - * - */ - int removeSupplier(int supplierId); - - /** - * this method is used to invoke the Repository method addSupplier - * which will hit the databases. - * - */ - int updateSupplier(int supplierId,String supplierName); - -} diff --git a/11SpringBootUsingJDBC/src/main/java/service/SupplierServiceImpl.java b/11SpringBootUsingJDBC/src/main/java/service/SupplierServiceImpl.java deleted file mode 100644 index 1ea11f1..0000000 --- a/11SpringBootUsingJDBC/src/main/java/service/SupplierServiceImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import repository.SupplierDAO; - -/** - * this class implementing methods of its parent interface - */ - -@Service("supplierService") -public class SupplierServiceImpl implements SupplierService { - - /** - * @param supplierDAO - * this will be used to access DAO methods - */ - @Autowired - private SupplierDAO supplierDAO; - - /** - * @param supplierDAO - */ - - @Override - public int addSupplier(final int supplierId, final String supplierName, final String supplierAddress, - final int quantityOrder, final int orderId, final double amount) { - - // SupplierDAO supplierDAO = null; - final int addData = supplierDAO.addSupplier(supplierId, supplierName, supplierAddress, quantityOrder, orderId, - amount); - return addData; - - } - - @Override - public int removeSupplier(final int supplierId) { - // final SupplierDAO supplierDAO = null; - final int removeData = supplierDAO.removeSupplier(supplierId); - return removeData; - } - - @Override - public int updateSupplier(final int supplierId, final String supplierName) { - final SupplierDAO supplierDAO = null; - int removeData = supplierDAO.updateSupplier(supplierId, supplierName); - return removeData; - } - -} diff --git a/11SpringBootUsingJDBC/src/main/resources/application.properties b/11SpringBootUsingJDBC/src/main/resources/application.properties deleted file mode 100644 index e69de29..0000000 diff --git a/11SpringBootUsingJDBC/src/main/resources/database.properties b/11SpringBootUsingJDBC/src/main/resources/database.properties deleted file mode 100644 index 9c1f900..0000000 --- a/11SpringBootUsingJDBC/src/main/resources/database.properties +++ /dev/null @@ -1,4 +0,0 @@ -driver=com.mysql.jdbc.Driver -url=jdbc:mysql://localhost:3306/mydb1 -dbuser=root -dbpassword=root \ No newline at end of file diff --git a/11SpringBootUsingJDBC/src/test/java/com/example/demo/DemoApplicationTests.java b/11SpringBootUsingJDBC/src/test/java/com/example/demo/DemoApplicationTests.java deleted file mode 100644 index b76e7f2..0000000 --- a/11SpringBootUsingJDBC/src/test/java/com/example/demo/DemoApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.demo; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class DemoApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/12SpringBoot&JPA/.gitignore b/12SpringBoot&JPA/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/12SpringBoot&JPA/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.jar b/12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 zcmbTd1CXW7vMxN+wr$(CZCk5to71*!+jjS~ZJX1!ds=tCefGhB{(HVS`>u$J^~PFn zW>r>YRc2N`sUQsug7OUl0^-}ZZ-jr^e|{kUJj#ly2+~T*iO~apQ;-J#>z!{v|9nH? zexD9D~4A70;F%I|$?{aX9)~)7!NMGs_XtoO(D2z3Q#5Lmj zOYWk1b{iMmsdX30UFmYyZk1gWICVeOtk^$+{3U2(8gx?WA2F!EfBPf&|1?AJ|5Z>M zfUAk^zcf#n|9^4|J34286~NKrUt&c5cZ~iqE?PH7fW5tm3-qG$) z56%`QPSn!0RMV3)jjXfG^UQ}*^yBojH!}58lPlDclX5iUhf*|DV=~e*bl;(l$Wn@r zPE*iH(NK!e9KQcU$rRM}aJc?-&H1PO&vOs*=U+QVvwuk-=zr1x>;XpRCjSyC;{TWQ z|824V8t*^*{x=5yn^pP#-?k<5|7|4y&Pd44&e_TN&sxg@ENqpX0glclj&w%W04Jwp zwJ}#@ag^@h5VV4H5U@i7V#A*a;4bzM-y_rd{0WG#jRFPJU}(#&o8vo@uM+B+$>Tiq zei^5$wg8CVf{+_#Vh`yPx-6TmB~zT_nocS_Rb6&EYp*KjbN#-aP<~3j=NVuR)S1wm zdy3AWx2r9uww3eNJxT>{tdmY4#pLw`*`_fIwSu;yzFYP)=W6iawn`s*omzNbR?E&LyC17rFcjWp!M~p?;{v!78DTxtF85BK4dT< zA5p)Z%6O}mP?<%Z{>nZmbVEbomm zLgy;;N&!y>Dma2sqmbvz&KY-j&s~dd#mWGlNF%7}vS7yt>Dm{P=X zG>Pyv2D!ba0CcTI*G6-v?!0}`EWm1d?K)DgZIQk9eucI&lBtR))NxqVz)+hBR1b|7 zgv&^46cI?mgCvp>lY9W(nJT#^<*kY3o#Php1RZLY@ffmLLq3A!Yd}O~n@BhXVp`<5 zJx`BjR%Svv)Sih_8TFg-9F-Gg3^kQrpDGej@uT5%y_9NSsk5SW>7{>&11u(JZHsZO zZweI|!&qHl0;7qxijraQo=oV^Pi~bNlzx;~b2+hXreonWGD%C$fyHs+8d1kKN>TgB z{Mu?~E{=l1osx|_8P*yC>81_GB7>NS7UA+x2k_c*cU-$gQjR{+IU)z069Ic$<)ci< zb?+V#^-MK!0s~wRP|grx?P^8EZ(9Jt0iA{`uVS6fNo>b@as5_-?e766V}&)8ZOEVtKB z*HtHAqat+2lbJbEI#fl~`XKNIF&J?PHKq)A!z(#j%)Uby=5d!bQP)-Mr!0#J=FV%@9G#Cby%r#(S=23H#9d)5Ndy>pIXJ%si!D=m*-QQZ(O9~#Jhx#AS3 z&Vs+*E5>d+{ib4>FEd#L15-ovl*zV%SYSWF>Z}j!vGn=g%w0~3XvAK&$Dl@t5hiUa#mT(4s9-JF1l zPi5d2YmuFJ4S(O>g~H)5l_`%h3qm?+8MmhXA>GRN}7GX;$4(!WTkYZB=TA^8ZFh^d9_@x$fK4qenP!zzaqQ1^(GQ- zjC$P$B5o{q&-H8UH_$orJTv0}#|9ja(vW9gA%l|@alYk+Uth1ey*ax8wmV7U?^Z9? zsQMrEzP8|_s0=bii4wDWa7te&Vmh9T>fcUXJS|dD3Y$A`s-7kY!+idEa`zB) zaW*%xb+#}9INSa62(M1kwL=m_3E2T|l5Sm9QmON8ewxr#QR`;vOGCgyMsA8$O(;=U z#sEw)37duzeM#9_7l!ly#5c+Mu3{;<9%O{e z`+0*{COEF^py;f6)y6NX)gycj`uU9pdZMum9h(bS!zu1gDXdmF4{Og{u;d(Dr~Co1 z1tm@i#5?>oL}-weK1zJRlLv*+M?l=eI~Sp9vg{R6csq=3tYSB2pqB8 z=#p`us7r|uH=cZnGj|juceAu8J#vb+&UFLFmGn~9O|TNeGH>sboBl%JI9v(@^|45? zLvr2ha)NWP4yxV8K%dU(Ae=zl)qdGyz={$my;Vs6?4?2*1?&u!OFyFbAquv6@1e)~&Rp#Ww9O88!mrze((=@F?&BPl_u9gK4VlHo@4gLK_pGtEA(gO4YpIIWTrFN zqVi%Q{adXq^Ez~dZ0VUC>DW`pGtpTY<9tMd;}WZUhT1iy+S^TfHCWXGuDwAv1Ik85 zh3!tSlWU3*aLtmdf?g(#WnLvVCXW$>gnT_{(%VilR=#2VKh~S}+Po#ha9C*<-l~Fx z$EK{1SO8np&{JC)7hdM8O+C( zF^s3HskJz@p3ot`SPKA92PG!PmC2d|9xA!CZxR!rK9-QYYBGAM-Gj zCqzBaIjtOZ6gu+lA%**RI7to$x^s8xIx}VF96=<29CjWtsl;tmNbuHgrCyB^VzEIB zt@sqnl8Vg`pnMppL6vbjNNKc?BrH<)fxiZ|WrYW%cnz-FMENGzMI+)@l7dit?oP|Wu zg-oLcv~79=fdqEM!zK%lI=R7S!Do!HBaD+*h^ULWVB}4jr^e5oUqY`zA&NUvzseI% z+XCvzS+n|m7WJoyjXXk(PE8;i^r$#Pq|NFd!{g~m2OecA1&>$7SYFw z;}Q{`F3LCE34Z>5;5dDtz&2Z&w|B9fwvU<@S<BBo(L4SbDV#X3%uS+<2q7iH+0baiGzlVP5n0fBDP z7kx+7|Cws+?T|cw-pt~SIa7BRDI_ATZ9^aQS^1I?WfnfEHZ*sGlT#Wk9djDL?dWLA zk%(B?<8L?iV*1m803UW|*sU$raq<(!N!CrQ&y7?7_g zF2!aAfw5cWqO}AX)+v)5_GvQ$1W8MV8bTMr3P{^!96Q4*YhS}9ne|+3GxDJmZEo zqh;%RqD5&32iTh7kT>EEo_%`8BeK&)$eXQ-o+pFIP!?lee z&kos;Q)_afg1H&{X|FTQ0V z@yxv4KGGN)X|n|J+(P6Q`wmGB;J}bBY{+LKVDN9#+_w9s$>*$z)mVQDOTe#JG)Zz9*<$LGBZ-umW@5k5b zbIHp=SJ13oX%IU>2@oqcN?)?0AFN#ovwS^|hpf5EGk0#N<)uC{F}GG}%;clhikp2* zu6ra2gL@2foI>7sL`(x5Q)@K2$nG$S?g`+JK(Q0hNjw9>kDM|Gpjmy=Sw5&{x5$&b zE%T6x(9i|z4?fMDhb%$*CIe2LvVjuHca`MiMcC|+IU51XfLx(BMMdLBq_ z65RKiOC$0w-t)Cyz0i-HEZpkfr$>LK%s5kga^FIY_|fadzu*r^$MkNMc!wMAz3b4P+Z3s(z^(%(04}dU>ef$Xmof(A|XXLbR z2`&3VeR1&jjKTut_i?rR_47Z`|1#$NE$&x#;NQM|hxDZ>biQ*+lg5E62o65ILRnOOOcz%Q;X$MJ?G5dYmk$oL_bONX4 zT^0yom^=NsRO^c$l02#s0T^dAAS&yYiA=;rLx;{ro6w08EeTdVF@j^}Bl;o=`L%h! zMKIUv(!a+>G^L3{z7^v3W$FUUHA+-AMv~<}e?2?VG|!itU~T>HcOKaqknSog zE}yY1^VrdNna1B6qA`s?grI>Y4W%)N;~*MH35iKGAp*gtkg=FE*mFDr5n2vbhwE|4 zZ!_Ss*NMZdOKsMRT=uU{bHGY%Gi=K{OD(YPa@i}RCc+mExn zQogd@w%>14cfQrB@d5G#>Lz1wEg?jJ0|(RwBzD74Eij@%3lyoBXVJpB{q0vHFmE7^ zc91!c%pt&uLa|(NyGF2_L6T{!xih@hpK;7B&bJ#oZM0`{T6D9)J2IXxP?DODPdc+T zC>+Zq8O%DXd5Gog2(s$BDE3suv=~s__JQnX@uGt+1r!vPd^MM}=0((G+QopU?VWgR zqj8EF0?sC`&&Nv-m-nagB}UhXPJUBn-UaDW9;(IX#)uc zL*h%hG>ry@a|U=^=7%k%V{n=eJ%Nl0Oqs!h^>_PgNbD>m;+b)XAk+4Cp=qYxTKDv& zq1soWt*hFf%X8}MpQZL-Lg7jc0?CcWuvAOE(i^j1Km^m8tav)lMx1GF{?J#*xwms2 z3N_KN-31f;@JcW(fTA`J5l$&Q8x{gb=9frpE8K0*0Rm;yzHnDY0J{EvLRF0 zRo6ca)gfv6C)@D#1I|tgL~uHJNA-{hwJQXS?Kw=8LU1J$)nQ-&Jhwxpe+%WeL@j0q z?)92i;tvzRki1P2#poL;YI?9DjGM4qvfpsHZQkJ{J^GNQCEgUn&Sg=966 zq?$JeQT+vq%zuq%%7JiQq(U!;Bsu% zzW%~rSk1e+_t89wUQOW<8%i|5_uSlI7BcpAO20?%EhjF%s%EE8aY15u(IC za2lfHgwc;nYnES7SD&Lf5IyZvj_gCpk47H}e05)rRbfh(K$!jv69r5oI| z?){!<{InPJF6m|KOe5R6++UPlf(KUeb+*gTPCvE6! z(wMCuOX{|-p(b~)zmNcTO%FA z$-6}lkc*MKjIJ(Fyj^jkrjVPS);3Qyq~;O$p+XT+m~0$HsjB@}3}r*h(8wGbH9ktQ zbaiiMSJf`6esxC3`u@nNqvxP1nBwerm|KN)aBzu$8v_liZ0(G8}*jB zv<8J%^S2E_cu+Wp1;gT66rI$>EwubN4I(Lo$t8kzF@?r0xu8JX`tUCpaZi(Q0~_^K zs6pBkie9~06l>(Jpy*d&;ZH{HJ^Ww6>Hs!DEcD{AO42KX(rTaj)0ox`;>}SRrt)N5 zX)8L4Fg)Y6EX?He?I`oHeQiGJRmWOAboAC4Jaf;FXzspuG{+3!lUW8?IY>3%)O546 z5}G94dk)Y>d_%DcszEgADP z8%?i~Ak~GQ!s(A4eVwxPxYy3|I~3I=7jf`yCDEk_W@yfaKjGmPdM}($H#8xGbi3l3 z5#?bjI$=*qS~odY6IqL-Q{=gdr2B5FVq7!lX}#Lw**Pyk!`PHN7M3Lp2c=T4l}?kn zVNWyrIb(k&`CckYH;dcAY7-kZ^47EPY6{K(&jBj1Jm>t$FD=u9U z#LI%MnI3wPice+0WeS5FDi<>~6&jlqx=)@n=g5TZVYdL@2BW3w{Q%MkE%sx}=1ihvj(HDjpx!*qqta?R?| zZ(Ju_SsUPK(ZK*&EdAE(Fj%eABf2+T>*fZ6;TBP%$xr(qv;}N@%vd5iGbzOgyMCk* z3X|-CcAz%}GQHalIwd<-FXzA3btVs-_;!9v7QP)V$ruRAURJhMlw7IO@SNM~UD)2= zv}eqKB^kiB))Yhh%v}$ubb#HBQHg3JMpgNF+pN*QbIx(Rx1ofpVIL5Y{)0y&bMO(@ zyK1vv{8CJQidtiI?rgYVynw{knuc!EoQ5-eete(AmM`32lI7{#eS#!otMBRl21|g^SVHWljl8jU?GU@#pYMIqrt3mF|SSYI&I+Vz|%xuXv8;pHg zlzFl!CZ>X%V#KWL3+-743fzYJY)FkKz>GJ<#uKB)6O8NbufCW%8&bQ^=8fHYfE(lY z1Fl@4l%|iaTqu=g7tTVk)wxjosZf2tZ2`8xs9a$b1X29h!9QP#WaP#~hRNL>=IZO@SX4uYQR_c0pSt89qQR@8gJhL*iXBTSBDtlsiNvc_ewvY-cm%bd&sJTnd@hE zwBGvqGW$X^oD~%`b@yeLW%An*as@4QzwdrpKY9-E%5PLqvO6B+bf>ph+TWiPD?8Ju z-V}p@%LcX{e)?*0o~#!S%XU<+9j>3{1gfU=%sHXhukgH+9z!)AOH_A{H3M}wmfmU8 z&9jjfwT-@iRwCbIEwNP4zQHvX3v-d*y87LoudeB9Jh5+mf9Mnj@*ZCpwpQ*2Z9kBWdL19Od7q|Hdbwv+zP*FuY zQc4CJ6}NIz7W+&BrB5V%{4Ty$#gf#V<%|igk)b@OV`0@<)cj(tl8~lLtt^c^l4{qP z=+n&U0LtyRpmg(_8Qo|3aXCW77i#f{VB?JO3nG!IpQ0Y~m!jBRchn`u>HfQuJwNll zVAMY5XHOX8T?hO@7Vp3b$H)uEOy{AMdsymZ=q)bJ%n&1;>4%GAjnju}Osg@ac*O?$ zpu9dxg-*L(%G^LSMhdnu=K)6ySa|}fPA@*Saj}Z>2Dlk~3%K(Py3yDG7wKij!7zVp zUZ@h$V0wJ|BvKc#AMLqMleA*+$rN%#d95$I;;Iy4PO6Cih{Usrvwt2P0lh!XUx~PGNySbq#P%`8 zb~INQw3Woiu#ONp_p!vp3vDl^#ItB06tRXw88L}lJV)EruM*!ZROYtrJHj!X@K$zJ zp?Tb=Dj_x1^)&>e@yn{^$B93%dFk~$Q|0^$=qT~WaEU-|YZZzi`=>oTodWz>#%%Xk z(GpkgQEJAibV%jL#dU)#87T0HOATp~V<(hV+CcO?GWZ_tOVjaCN13VQbCQo=Dt9cG znSF9X-~WMYDd66Rg8Ktop~CyS7@Pj@Vr<#Ja4zcq1}FIoW$@3mfd;rY_Ak^gzwqqD z^4<_kC2Eyd#=i8_-iZ&g_e#$P`;4v zduoZTdyRyEZ-5WOJwG-bfw*;7L7VXUZ8aIA{S3~?()Yly@ga|-v%?@2vQ;v&BVZlo7 z49aIo^>Cv=gp)o?3qOraF_HFQ$lO9vHVJHSqq4bNNL5j%YH*ok`>ah?-yjdEqtWPo z+8i0$RW|$z)pA_vvR%IVz4r$bG2kSVM&Z;@U*{Lug-ShiC+IScOl?O&8aFYXjs!(O z^xTJ|QgnnC2!|xtW*UOI#vInXJE!ZpDob9x`$ox|(r#A<5nqbnE)i<6#(=p?C~P-7 zBJN5xp$$)g^l};@EmMIe;PnE=vmPsTRMaMK;K`YTPGP0na6iGBR8bF%;crF3>ZPoLrlQytOQrfTAhp;g){Mr$zce#CA`sg^R1AT@tki!m1V zel8#WUNZfj(Fa#lT*nT>^pY*K7LxDql_!IUB@!u?F&(tfPspwuNRvGdC@z&Jg0(-N z(oBb3QX4em;U=P5G?Y~uIw@E7vUxBF-Ti*ccU05WZ7`m=#4?_38~VZvK2{MW*3I#fXoFG3?%B;ki#l%i#$G_bwYQR-4w>y;2` zMPWDvmL6|DP1GVXY)x+z8(hqaV5RloGn$l&imhzZEZP6v^d4qAgbQ~bHZEewbU~Z2 zGt?j~7`0?3DgK+)tAiA8rEst>p#;)W=V+8m+%}E$p-x#)mZa#{c^3pgZ9Cg}R@XB) zy_l7jHpy(u;fb+!EkZs6@Z?uEK+$x3Ehc8%~#4V?0AG0l(vy{8u@Md5r!O+5t zsa{*GBn?~+l4>rChlbuT9xzEx2yO_g!ARJO&;rZcfjzxpA0Chj!9rI_ZD!j` z6P@MWdDv&;-X5X8o2+9t%0f1vJk3R~7g8qL%-MY9+NCvQb)%(uPK4;>y4tozQ2Dl* zEoR_1#S~oFrd9s%NOkoS8$>EQV|uE<9U*1uqAYWCZigiGlMK~vSUU}f5M9o{<*WW? z$kP)2nG$My*fUNX3SE!g7^r#zTT^mVa#A*5sBP8kz4se+o3y}`EIa)6)VpKmto6Ew z1J-r2$%PM4XUaASlgVNv{BBeL{CqJfFO|+QpkvsvVBdCA7|vlwzf1p$Vq50$Vy*O+ z5Eb85s^J2MMVj53l4_?&Wpd1?faYE-X1ml-FNO-|a;ZRM*Vp!(ods{DY6~yRq%{*< zgq5#k|KJ70q47aO1o{*gKrMHt)6+m(qJi#(rAUw0Uy8~z8IX)>9&PTxhLzh#Oh*vZ zPd1b$Z&R{yc&TF^x?iQCw#tV}la&8^W)B*QZ${19LlRYgu#nF7Zj`~CtO^0S#xp+r zLYwM~si$I>+L}5gLGhN=dyAKO)KqPNXUOeFm#o+3 z&#!bD%aTBT@&;CD_5MMC&_Yi+d@nfuxWSKnYh0%~{EU`K&DLx}ZNI2osu#(gOF2}2 zZG#DdQ|k0vXj|PxxXg-MYSi9gI|hxI%iP)YF2$o< zeiC8qgODpT?j!l*pj_G(zXY2Kevy~q=C-SyPV$~s#f-PW2>yL}7V+0Iu^wH;AiI$W zcZDeX<2q%!-;Ah!x_Ld;bR@`bR4<`FTXYD(%@CI#biP z5BvN;=%AmP;G0>TpInP3gjTJanln8R9CNYJ#ziKhj(+V33zZorYh0QR{=jpSSVnSt zGt9Y7Bnb#Ke$slZGDKti&^XHptgL7 zkS)+b>fuz)B8Lwv&JV*};WcE2XRS63@Vv8V5vXeNsX5JB?e|7dy$DR9*J#J= zpKL@U)Kx?Y3C?A3oNyJ5S*L+_pG4+X*-P!Er~=Tq7=?t&wwky3=!x!~wkV$Ufm(N| z1HY?`Ik8?>%rf$6&0pxq8bQl16Jk*pwP`qs~x~Trcstqe-^hztuXOG zrYfI7ZKvK$eHWi9d{C${HirZ6JU_B`f$v@SJhq?mPpC-viPMpAVwE;v|G|rqJrE5p zRVf904-q{rjQ=P*MVKXIj7PSUEzu_jFvTksQ+BsRlArK&A*=>wZPK3T{Ki-=&WWX= z7x3VMFaCV5;Z=X&(s&M^6K=+t^W=1>_FFrIjwjQtlA|-wuN7&^v1ymny{51gZf4-V zU8|NSQuz!t<`JE%Qbs||u-6T*b*>%VZRWsLPk&umJ@?Noo5#{z$8Q0oTIv00`2A`# zrWm^tAp}17z72^NDu^95q1K)6Yl`Wvi-EZA+*i&8%HeLi*^9f$W;f1VF^Y*W;$3dk|eLMVb_H{;0f*w!SZMoon+#=CStnG-7ZU8V>Iy( zmk;42e941mi7!e>J0~5`=NMs5g)WrdUo^7sqtEvwz8>H$qk=nj(pMvAb4&hxobPA~p&-L5a_pTs&-0XCm zKXZ8BkkriiwE)L2CN$O-`#b15yhuQO7f_WdmmG<-lKeTBq_LojE&)|sqf;dt;llff znf|C$@+knhV_QYVxjq*>y@pDK|DuZg^L{eIgMZnyTEoe3hCgVMd|u)>9knXeBsbP_$(guzw>eV{?5l$ z063cqIysrx82-s6k;vE?0jxzV{@`jY3|*Wp?EdNUMl0#cBP$~CHqv$~sB5%50`m(( zSfD%qnxbGNM2MCwB+KA?F>u__Ti>vD%k0#C*Unf?d)bBG6-PYM!!q;_?YWptPiHo} z8q3M~_y9M6&&0#&uatQD6?dODSU)%_rHen`ANb z{*-xROTC1f9d!8`LsF&3jf{OE8~#;>BxHnOmR}D80c2Eh zd867kq@O$I#zEm!CCZJw8S`mCx}HrCl_Rh4Hsk{Cb_vJ4VA3GK+icku z%lgw)Y@$A0kzEV^#=Zj8i6jPk&Mt_bKDD!jqY3&W(*IPbzYu$@x$|3*aP{$bz-~xE^AOxtbyWvzwaCOHv6+99llI&xT_8)qX3u|y|0rDV z(Hu*#5#cN0mw4OSdY$g_xHo-zyZ-8WW&4r%qW(=5N>0O-t{k;#G9X81F~ynLV__Kz zbW1MA>Pjg0;3V?iV+-zQsll_0jimGuD|0GNW^av|4yes(PkR1bGZwO6xvgCy}ThR7?d&$N`kA3N!Xn5uSKKCT-`{lE1ZYYy?GzL}WF+mh|sgT6K2Z*c9YB zFSpGRNgYvk&#<2@G(vUM5GB|g?gk~-w+I4C{vGu{`%fiNuZIeu@V1qt`-x$E?OR;zu866Y@2^et5GTNCpX#3D=|jD5>lT^vD$ zr}{lRL#Lh4g45Yj43Vs7rxUb*kWC?bpKE1@75OJQ=XahF z5(C0DyF;at%HtwMTyL!*vq6CLGBi^Ey}Mx39TC2$a)UmekKDs&!h>4Hp2TmSUi!xo zWYGmyG)`$|PeDuEL3C6coVtit>%peYQ6S1F4AcA*F`OA;qM+1U6UaAI(0VbW#!q9* zz82f@(t35JH!N|P4_#WKK6Rc6H&5blD6XA&qXahn{AP=oKncRgH!&=b6WDz?eexo* z9pzh}_aBc_R&dZ+OLk+2mK-5UhF`>}{KN7nOxb{-1 zd`S-o1wgCh7k0u%QY&zoZH}!<;~!)3KTs-KYRg}MKP3Vl%p$e6*MOXLKhy)<1F5L* z+!IH!RHQKdpbT8@NA+BFd=!T==lzMU95xIyJ13Z6zysYQ1&zzH!$BNU(GUm1QKqm< zTo#f%;gJ@*o;{#swM4lKC(QQ<%@;7FBskc7$5}W9Bi=0heaVvuvz$Ml$TR8@}qVn>72?6W1VAc{Mt}M zkyTBhk|?V}z`z$;hFRu8Vq;IvnChm+no@^y9C1uugsSU`0`46G#kSN9>l_ozgzyqc zZnEVj_a-?v@?JmH1&c=~>-v^*zmt`_@3J^eF4e))l>}t2u4L`rueBR=jY9gZM;`nV z>z(i<0eedu2|u-*#`SH9lRJ7hhDI=unc z?g^30aePzkL`~hdH*V7IkDGnmHzVr%Q{d7sfb7(|)F}ijXMa7qg!3eHex)_-$X;~* z>Zd8WcNqR>!`m#~Xp;r4cjvfR{i04$&f1)7sgen9i>Y|3)DCt^f)`uq@!(SG?w|tdSLS+<;ID74 zTq8FJYHJHrhSwvKL|O1ZnSbG-=l6Eg-Suv60Xc;*bq~g+LYk*Q&e)tR_h3!(y)O}$ zLi*i5ec^uHkd)fz2KWiR;{RosL%peU`TxM7w*M9m#rAiG`M)FTB>=X@|A`7x)zn5- z$MB5>0qbweFB249EI@!zL~I7JSTZbzjSMMJ=!DrzgCS!+FeaLvx~jZXwR`BFxZ~+A z=!Pifk?+2awS3DVi32fgZRaqXZq2^->izZpIa1sEog@01#TuEzq%*v359787rZoC( z9%`mDR^Hdxb%XzUt&cJN3>Cl{wmv{@(h>R38qri1jLKds0d|I?%Mmhu2pLy=< zOkKo4UdS`E9Y~z3z{5_K+j~i7Ou}q0?Qv4YebBya1%VkkWzR%+oB!c?9(Ydaka32! zTEv*zgrNWs`|~Q{h?O|8s0Clv{Kg0$&U}?VFLkGg_y=0Qx#=P${6SNQFp!tDsTAPV z0Ra{(2I7LAoynS0GgeQ6_)?rYhUy}AE^$gwmg?i!x#<9eP=0N=>ZgB#LV9|aH8q#B za|O-vu(GR|$6Ty!mKtIfqWRS-RO4M0wwcSr9*)2A5`ZyAq1`;6Yo)PmDLstI zL2%^$1ikF}0w^)h&000z8Uc7bKN6^q3NBfZETM+CmMTMU`2f^a#BqoYm>bNXDxQ z`3s6f6zi5sj70>rMV-Mp$}lP|jm6Zxg}Sa*$gNGH)c-upqOC7vdwhw}e?`MEMdyaC zP-`+83ke+stJPTsknz0~Hr8ea+iL>2CxK-%tt&NIO-BvVt0+&zsr9xbguP-{3uW#$ z<&0$qcOgS{J|qTnP;&!vWtyvEIi!+IpD2G%Zs>;k#+d|wbodASsmHX_F#z?^$)zN5 zpQSLH`x4qglYj*{_=8p>!q39x(y`B2s$&MFQ>lNXuhth=8}R}Ck;1}MI2joNIz1h| zjlW@TIPxM_7 zKBG{Thg9AP%B2^OFC~3LG$3odFn_mr-w2v**>Ub7da@>xY&kTq;IGPK5;^_bY5BP~ z2fiPzvC&osO@RL)io905e4pY3Yq2%j&)cfqk|($w`l`7Pb@407?5%zIS9rDgVFfx! zo89sD58PGBa$S$Lt?@8-AzR)V{@Q#COHi-EKAa5v!WJtJSa3-Wo`#TR%I#UUb=>j2 z7o-PYd_OrbZ~3K`pn*aw2)XKfuZnUr(9*J<%z@WgC?fexFu%UY!Yxi6-63kAk7nsM zlrr5RjxV45AM~MPIJQqKpl6QmABgL~E+pMswV+Knrn!0T)Ojw{<(yD8{S|$(#Z!xX zpH9_Q>5MoBKjG%zzD*b6-v>z&GK8Dfh-0oW4tr(AwFsR(PHw_F^k((%TdkglzWR`iWX>hT1rSX;F90?IN4&}YIMR^XF-CEM(o(W@P#n?HF z!Ey(gDD_0vl+{DDDhPsxspBcks^JCEJ$X74}9MsLt=S?s3)m zQ0cSrmU*<u;KMgi1(@Ip7nX@4Zq>yz;E<(M8-d0ksf0a2Ig8w2N-T69?f}j}ufew}LYD zxr7FF3R7yV0Gu^%pXS^49){xT(nPupa(8aB1>tfKUxn{6m@m1lD>AYVP=<)fI_1Hp zIXJW9gqOV;iY$C&d=8V)JJIv9B;Cyp7cE}gOoz47P)h)Y?HIE73gOHmotX1WKFOvk z5(t$Wh^13vl;+pnYvJGDz&_0Hd3Z4;Iwa-i3p|*RN7n?VJ(whUPdW>Z-;6)Re8n2# z-mvf6o!?>6wheB9q}v~&dvd0V`8x&pQkUuK_D?Hw^j;RM-bi_`5eQE5AOIzG0y`Hr zceFx7x-<*yfAk|XDgPyOkJ?){VGnT`7$LeSO!n|o=;?W4SaGHt4ngsy@=h-_(^qX)(0u=Duy02~Fr}XWzKB5nkU$y`$67%d^(`GrAYwJ? zN75&RKTlGC%FP27M06zzm}Y6l2(iE*T6kdZPzneMK9~m)s7J^#Q=B(Okqm1xB7wy< zNC>)8Tr$IG3Q7?bxF%$vO1Y^Qhy>ZUwUmIW5J4=ZxC|U)R+zg4OD$pnQ{cD`lp+MM zS3RitxImPC0)C|_d18Shpt$RL5iIK~H z)F39SLwX^vpz;Dcl0*WK*$h%t0FVt`Wkn<=rQ6@wht+6|3?Yh*EUe+3ISF zbbV(J6NNG?VNIXC)AE#(m$5Q?&@mjIzw_9V!g0#+F?)2LW2+_rf>O&`o;DA!O39Rg ziOyYKXbDK!{#+cj_j{g;|IF`G77qoNBMl8r@EIUBf+7M|eND2#Y#-x=N_k3a52*fi zp-8K}C~U4$$76)@;@M@6ZF*IftXfwyZ0V+6QESKslI-u!+R+?PV=#65d04(UI%}`r z{q6{Q#z~xOh}J=@ZN<07>bOdbSI(Tfcu|gZ?{YVVcOPTTVV52>&GrxwumlIek}OL? zeGFo#sd|C_=JV#Cu^l9$fSlH*?X|e?MdAj8Uw^@Dh6+eJa?A?2Z#)K zvr7I|GqB~N_NU~GZ?o1A+fc@%HlF$71Bz{jOC{B*x=?TsmF0DbFiNcnIuRENZA43a zfFR89OAhqSn|1~L4sA9nVHsFV4xdIY_Ix>v0|gdP(tJ^7ifMR_2i4McL#;94*tSY) zbwcRqCo$AnpV)qGHZ~Iw_2Q1uDS2XvFff#5BXjO!w&1C^$Pv^HwXT~vN0l}QsTFOz zp|y%Om9}{#!%cPR8d8sc4Y@BM+smy{aU#SHY>>2oh1pK+%DhPqc2)`!?wF{8(K$=~ z<4Sq&*`ThyQETvmt^NaN{Ef2FQ)*)|ywK%o-@1Q9PQ_)$nJqzHjxk4}L zJRnK{sYP4Wy(5Xiw*@M^=SUS9iCbSS(P{bKcfQ(vU?F~)j{~tD>z2I#!`eFrSHf;v zquo)*?AW$#+qP}n$%<{;wr$()*yw5N`8_rOTs^kOqyY;dIjsdw*6k_mL}v2V9C_*sK<_L8 za<3)C%4nRybn^plZ(y?erFuRVE9g%mzsJzEi5CTx?wwx@dpDFSOAubRa_#m+=AzZ~ z^0W#O2zIvWEkxf^QF660(Gy8eyS`R$N#K)`J732O1rK4YHBmh|7zZ`!+_91uj&3d} zKUqDuDQ8YCmvx-Jv*$H%{MrhM zw`g@pJYDvZp6`2zsZ(dm)<*5p3nup(AE6}i#Oh=;dhOA=V7E}98CO<1Lp3*+&0^`P zs}2;DZ15cuT($%cwznqmtTvCvzazAVu5Ub5YVn#Oo1X|&MsVvz8c5iwRi43-d3T%tMhcK#ke{i-MYad@M~0B_p`Iq){RLadp-6!peP^OYHTq~^vM zqTr5=CMAw|k3QxxiH;`*;@GOl(PXrt(y@7xo$)a3Fq4_xRM_3+44!#E zO-YL^m*@}MVI$5PM|N8Z2kt-smM>Jj@Dkg5%`lYidMIbt4v=Miqj4-sEE z)1*5VCqF1I{KZVw`U0Wa!+)|uiOM|=gM65??+k|{E6%76MqT>T+;z{*&^5Q9ikL2D zN2}U$UY)=rIyUnWo=yQ@55#sCZeAC}cQA(tg5ZhqLtu*z>4}mbfoZ>JOj-|a2fR$L zQ(7N$spJL_BHb6Bf%ieO10~pQX%@^WKmQOQNOUe4h|M}XOTRL`^QVpN$MjJ7t+UdP zDdzcK3e7_fdv)PPR>O|-`kVC1_O08_WGcQXj*W5d?}3yE?-fZ_@mE-zcq6^Mn49!; zDDcus*@4dFIyZ%_d3*MO=kk3$MQ^?zaDR1-o<<7T=;`8 zz2(w>U9IQ+pZ<*B;4dE@LnlF7YwNG>la#rQ@mC4u@@0_pf40+<&t)+9(YOgCP9(aJ z5v7SRi(y4;fWR)oHRxf2|Va=?P zXq&7GtTYd+3U{Wm5?#e7gDwz#OFbvHL4Jq{BGhNYzh|U!1$_WEJef&NKDD9)*$d+e ztXF1-rvO5OBm{g9Mo8x?^YB;J|G*~3m@2y%Fyx6eb*O^lW- z`JUL?!exvd&SL_w89KoQxw5ZZ}7$FD4s>z`!3R}6vcFf0lWNYjH$#P z<)0DiPN%ASTkjWqlBB;8?RX+X+y>z*$H@l%_-0-}UJ>9l$`=+*lIln9lMi%Q7CK-3 z;bsfk5N?k~;PrMo)_!+-PO&)y-pbaIjn;oSYMM2dWJMX6tsA5>3QNGQII^3->manx z(J+2-G~b34{1^sgxplkf>?@Me476Wwog~$mri{^`b3K0p+sxG4oKSwG zbl!m9DE87k>gd9WK#bURBx%`(=$J!4d*;!0&q;LW82;wX{}KbPAZtt86v(tum_1hN z0{g%T0|c(PaSb+NAF^JX;-?=e$Lm4PAi|v%(9uXMU>IbAlv*f{Ye3USUIkK`^A=Vn zd))fSFUex3D@nsdx6-@cfO1%yfr4+0B!uZ)cHCJdZNcsl%q9;#%k@1jh9TGHRnH2(ef0~sB(`82IC_71#zbg=NL$r=_9UD-~ z8c54_zA@jEhkJpL?U`$p&|XF}OpRvr`~}+^BYBtiFB1!;FX;a3=7jkFSET)41C@V` zxhfS)O-$jRJ|R}CL{=N{{^0~c8WuLOC?`>JKmFGi?dlfss4Y^AAtV#FoLvWoHsEeg zAAOc+PXl@WoSOOu_6Tz~K=>OK@KL#^re(1oPrhcen@+#ouGG|g(;A5(SVuE~rp$?# zR$o(46m}O~QtU{!N-s}RfYh+?*m9v#w@;=DEXI;!CEf0bHEgI<~T7&VnIvtG%o=s@3c zG1AT(J>!bph%Z1^xT_aO>@%jWnTW=8Z^2k0?aJ(8R5VA}H+mDh>$b9ua{)I5X9$%b z&O%F;3AIW&9j3=Q1#8uL%4_2mc3xX2AdzYJi%#Q#PEY3lk<#u=Pc?EJ7qt4WZX)bH481F8hwMr^9C^N8KUiWIgcVa=V` z4_7By=0Fkq>M6N?Bis+nc$YOqN4Qs@KDdQCy0TTi;SQ7^#<wi9E4T)##ZVvS(SK4#6j^QjHIUh<0_ZD2Yl+t?Z2;4zA zvI<(>jLvJae#sIA`qHl0lnkcU$>Rrkcnp{E;VZwW`cucIIWi{hftjEx-7>xXWRsa4VH(CCyuleyG8a+wOY8l*y>n@ zxZb}o=p9lR)9N^FKfkvPH-t2{qDE=hG8Z!`JO>6aJ^hKJVyIV&qGo*YSpoU(d)&OE ziv2#o`&W>(IK~sH{_5aPL;qcn{2%Gae+r5G4yMl5U)EB>ZidEo|F@f)70WN%Pxo`= zQ+U-W9}iLlF=`VeGD0*EpI!(lVJHy(%9yFZkS_GMSF?J*$bq+2vW37rwn;9?9%g(Jhwc<`lHvf6@SfnQaA&aF=los z0>hw9*P}3mWaZ|N5+NXIqz#8EtCtYf-szHPI`%!HhjmeCnZCim3$IX?5Il%muqrPr zyUS#WRB(?RNxImUZHdS&sF8%5wkd0RIb*O#0HH zeH~m^Rxe1;4d(~&pWGyPBxAr}E(wVwlmCs*uyeB2mcsCT%kwX|8&Pygda=T}x{%^7 z)5lE5jl0|DKd|4N*_!(ZLrDL5Lp&WjO7B($n9!_R3H(B$7*D zLV}bNCevduAk2pJfxjpEUCw;q$yK=X-gH^$2f}NQyl(9ymTq>xq!x0a7-EitRR3OY zOYS2Qh?{_J_zKEI!g0gz1B=_K4TABrliLu6nr-`w~g2#zb zh7qeBbkWznjeGKNgUS8^^w)uLv*jd8eH~cG-wMN+{*42Z{m(E{)>K7O{rLflN(vC~ zRcceKP!kd)80=8ttH@14>_q|L&x0K^N0Ty{9~+c>m0S<$R@e11>wu&=*Uc^^`dE9RnW+)N$re2(N@%&3A?!JdI?Vx;X=8&1+=;krE8o%t z32Gi2=|qi=F?kmSo19LqgEPC5kGeJ5+<3TpUXV3Yik_6(^;SJw=Cz`dq(LN)F9G<$ za-aTiEiE}H(a>WITnJ+qG$3eCqrKgXFRiIv=@1C4zGNV!+ z{{7_AulEPXdR+~$sJ+yHA73j_w^4>UHZFnK$xsp}YtpklHa57+9!NfhOuU7m4@WQp z5_qb`)p|6atW#^b;KIj?8mWxF(!eN<#8h=Ohzw&bagGAS4;O^;d-~#Ct0*gpp_4&( ztwlS2Jf#9i>=e5+X8QSy**-JE&6{$GlkjNzNJY;K5&h|iDT-6%4@g;*JK&oA8auCovoA0+S(t~|vpG$yI+;aKSa{{Y(Tnm{ zzWuo^wgB?@?S9oKub=|NZNEDc;5v@IL*DBqaMkgn@z+IeaE^&%fZ0ZGLFYEubRxP0WG`S| zRCRXWt+ArtBMCRqB725odpDu(qdG;jez|6*MZE_Ml<4ehK_$06#r3*=zC9q}YtZ*S zBEb2?=5|Tt;&QV^qXpaf?<;2>07JVaR^L9-|MG6y=U9k{8-^iS4-l_D(;~l=zLoq% zVw05cIVj1qTLpYcQH0wS1yQ47L4OoP;otb02V!HGZhPnzw`@TRACZZ_pfB#ez4wObPJYcc%W>L8Z*`$ZPypyFuHJRW>NAha3z?^PfHsbP*-XPPq|`h} zljm&0NB7EFFgWo%0qK`TAhp220MRLHof1zNXAP6At4n#(ts2F+B`SaIKOHzEBmCJ3 z$7Z&kYcKWH&T!=#s5C8C_UMQ4F^CFeacQ{e0bG?p5J~*mOvg>zy_C{A4sbf!JT+JK z>9kMi=5@{1To&ILA)1wwVpOJ&%@yfuRwC9cD2`0CmsURi5pr2nYb6oBY&EmL9Gd@i zj{F}h!T*#a<@6mKzogszCSUCq5pxGeCq-w2|M>ZzLft79&A-&!AH~#ER1?Z=ZavC0 z)V05~!^Nl{E5wrkBLnrxLoO|AG&hoOa6AV2{KWL#X*UItj_W`}DEbIUxa;huN0S#` zUtXHi+cPyg-=Gad`2Aw-HWO*;`_&j9B3GHLy(f^@Do@Wu*5{FANC+>M*e6(YAz4k^ zcb_n4oJgrykBM1T!VN(2`&(rNBh+UcE}oL@A~Fj}xf0|qtJK?WzUk{t=M15p!)i7k zM!`qg^o;xR*VM49 zcY_1Yv0?~;V7`h7c&Rj;yapzw2+H%~-AhagWAfI0U`2d7$SXt=@8SEV_hpyni~8B| zmy7w?04R$7leh>WYSu8)oxD`88>7l=AWWJmm9iWfRO z!Aa*kd7^Z-3sEIny|bs9?8<1f)B$Xboi69*|j5E?lMH6PhhFTepWbjvh*7 zJEKyr89j`X>+v6k1O$NS-`gI;mQ(}DQdT*FCIIppRtRJd2|J?qHPGQut66-~F>RWs=TMIYl6K=k7`n1c%*gtLMgJM2|D;Hc|HNidlC>-nKm5q2 zBXyM)6euzXE&_r%C06K*fES5`6h-_u>4PZs^`^{bxR?=s!7Ld0`}aJ?Z6)7x1^ zt3Yi`DVtZ*({C;&E-sJ1W@dK29of-B1lIm)MV4F?HkZ_3t|LrpIuG~IZdWO@(2S6& zB2jA7qiiGi%HO2fU5|yY#aC<57DNc7T%q9L>B_Qh@v#)x(?}*zr1f4C4p8>~v2JFR z8=g|BIpG$W)QEc#GV1A}_(>v&=KTqZbfm)rqdM>}3n%;mv2z*|8%@%u)nQWi>X=%m?>Thn;V**6wQEj#$rU&_?y|xoCLe4=2`e&7P16L7LluN^#&f1#Gsf<{` z>33Bc8LbllJfhhAR?d7*ej*Rty)DHwVG)3$&{XFKdG?O-C=-L9DG$*)_*hQicm`!o zib(R-F%e@mD*&V`$#MCK=$95r$}E<4%o6EHLxM0&K$=;Z#6Ag0Tcl9i+g`$Pcz&tP zgds)TewipwlXh0T)!e~d+ES8zuwFIChK+c4;{!RC4P(|E4$^#0V*HhXG80C;ZD-no z!u+uQ;GCpm^iAW&odDVeo+LJU6qc$4+CJ6b6T&Y^K3(O_bN{@A{&*c6>f6y@EJ+34 zscmnr_m{V`e8HdZ>xs*=g6DK)q2H5Xew?8h;k{)KBl;fO@c_1uRV>l#Xr+^vzgsub zMUo8k!cQ>m1BnO>TQ<)|oBHVATk|}^c&`sg>V5)u-}xK*TOg%E__w<*=|;?? z!WptKGk*fFIEE-G&d8-jh%~oau#B1T9hDK;1a*op&z+MxJbO!Bz8~+V&p-f8KYw!B zIC4g_&BzWI98tBn?!7pt4|{3tm@l+K-O>Jq08C6x(uA)nuJ22n`meK;#J`UK0b>(e z2jhQ{rY;qcOyNJR9qioLiRT51gfXchi2#J*wD3g+AeK>lm_<>4jHCC>*)lfiQzGtl zPjhB%U5c@-(o}k!hiTtqIJQXHiBc8W8yVkYFSuV_I(oJ|U2@*IxKB1*8gJCSs|PS+EIlo~NEbD+RJ^T1 z@{_k(?!kjYU~8W&!;k1=Q+R-PDVW#EYa(xBJ2s8GKOk#QR92^EQ_p-?j2lBlArQgT z0RzL+zbx-Y>6^EYF-3F8`Z*qwIi_-B5ntw#~M}Q)kE% z@aDhS7%)rc#~=3b3TW~c_O8u!RnVEE10YdEBa!5@&)?!J0B{!Sg}Qh$2`7bZR_atZ zV0Nl8TBf4BfJ*2p_Xw+h;rK@{unC5$0%X}1U?=9!fc2j_qu13bL+5_?jg+f$u%)ZbkVg2a`{ZwQCdJhq%STYsK*R*aQKU z=lOv?*JBD5wQvdQIObh!v>HG3T&>vIWiT?@cp$SwbDoV(?STo3x^DR4Yq=9@L5NnN z_C?fdf!HDWyv(?Uw={r`jtv_67bQ5WLFEsf@p!P3pKvnKh_D}X@WTX^xml)D^Sj8Er?RRo2GLWxu`-Bsc ztZ*OU?k$jdB|C6uJtJ#yFm{8!oAQj<0X}2I(9uuw#fiv5bdF$ZBOl@h<#V401H;_` zu5-9V`$k1Mk44+9|F}wIIjra8>7jLUQF|q zIi8JCWez)_hj3aHBMn6(scZd9q#I<3MZzv}Yjc^t_gtGunP?|mAs+s!nGtNlDQ?ZO zgtG2b3s#J8Wh#0z1E|n_(y*F5-s7_LM0Rj3atDhs4HqmZc|?8LDFFu}YWZ}^8D`Yi z`AgJWbQ)dK(Qn?%Z=YDi#f%pLZu_kRnLrC2Qu|V>iD=z=8Y%}YY=g8bb~&dj;h7(T zPhji+7=m2hP~Xw`%Ma7o#?jo#+{IY&YkSeg^os)9>3?ZB z|Bt1-;uj0%|M_9k;#6c+)a)0oA}8+=h^#A_o=QR@jX^|y`YIR9V8ppGX>)FS%X>eB zD&v$!{eebt&-}u8z2t`KZLno>+UPceqXzuZe2u zHYz7U9}_Sw2da@ugQjBJCp(MNp~mVSk>b9nN*8UE`)88xXr88KXWmTa;FKKrd{Zy> zqL}@fo*7-ImF(Ad!5W7Z#;QLsABck0s8aWQohc@PmX3TK#f$`734%ifVd{M!J1;%A z)qjpf=kxPgv5NpUuUyc=C%MzLufCgTEFXQawxJo)rv4xG&{TKfV;V#ggkxefi`{sS zX+NQ8yc>qcdU zUuLM~0x32S& z|NdQ-wE6O{{U-(dCn@}Ty2i=)pJeb-?bP+BGRkLHp&;`Vup!}`pJdth`04rFPy;$a zkU=wWy;P$BMzf+0DM(IbYh`Dk*60l?3LAU;z3I^tHbXtB5H$Op=VEPL8!mydG>$T@S9;?^}mmDK)+x*TCN_Z`%SG{Hv0;P*>(P@^xe2%mUldaqF9$ zG+Oq<5)pQ+V4%%R>bK|~veGY4T&ALmnT@W*I)aT~2(zk>&L9PVG9&;LdC%xAUA`gC4KOGLHiqxbxMTA^!+T*7G;rF z;7ZNc3t&xd!^{e|E(7-FHu@!VrWQ8CB=pP;#jG#yi6(!BfCV(rrY~7D)0vCp_Ra@9 zSuu)to5ArdCAYX}MU&4u6}*{oe=Ipe09Z7|z41Y&lh`olz{lmO>wZpnwx+x4!~7@37|N~@wr=Tqf*+}4H{7GE*BvptMyhTAwu?VYEaj~BiJm7 zQw98FiwJTx0`qY8Y+268mkV#!grHt3S_69w?1TRi-P^2iNv=ajmQIkoX7OkY=Cpvk zs;-Gv?R(YEAb(%@0tNz)_r8bwE zPh75RwYWr?wPZ0rkG<5WwX|fjqCBP4^etDs4{ZF9+|c#@Y60nB)I_U5Z$FYe=SLXI zn}7T@%LLA>*fWf9X?vSD3tpXSEk%H{*`ZmRik>=se}`HWHKL|HHiXovNzTS~-4e?1 zgVLCWv@)(($B*C3rGn`N#nzUyVrSw>OiD;4`i15QHhdicm}A(CP)UO>PO(3!(=v-x zrsKIUCbJMb>=IB}20b{69IdU(vQ%Ti0Zm?VLQoL++HK(G%^P{wuH;|@Cn7Ncybw%D zDhWh??1)6j5j7RbEy-{rVefvMhV|Su8n9`m>4LU^TanMzUIy>S&UbSKJW56C(K5NX z*Ypzh@KaMD=ank_G}Di5SaDTz3@Ze;5$pkK$7Pz?SBj&njRD4so5e0Msp_p}|D8aq zDvU@2s@T_?)?f5XEWS3j_%6%AK-4aXU5!Xzk{fL%mI~AYWP?q}8X}}ZV3ZzKLFvmm zOHWR3OY0l)pZ#y@qGPkjS~mGj&J8uJnU<~+n?qrBTsf>8jN~i17c~Ry=4wM6YrgqZ@h`8`?iL&$8#fYrt7MinX)gEl7Sh_TS zOW{AyVh%SzW|QYBJo8iEVrA!yL(Lm&j6GB0|c?~N{~?Qyj^qjbs>E~lpWo!q!lNwfr(DPZVe zaazh2J{{o=*AQ|Wxz*!pBwYx_9+G$12{5G3V!0F=yB=tPa zEgh47ryFGZc;E%A{m4lJoik6@^k%E0{99pIL1gE;NqT!1dl5UV>RkEWtP)3f_5hG6 zs%M}qX?DNaI+4HN*-wn`HOjlEz0}K{o0fG~_%%c8sDq)6Z2)6msormgjhmtdzv;Hy{BwHXKp&3Bf9paw+J4r-E zBoWmEr6%r3t?F`38eCyr+)`In1&qS9`gcQ|rHBP`LlCl=_x?ck0lISju@hW*d~EQ) zU2sgl#~^(ye%SeZR%gZ=&?1ZxeU1v@44;`}yi^j0*Efg1lIFcC*xEj}Y~k|(I&}7z zXXi2xe>mc_cC`K=v8&-5p%=m=z47Z6HQUzNi5=oCeJ$-Bo#B0=i}CemYbux7I~B*e z3hSneMn$KHNXf4;wr5fkuA+)IzWs8gJ%$o0Q^vfnXQLnABJW;NRN(83Dcbu9dLnvo z6mweq2@yPK%0|R9vT)B$&|S!QO6f(~J^Z+b`G(j1;HKOq_fG$-36zvBI$`hvA94i( zGPGVo&Y%nRsodWyzn0bD0VZlG?=0M23Mc2V1_7>R^3`|z_5B;}JnIp0FI}9XNKJ^o z7xYKOFdYxX?UW~4PC!hVz86aP+dsOkBA(sz3J+6$KL`SU4tRwWnnCQN z&+C92x#?WNBaxf?Q^Q}@QD5rC=@aj8SIg;(QG06k^C5bZFwmiAyFl|qPX^@e2*J%m z1Fu_Jk5oZEB&%YN54Y8;?#l#GYHr->Q>-?72QSIc+Gx^C%;!$ezH>t<=o$&#w*Y_Y7=|PH*+o57yb>b&zpTUQv)0raRzrkL=hA-Z(10vNYDiT487% zzp2zr4ujA#rQ;Hxh7moX(VldzylrhKvPnl9Fb?LCt#|==!=?2aiZ`$Wx*^Lv@5r_ySpQ_vQ{h2_>I`Wd|GjXY?!>=X8v}wmTc+Nqi-?ln zQa28}pDfvjpheaM2>AYDC2x`+&QYH(jGqHDYLi}w55O5^e9s=Ui^hQ~xG*&TU8I}Y zeH~7!$!=a+1_RZe{6G$BICI6R2PKE{gYW8_ss!VY*4uXw8`?o>p=fC>n&DGzxJ$&w zoIxdMA4I503p(>m9*FnFeEJQ5Nd^WK*>I_79(IA)e#hr2qZ8Y!RMcbS}R z(2;{C#FXUv_o-0C=w18S!7fh!MXAN-iF!Oq4^n#Q{ktGsqj0nd~}H&v#Brb}6cd=q75>E;O8p?6a;CR4FiN zxyB?rmw)!Kxrh&7DbPei$lj)r+fDY&=qH+ zKX`VtQ=2fc?BwarW+heGX&C!Qk;F;mEuPC*8 z0Tv0h2v&J#wCU_0q-Wq9SHLOvx@F!QQQN+qN^-r-OgGRYhpu%J-L~SiU7o@0&q6t( zxtimUlrTO)Zk6SnXsm8l$`GW-ZHKNo1a}<%U4Ng z(k8=jTPjoZZ%$(tdr@17t|MV8uhdF4s|HbPO)SF`++T%r=cNRx&$BkW7|$)u%Anm; zGOv)GmwW*J5DzeI8Vk_HZ4v?Mmz$vpL#M%+vyeiW;BK6w|_S0 z{pqGZxI%-~r~b@=F#^|^+pwQE*qc8+b7!b}A$8OjqA%6=i?yI;3BcDP1xU_UVYa?^ z3o-aYI`X%p!w>>cRe_3rtp}@f1d&AQZ_2eeB;1_+9(`jpC22z+w%(kh6G3}Rz&~U_ z5_LxI)7~`nP=ZdVO&`rUP8`b-t^Vqi;Yt~Ckxauk>cj@W0v=E}$00?Jq(sxBcQHKc z(W}uAA*+e%Q)ybLANOe7gb4w^eX#gI%i56{GJz6NVMA{tQ! z3-}Mdjxfy6C#;%_-{5h|d0xP0YQ!qQ^uV*Y&_F9pP!A;qx#0w*)&xPF0?%{;8t+uWA#vrZ|CBD0wz@?M=ge(^#$y< zIEBv1wmL`NKAe&)7@UC9H^t0E0$}Odd>u4cQGdKdlfCn0`goK~uQ0xrP*{VJ*TjR; za16!CM>-msM@KcxU|HsEGgn{v>uy1R?slG}XL5)*rLTNHdYowI*;qe~TZH z|1Ez0TXrc@khWdmgZJKV6+aJVlFsv5z~PhdC>=^tL5BC|3tyMuXSdsEC3L0qw60S>ecX zi&`-rZ=GqxfrH{+JvkuOY?{d?;HZmv z2@4+ep(g+yG6W%NrdJe2%miVnb8nX{yXK>?5DC#GA6IIXU-`!?8+xm(8r)Vi;=?g! zmOK)$jQv~nakv-|`0=Z`-Ir1%2q8~>T7-k=DyG^Rjk7|!y(QO&)cBEKdBrv~E$7_y z&?K!6DP;Qr_0fbbj86^W(4M{lqGx6Mb;`H;>IDqqGG@3I+oZg_)nb=k|ItMkuX2Y@ zYzDmMV~3{y43}y%IT+)nBCIzi^Cr1gEfyrjrQ7gXAmE$4Hj(&CuyWXjDrkV~uP>9T zCX5cXn!1oEjO!P#71iyGh#q+8qrD8)h#wE#x;bz+a^sQyAntO(UhxFVUqR^dux8 zOsN=Nzw5imC7U~@t^#gLo}j#vge3C6o(%0V5<0d~1qlxe4%yD~{EDGzZ40)ZIXytB zg3^NFa(98n#OwV!DJqgy;xitYp)Q(W$(J0<0Xr5DHFYO$zuUkC(4}Zv2uB`O@_TR7 zG3Ehp!K;YLl%2&*oz3`{p|hj`Bzd(@BMVVA2ruucGsD0mj`^a1Qw3WsT7_z)c_<&j zvy(u5yod#@5~XT5KRPqKKp*2Q`rN!6gd#Wdh9;806oaWGi6~pB78)SYEhIYZDo*^} z-93olUg^Vh29G^}wQ8p(BK0(<7R6(8><}Bia@h%62o%ONE`~PiaIdfy!HGUm0GZdJ z&^aK^@JP|8YL`L(zI6Y#c%Q{6*APf`DU#$22PjfSP@T4xKHW~A(vL$pvf+~p{QLdx^j4sUA;?IZ zVWID3OA_VkZ_3?~Yy1yn?4Ev^r}1~c!n9;Z7pRn*D$^J%4QyWNvPkKF5{{bMBefvT zFZu|hco!0Me-__dyLe6S!}>m?I-x%1{Zr3_Qi!(T@)hh%zBE1my2AWl^XY#v%TSX3 z;?rn8Chf+?>SQ|v8gl$*f5dpix{i;?651ezum2tQCU`9sKxuZG2A9o(M~}G`*q2m#iW# z?0fJS+j_XxOk1fb+Nx6$rZqhg!x}eO!3nMy6a@4doqY&?(c`8$^B?0InG4T&{mu*3 zpcYaf)z__Dgr%+6UFYYXSu(oRrPYGviL~FKc{0X%tnt+9slAC|W0F8l^(@8qDXks~ zOZgs?O-6e-12Q>w5d?|E$P&oyah^mqd(Cu#uNtjCpp&F}G&biuW49LGkFCDEYe0S* zo-W_}-yR$%Z^03i8{&R&oU1BbY9$ER3RR5LjocL5er=CclJwCH>M6ge$R*Wi zd3zUoE*~?a1owq&DiT2#_Q)~tr$;Q=BJrMHrG@j3^J=#U3 zmd)ubgUu(9g(qmjx~7+!$9^%~fpi9$*n=+HfX&<>a}qkD;Ky@piqolGdF>VEX?(!DuO z{=7v}0Y|$@o3c`s^K3&3uMD0T1NMMrgwn$+g{=Tr&IHH@S`Aj4zn z{Mpln$!B->uUYTFe+75e!ee*euX`W%xA&g!-%s-YJ-sJP*(~t=44RSN6K5u7}a9;40`KN#fg#N>-s?YE6*qS9zkP2*=!a%O&aJ4>)JR>{O6n)(@ z$2mBny!kLLgnPgrX&!fTVnSXLEY}ZR{fLL4Jw;uI;)DhJJ<;%5&X%lg5)mYwwyHK=W zS`3yPe&Ncy_OA!;HvQV1TI3}7jib>EhqT!PZIoDg_Wm4OraFX|nGmCsXj|{&g!(_; z;(_uG68gxxy{T#wPPuETHggw6G8nCyc`=x89;arkuB%&7rbL&VzCm|jQFg8me78tu z2l-K|IsFgX@am)(c=1IWYX5fhCjIZ&9MBs9(Qg*`U5T`@H2xqzQxj`1bK#2gmDn2=yI!n0*6A2{JuA3~uX7 zsXocdxHHMV^?dsW+s}S8j8Mq!pjB8=NytY%-MEgx+HnavDcotwYmA{J%RzlLhZ{?t-W6 zr-JA(qw%OVMtv?N?75aid-cY`ZJLFT`fh-fZ0()^P(3wyQ`wDHG$9cUmEr^~!;iGV z#ukG&nXeLHarXD$=({)#Es!?%=2*`or!FE4N6XWEo>>`}ocE?kmQb+2JP;-))sn0V zoC6&be>gf!XD#yJO`FCF(Ts|~ zUbO#y44!V-U|&SEr1#r^_fJ1Ql3isjfCVAfvNga7OBJG^YAP`r8d{))?5D{xm+FB~ z*>D&s+(Z(o*)gx|EpJAYlnk@A&=zpkYvak{W~Y}~8M_p7Uu1bY#7m{Mq-#4-xw3lH z{(8=+O+WrU)^C(;qRm%NiKnO+<0W6EF|>n#fw%OKxr!@d%dWHOmv~#M2{eIlxaRW% z;k6v=< zZ{5W}@ik?!__~T?0QX0xX^^}Isw8Ey-yXCwQkS!)xT-ZdV6A`#HdMECf78X){%6)7 znLSKwqK}!hdkVk2QjAZ?j%&Id%WY~^<$ntL2p8J;eq$VCp%Cg{)oW&%Z3vp6ihm9D zIlPC#zVE^>62fNwZqsk)mt+E#rrU@%4vWtkYK)Qv$a*}$T2ZJCtTFI`tuLb*7j`!^eR`?d9h2TjF-h2Yr+ z){T|kWBNyrA5vpZE{Ez_)pG7Zf%QXqW)R@(<_0oOP?cwg&gib`IjKTzN_R*5A)G>_ z1r#qXr5i)U$$wv(kXfodOg=h$UZk78c@50K^wOMcKCx26s{q}vdOioj1n!&if0FRY zSi@$}gn4KW;2<;+lY?&>M6GNrRtfUTEIzqih@yLMQA2(17m3)hLTa@zlj=oHqaCG5 zYg71D3e}v36DjH++<*=MXgd2q&dP^6f&^KctfDe(SQrvy5JXC@BG#|N_^XbfxhcV) z>KV$aMxcL*ISc0|0;+<2ix7U7xq8m48=~j!a`g?SzE5}(Y;hxqEHJg_+qB99$}py7 z*ZPXL?FKLA>0uVicvq3okpoLZE#OG@fv^+k0{35pf`XdVT)1< z#mV4mcikkivZcE(=0rgfv&#+yZJrAOX&VDL(}Zx8@&$yi4Y1kmEK&uL<}ZqWr05mr zcSwaqH=squnLs+UCn@yp#WNQuIv$~B*sN_NAACD>N3k_$E(j~}Uvqda!_ zZcu7UrsR_q-P2YTrg|lijt8kyqL>T@ab#-a7i>%#*eoxFfgx(FoPa(y1nDI{z#Pz^ zfF~)6RBc?#ivEF<@XVD*#9r^r-;*<^(tE%UtWw^oom83;$5d{UoUbmAP(3Z)14YTK zMXQ#mz9yw>*8D^82vL^|%lyo|ZiQPd&{<*wCZI%up=wadl~C~cRJ!=Hjc&F)FNlnd zgNI|iSIMyqh=qV(z+HbldU4}!sqMs1R?t*RV!S*WW>qW_GF4NJ&vb-{2sJjiTIpL; z{bC@V&EhO|>GuDv7`%$kO<-P@^VI+y zl0tXGm|eISy)fiY3m8_Yaz>`Q=B(Yi8EH71{wfM*8ziS3BIju?26ujw==Xh4x5rH71h?Z859IWq(i#9 zLt0wt?(QBsL(q4yCv&g4t0jJvu^@FtJJk`8YXb{{(OdTS%rGxnPR)xY#6=?AWjD5M2n z5GZ@@ulO|JN34J-2y*-Nh@6|?RkFHwSj$e}p}mbc3Y}*el{O31RU0Z_E48@5O~5n;kDJy}a$x&Lc;27DTvAd@s^9>IA@$q{m6K?eZqOJGKpgCT!Zhld>#d^DAK+MDP}|3h zZ{i!ENw;mW62Pq^|FY#w?@8U6Nvjgi(sKW}&uvgjz0YIS>%Sxk1`5 z`qk`C2*bWd|0I4L=_~s(^2F$Bv7OTjo*G+gBD=Rq-~$7t{Bo|mmck(d6ywQ*UbIjkS>qtkH~Zs(sq zEYNB4xxdYmy+G=${gOjGGfSQQLi1D*{&en*3{wyd7U3M)y^FX(+d)eFi?9oMy@64c zwL?!q#*eJ$eayb4lc!B$W%M4B$4dH>9eFXwjfk5U@}6vXOWDiiLMYP3^VYlG$yDjaC({9tyL4NxPb{x=ADdJ7Bl5EHzU6h-Cbke zwi+34LGVF=G%>d5Q7C>n!)%!LT`UZ0v^YN1WrcjC(pS!&vek-SK#kj^EL9!l?TvY% zOkz%!#5Cf^2JFrvNeU5ZL1_aI(M~e4?~kId$T!A@Z$?f40q#~5HuElkRMQV+6r0>J zK9y=%I^m-_xwRNyO<2Zq-0W6!frE$jT$C3Qi3d>0911QPc`Ky6`~Y<)?mMy*u`nz8 z={b()Z;8DqbWJ?MdOsaF6Zn)$d>DQpRHM~bD3cq=Rw_fzWpiwtJFY`BF}hTFCeh+C zs-4A}MCP}`EInNzh3hRoZ6L1a`J7}T&wh9#HItmHBCRwefpQ97*u{--QH=5>MSZud zv_%DacJS+lsxlJ0q=40vs-8P$Q$_Pt)JM=)|1dcFO&JWY8KwhiP$a&Ua*Z z$BTW#lu4QZna#vZECq#Q?Up_(@`0#(@~0?mG{qA#^rZDq^&6T=pbGL8nU?BY-TwKE zPmMqhP_w?q1B~|43T5=Hl(Bi-+{yY;Acv4i9u}oWC+@^i*}l}=dg`Y~E%dTn;rqj5 z&3pLFHjC62jcxW_a@Jj2Ce%eToCB!6OV*6I0!XF9Hq7orpm-RpizSSHx890&_kCQ% z$cKVw-`WnDvv5Lq?L!qGDcUPtgmotX=C`~Smjg&oM5V?}gAzL%WkRwLmNZyrCbKwC zcsUD3O0ruLr%s`B5W)IYjzLTXcAqinas75T_j&1_m!m!^ORvk6_bYvK||DIVE@IUjWQ z0dQ(H9=a-c`@{Q=uj?JC8g`r$a>)gR#=2%vuea5B_BAp;*QX&I;N?>jHYFR=q?8sq zatBJBYX`tr1BQxIgACJ==*ivk$UjW^Maod6-=SzI3MMUbCqu!3wVHt!Be?M@)2aK+$Rv(?iH18-}e+rDznPRv< zi!{-5NNHE)eqVEeYl>F5S{6w^8L$0p7l|M;(^c+Ei|{V7!!8;xiDx@QK4Pl8Iel7N z*9%$ISyQPK_+5tc2c9jhX%sfIOCZf-E%K9X7Z6N0Nvp!~v(KAZvWnaHK^SQSragIF zVIC_7tGTXeU(TRqj?owTmj{SXNtf7;9evoBURMB5R`8R1$@$}FCS%ugA{4igxOhRi z*q_y$&&!mHF1$S}2279&m0^nFxDV#WvV&?Pphq(craPjcBtveg0Nqdm9tXL4lN{t= z?BLepVnp$U5KskjvVX-GjEf=M3mOTZb|Z$Hp*yytey0C^{cH*v>gqF&-j?gcEj4)l)cdGBmB(^HrSe_)qzf z+TZ^Yo4|GWz=Oi3m`r(hV`iZHb_mu63g(JXPMW4p9JhL_(tg+XQnmR0&52UUA|nZI zvjwOx(fNtZ`8!#|4$7GoJPQ`;T?hKOi`^`kFOyX;C4KfC(U-(CX?Qh2!RTe!4raMP zjLaC7qL_tJ?^0!T9ibZe!m-x!u7o%2dHK{uYZ~#+vERAv-G-MQeYQ*~DILuFpu02u z(Qc)=bHqb4{fs+hdKa5etlX z3EW#vlbEZmWT>X{3WbgW)8~u=8IGuRc<=?KoDXg5V`jf%i^Ai`Cd9=&FH6d|N9uJl z>QhxtW_{}H10BF}GQNitk~V=GnB%NI1Xv-6-OeaI&Amg0s{4i4;HhP$6oc(L-}yHt zej63({`5VLSoIef7D3Z9BA5x<9$^x?PhV=6A@Nu=QiJo@*o?M@*6-UA@EdV@bQCR< z9>{N%eK;Y#U-@XDBBCT^j=?<|y|lsAWrXsf`t%4VT{)63oxQe^u_5NuOq{rsrRd}Z zOx&OldRtR4leEX#r$9`gPJtbHccH!JgZK&3x`tJ<_{kv)E?$LhZ?brv`Cc}X%cWC7<@6yqM2O&m(rB`1v-TiqcQmA5n$rbGJ4zs({=R-I%6}*^UQ)wi9WuzW%Ri%&5 zTdd%>+GvADk+4q#3s5qne99`MC)X_#=p1!d?(mcKDW=Efc31Jso)9M49O0OMeP&7~ zIm!vorpxBSbvSiczr^?WP&e&-!3GLxCIaR5?PGeLgwYT;lYu9UE8SwmXR(D?A^s`7 z^F4di(+oHh%$DZjj7F3_-Y9}k^uCKeSC?Jd7h>RZIDZ{wcbh|9w4)p$dmv7|gX1n& zkrYjSso~;~qMMzZUQ5AC+GUvuj@y{4E&&v(+OE-rS^J7iE~Yz1 zCQ9hAI&0X2_H8CKZMqo00MsxtwjvM{`AdSaZ8#Y?5zPI;a+0`JF52!uVwr@5Ufctm zm;5G%gI&utfGa~fv6!jHh9d1r3TYD zEOlrbyFnDl5J%sEO>HErK~WWE6I$_eXp!dbphDf zc;~oWDQylVa=y?q;c>SKzvZ~R(ZE2csFwf@10@zaZxFAYWaV9TFMh(QuqxNhPUav~ zzCkoe8-lM{?vh}kdM6EMCH(eLK3Rt{HsEJ+4fve=xAVq(cUc9fO9g1%zI+QfFOb@0 zePFU(&?Np9w3&xs)ZwPnQniC0%xs8(Hyx{7*Ot51*`9&2^h7@!nmzuF`3pl8ep#Ls z<)nk7ts}`9tGgaVJWC-3w;B~$juY6m+7XgfzjR4I=oV}E9LRGf4@cI>d3z%CYyURI z7lRn11g!D34zI6|26>?CELeIh?cEv_GCCMd5&g<=9-)pe8iXINQ}4IljYsQyfRz|( z<%w=HN4ZOQKJ9e7DOUhjA7A%-xcR%2`@1?U&u}rvqNc_8l9dUT_S`4TKJ;yezIdp} z?qDAfx6IHQ7YlO;EAP%d4U2O7jU`Uh(um!J`hJ_3&mmQez8AqWLQEftYJuMdCj27t zoV#b!c0d8al0j1yveY6)U#kPCh%OfL>P=%WE^LQew^k-QqZ{rjX6PqOd2K7>1^VUB z`&H@+vW=wH0UY>88nXCH@RKCY&?bR%8-53b{;@>|;uzDd5f`Z% zaSC<8OLh|b@ZnBET?My38fV9~ku2cPfcWZl7nW|pkQKfFlp@xRt+K0Tj@gdvVAQXP z?i45RNE4W#Kf0%Pp2=?hESkG}EK557cwn0r1{uWeG53_tb!9bg&R8R_d4s5N0poc- zr>1g0W~1oha&#@_irbqnL)jJ@Z=y7J3fCQ@qlr{6(%rSs2rpkS1QIU^tieJ-xq%nd ze-C=#{@E+Kzb&SJ2KM~9q^4Yk^jyXa#{;P)y`YsFvfzX?%V~r6GciP4eX~$vk{-C? zeipAYsMSp`Z~&-Jc*dt}m-A_w&cnb#~sIdbU{uCayd>nWKDxQ9!%R zTrgS~+>TqXgrN~e2&eeWdPhuHP2*#K1=f^B@UGZBjFq- z;mtKYyul9ZNuq89XEoeSg7^qld5^R}FHpbyRyk1pRPMDO$_Kqi*sp1hk&UpUKc!V! zJZpCQc!)@X+%qOQMP)CU@Qe|=IG@|DZ~o#j>TBFQxH>8rJ#0y`XO9ukvc)kJ6LY3$ zY}{(tri#32!LjVY^exC3Ky)i$NY6v^*>X5y8F65pYYjt^T^X<=zm=)Cr=>dcId>?I zR^0I?)=)|}ak7wG)&Ar#A&60BRp}&NWFPy7zt)yl3aObS?sB8fxfU9ayR{$#%S<#3 zrsbmi#bDSP)@w%iYS%&wyyIB??LJ0Q%aD^!XXYk3)tQt~x_YU?y4KVKl{MJ)KSz&f zV;tJ1smY(dLM6zZXVAWND3L|(W=q~HjA6OkjQ+kx-EuqtaaQQPaa=2_wwuW@G*1>e z_TqB;+1@yuHg}YYpEJL&Sw~jD3Xeb(Wo(-nz6`#gbP7?agYT>j_R%+^h{1>7W&cP{s8epLY9Ky6mU*u*!QBn zI7T~WL-_qj+~Hdpr}qtfjZmD;eI%H0SP~~ifqoD59-q)R9_Z zKr6OeoZT!Za#k5yo&CCmzLbGP*6ggJ@2QPhIY^aMXjVjQ@D+-E#qmAjuL{o@NCUDF zFy)B~$j`rK7Iz$L>_Jl~O?IJu2P3 zlHQ@${Jgcvp`PKu7p;6Fr=4y1?8nJ;=~jls^gx4&_O4+)C-OGc5)L0+R!&uI&qQID zhV&ZQ@+2={Z|2F%WoOu9Ljt}|0r;!e zCBx(uAViqOffibUBOVEH_IlV=57ZQSQ~Te5(wmsO+o_CCNAgCJzZ3ly84J34_Zf#SwQ9q8i41 zE>u$JuO$kQq*W6MDo$Eu?3jJAFUt&>Qy#K{lT-Vx z6=kceU^v`;vBRoFxQED5TL+=>QJ!iaxV^Z2r#%CaaEWgbs1ysT$&~sem&74AEC!;< zcGDH;CENBJ&hfI!@G5ezCK!sXzdB@m#a(q8KeX;U=yl6AujNz z{}huJlo1yL$DlAsi{12aS?CJ*{xuIIV4wf-V6E?L4E!5BWMQ0Zh4uel*xZJ}QQuPE z-u#DdD6hH6`;nVJ>O}8iuWxH>Z2vc>a;iFbm)nrbj$ps$6aa4TjfVZVZr7dK+E_E# z+S`ErJDM9i{HX815lax33Wl(;H~m|sF28cs+hB$%2pjyXgubo5p_%ay3!*?212bxX z@1{$rzY6~DK*{`5@oRm0>(9INQX61!{Ip#NymIM*g~u=D)UFH!NcfQ(AsZXVOPv5) zX?=4bI9>9;>HvTACiBNDt)x;_}tsJousTuWrG- zDUSM9|4|IRSy@PhdB$sAk4b;vRr>Nt@t3OB<#_*dl_7P>FGcFF3-DA?KBW00A<;2=*&`^P8}cEZW!GSO9(+{;-V@ zd%%C8KEDYD$pC#x%zb4bfVJ|kgWcG0-UNZT9@2=R|Wz+H2iJ2A29LV z#Dye7Qn~^KUqOIS)8EGZC9w+k*Sq|}?ze$| zKpJrq7cvL=dV^7%ejE4Cn@aE>Q}b^ELnd#EUUf703IedX{*S;n6P|BELgooxW`$lE z2;lhae}w#VCPR>N+{A=T+qyn;-Jk!Dn2`C1H{l?&Wv&mW{)_(?+|T+JGMPf)s$;=d z5J27Mw}F4!tB`@`mkAnI1_G4%{WjW<(=~4PFy#B)>ubz@;O|2J^F9yq(EB<9e9})4 z{&vv)&j^s`f|tKquM7lG$@pD_AFY;q=hx31Z;lY;$;aa>NbnT| kh{^d0>dn0}#6IV5TMroUdkH8gdhnkj_&0LYo6ArC2O!h?t^fc4 diff --git a/12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.properties b/12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/12SpringBoot&JPA/mvnw b/12SpringBoot&JPA/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/12SpringBoot&JPA/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/12SpringBoot&JPA/mvnw.cmd b/12SpringBoot&JPA/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/12SpringBoot&JPA/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/12SpringBoot&JPA/pom.xml b/12SpringBoot&JPA/pom.xml deleted file mode 100644 index 71b792d..0000000 --- a/12SpringBoot&JPA/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - 4.0.0 - - com.consumer - consumerSpringBoot - 0.0.1-SNAPSHOT - jar - - demo - Consumer project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - com.h2database - h2 - runtime - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/12SpringBoot&JPA/src/main/java/com/cg/ConsumerMain.java b/12SpringBoot&JPA/src/main/java/com/cg/ConsumerMain.java deleted file mode 100644 index 19cc2e5..0000000 --- a/12SpringBoot&JPA/src/main/java/com/cg/ConsumerMain.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.cg; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.data.jpa.repository.config.EnableJpaAuditing; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; - - @ComponentScan(basePackages="com.cg") - @SpringBootApplication - public class ConsumerMain { - - - public static void main(String[] args) { - // TODO Auto-generated method stub - - SpringApplication.run(ConsumerMain.class, args); - } - - -} diff --git a/12SpringBoot&JPA/src/main/java/com/cg/controller/CustomerController.java b/12SpringBoot&JPA/src/main/java/com/cg/controller/CustomerController.java deleted file mode 100644 index 0822c94..0000000 --- a/12SpringBoot&JPA/src/main/java/com/cg/controller/CustomerController.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.cg.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.cg.model.Customer; -import com.cg.service.ICustomerService; - -@RestController -public class CustomerController { - - @Autowired - ICustomerService customerService; - - @PostMapping("/customerCreate") - public ResponseEntity createCustomer(@RequestBody final Customer customer) - { - - Customer cust=customerService.addCustomer(customer); - return new ResponseEntity(customer,HttpStatus.CREATED); - - } - - - - -} diff --git a/12SpringBoot&JPA/src/main/java/com/cg/dao/CustomerRepository.java b/12SpringBoot&JPA/src/main/java/com/cg/dao/CustomerRepository.java deleted file mode 100644 index 43c4d51..0000000 --- a/12SpringBoot&JPA/src/main/java/com/cg/dao/CustomerRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.cg.dao; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.cg.model.Customer; - -@Repository -public interface CustomerRepository extends JpaRepository{ - - // List findByCustomerName(String customerName); - -} diff --git a/12SpringBoot&JPA/src/main/java/com/cg/model/Customer.java b/12SpringBoot&JPA/src/main/java/com/cg/model/Customer.java deleted file mode 100644 index c5f798b..0000000 --- a/12SpringBoot&JPA/src/main/java/com/cg/model/Customer.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.cg.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.hibernate.annotations.GeneratorType; - -@Entity -@Table(name="customer") -public class Customer { - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - @Column(name="customer_id") - public long customerId; - @Column(name="customer_name") - public String customerName; - @Column(name="customer_address") - public String customerAddress; - @Column(name="payment_mode") - public String paymentMode; - - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - /** - * @param customerName the customerName to set - */ - public void setCustomerName(String customerName) { - this.customerName = customerName; - } - /** - * @return the customerAddress - */ - public String getCustomerAddress() { - return customerAddress; - } - /** - * @param customerAddress the customerAddress to set - */ - public void setCustomerAddress(String customerAddress) { - this.customerAddress = customerAddress; - } - /** - * @return the paymentMode - */ - public String getPaymentMode() { - return paymentMode; - } - /** - * @param paymentMode the paymentMode to set - */ - public void setPaymentMode(String paymentMode) { - this.paymentMode = paymentMode; - } - /** - * @return the retailerName - */ - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", customerAddress=" - + customerAddress + ", paymentMode=" + paymentMode + "]"; - } - - public Customer() { - // TODO Auto-generated constructor stub - } - -} diff --git a/12SpringBoot&JPA/src/main/java/com/cg/service/CustomerServiceImpl.java b/12SpringBoot&JPA/src/main/java/com/cg/service/CustomerServiceImpl.java deleted file mode 100644 index fd909ad..0000000 --- a/12SpringBoot&JPA/src/main/java/com/cg/service/CustomerServiceImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.cg.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.cg.dao.CustomerRepository; -import com.cg.model.Customer; - -@Service("customerService") -public class CustomerServiceImpl implements ICustomerService{ - @Autowired - public CustomerRepository customerRepository; - - @Override - public Customer AddCustomer(Customer customer) { - // TODO Auto-generated method stub - customerRepository.save(customer); - return customer; - } - - @Override - public Customer DeleteCustomer(Customer customer) { - - customerRepository.delete(entity); - return customer; - } - - - -} diff --git a/12SpringBoot&JPA/src/main/java/com/cg/service/ICustomerService.java b/12SpringBoot&JPA/src/main/java/com/cg/service/ICustomerService.java deleted file mode 100644 index d4131cf..0000000 --- a/12SpringBoot&JPA/src/main/java/com/cg/service/ICustomerService.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.cg.service; - -import com.cg.model.Customer; - -public interface ICustomerService { - - public Customer AddCustomer(Customer customer); - - public Customer DeleteCustomer(Customer customer); - -} diff --git a/12SpringBoot&JPA/src/main/java/com/consumer/DemoApplication.java b/12SpringBoot&JPA/src/main/java/com/consumer/DemoApplication.java deleted file mode 100644 index 591a05d..0000000 --- a/12SpringBoot&JPA/src/main/java/com/consumer/DemoApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.consumer; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class DemoApplication { - - public static void main(String[] args) { - SpringApplication.run(DemoApplication.class, args); - } -} diff --git a/12SpringBoot&JPA/src/main/resources/application.properties b/12SpringBoot&JPA/src/main/resources/application.properties deleted file mode 100644 index de2a7aa..0000000 --- a/12SpringBoot&JPA/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -# Enabling H2 Console -spring.h2.console.enabled=true -#this will persist data in next run -spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE \ No newline at end of file diff --git a/12SpringBoot&JPA/src/test/java/com/consumer/DemoApplicationTests.java b/12SpringBoot&JPA/src/test/java/com/consumer/DemoApplicationTests.java deleted file mode 100644 index fb255fe..0000000 --- a/12SpringBoot&JPA/src/test/java/com/consumer/DemoApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.consumer; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class DemoApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/13SpringBootJPA(REMOVEADD)/.gitignore b/13SpringBootJPA(REMOVEADD)/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/13SpringBootJPA(REMOVEADD)/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/13SpringBootJPA(REMOVEADD)/.mvn/wrapper/maven-wrapper.jar b/13SpringBootJPA(REMOVEADD)/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/13SpringBootJPA(REMOVEADD)/.mvn/wrapper/maven-wrapper.properties b/13SpringBootJPA(REMOVEADD)/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/13SpringBootJPA(REMOVEADD)/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/13SpringBootJPA(REMOVEADD)/mvnw b/13SpringBootJPA(REMOVEADD)/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/13SpringBootJPA(REMOVEADD)/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/13SpringBootJPA(REMOVEADD)/mvnw.cmd b/13SpringBootJPA(REMOVEADD)/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/13SpringBootJPA(REMOVEADD)/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/13SpringBootJPA(REMOVEADD)/pom.xml b/13SpringBootJPA(REMOVEADD)/pom.xml deleted file mode 100644 index 71b792d..0000000 --- a/13SpringBootJPA(REMOVEADD)/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - 4.0.0 - - com.consumer - consumerSpringBoot - 0.0.1-SNAPSHOT - jar - - demo - Consumer project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - com.h2database - h2 - runtime - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/ConsumerMain.java b/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/ConsumerMain.java deleted file mode 100644 index 639966d..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/ConsumerMain.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.cg; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.data.jpa.repository.config.EnableJpaAuditing; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; - - - @SpringBootApplication - public class ConsumerMain { - - - public static void main(String[] args) { - // TODO Auto-generated method stub - - SpringApplication.run(ConsumerMain.class, args); - } - - - - - - - - - -} diff --git a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/controller/CustomerController.java b/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/controller/CustomerController.java deleted file mode 100644 index 3f1373c..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/controller/CustomerController.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.cg.controller; - -import java.util.Iterator; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; - -import com.cg.dao.CustomerRepository; -import com.cg.model.Customer; -import com.cg.service.ICustomerService; - -@RestController -@RequestMapping("/api") -public class CustomerController { - - @Autowired - ICustomerService customerService; - - // -------------------Create a User------------------------------------------- - - @RequestMapping(value = "/addNewCustomer", method = RequestMethod.GET) - public Customer NewUser() { - - Customer c = new Customer("hulk", "newyork", "Debit"); - customerService.saveUser(c); - - return null; - - } - - /*@RequestMapping(value = "/user/{id}", method = RequestMethod.GET) - public ResponseEntity deleteUser(@PathVariable("id") long id) { - // System.out.printf("Fetching & Deleting User with id {}", id); - - Customer user = customerService.findById(id); - // if (user == null) { - // System.out.printf("Unable to delete. User with id {} not found.", id); - // return new ResponseEntity(new CustomErrorType("Unable to delete. User with id - // " + id + " not found."), - // HttpStatus.NOT_FOUND); - - customerService.deleteUserById(id); - // return new ResponseEntity(HttpStatus.NO_CONTENT); - return null; - }*/ - - @RequestMapping(value = "/user/{id}", method = RequestMethod.GET) - public void findAll(@PathVariable("id") long id) - { - - customerService.findAll(id); - - - } - - /* - * @PostMapping("/customerCreate") public ResponseEntity - * createCustomer(@RequestBody final Customer customer) { - * - * Customer cust=customerService.addCustomer(customer); return new - * ResponseEntity(customer,HttpStatus.CREATED); - * - * } - * - */ - - // -------------------Retrieve All - // Users--------------------------------------------- - - /* - * @RequestMapping(value = "/user/", method = RequestMethod.GET) public - * ResponseEntity> listAllUsers() { List users = - * customerService.findAllUsers(); if (users.isEmpty()) { return new - * ResponseEntity(HttpStatus.NO_CONTENT); // You many decide to return - * HttpStatus.NOT_FOUND } return new ResponseEntity>(users, - * HttpStatus.OK); } - * - * // -------------------Retrieve Single // - * User------------------------------------------ - * - * @RequestMapping(value = "/user/{id}", method = RequestMethod.GET) public - * ResponseEntity getUser(@PathVariable("id") long id) { - * System.out.printf("Fetching User with id {}", id); Customer user = - * customerService.findById(id); if (user == null) { - * System.out.printf("User with id {} not found.", id); return new - * ResponseEntity(new CustomErrorType("User with id " + id + " not found"), - * HttpStatus.NOT_FOUND); } return new ResponseEntity(user, - * HttpStatus.OK); } - */ - - /* - * // ------------------- Update a User // - * ------------------------------------------------ - * - * @RequestMapping(value = "/user/{id}", method = RequestMethod.PUT) public - * ResponseEntity updateUser(@PathVariable("id") long id, @RequestBody - * Customer user) { System.out.printf("Updating User with id {}", id); - * - * Customer currentUser = customerService.findById(id); - * - * if (currentUser == null) { - * System.out.printf("Unable to update. User with id {} not found.", id); return - * new ResponseEntity(new CustomErrorType("Unable to upate. User with id " + id - * + " not found."), HttpStatus.NOT_FOUND); } - * - * currentUser.setCustomerName(user.getCustomerName()); - * currentUser.setCustomerAddress(user.getCustomerAddress()); - * currentUser.setPaymentMode(user.getPaymentMode()); - * - * customerService.updateUser(currentUser); return new - * ResponseEntity(currentUser, HttpStatus.OK); } - * - * // ------------------- Delete a User----------------------------------------- - * - * @RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE) public - * ResponseEntity deleteUser(@PathVariable("id") long id) { - * System.out.printf("Fetching & Deleting User with id {}", id); - * - * Customer user = customerService.findById(id); if (user == null) { - * System.out.printf("Unable to delete. User with id {} not found.", id); return - * new ResponseEntity(new CustomErrorType("Unable to delete. User with id " + id - * + " not found."), HttpStatus.NOT_FOUND); } - * customerService.deleteUserById(id); return new - * ResponseEntity(HttpStatus.NO_CONTENT); } - * - * // ------------------- Delete All Users----------------------------- - * - * @RequestMapping(value = "/user/", method = RequestMethod.DELETE) public - * ResponseEntity deleteAllUsers() { - * System.out.printf("Deleting All Users"); - * - * customerService.deleteAllUsers(); return new - * ResponseEntity(HttpStatus.NO_CONTENT); } - */ - -} diff --git a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/dao/CustomerRepository.java b/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/dao/CustomerRepository.java deleted file mode 100644 index 43c4d51..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/dao/CustomerRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.cg.dao; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.cg.model.Customer; - -@Repository -public interface CustomerRepository extends JpaRepository{ - - // List findByCustomerName(String customerName); - -} diff --git a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/model/Customer.java b/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/model/Customer.java deleted file mode 100644 index 8edca13..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/model/Customer.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.cg.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.hibernate.annotations.GeneratorType; - -@Entity -@Table(name="customer") -public class Customer { - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - @Column(name="customer_id") - public long customerId; - @Column(name="customer_name") - public String customerName; - @Column(name="customer_address") - public String customerAddress; - @Column(name="payment_mode") - public String paymentMode; - - - - - - - /** - * @param customerName - * @param customerAddress - * @param paymentMode - */ - public Customer(String customerName, String customerAddress, String paymentMode) { - super(); - this.customerName = customerName; - this.customerAddress = customerAddress; - this.paymentMode = paymentMode; - } - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - /** - * @param customerName the customerName to set - */ - public void setCustomerName(String customerName) { - this.customerName = customerName; - } - /** - * @return the customerAddress - */ - public String getCustomerAddress() { - return customerAddress; - } - /** - * @param customerAddress the customerAddress to set - */ - public void setCustomerAddress(String customerAddress) { - this.customerAddress = customerAddress; - } - /** - * @return the paymentMode - */ - public String getPaymentMode() { - return paymentMode; - } - /** - * @param paymentMode the paymentMode to set - */ - public void setPaymentMode(String paymentMode) { - this.paymentMode = paymentMode; - } - /** - * @return the retailerName - */ - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", customerAddress=" - + customerAddress + ", paymentMode=" + paymentMode + "]"; - } - - public Customer() { - // TODO Auto-generated constructor stub - } - -} diff --git a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/service/CustomerServiceImpl.java b/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/service/CustomerServiceImpl.java deleted file mode 100644 index 2b649ba..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/service/CustomerServiceImpl.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.cg.service; - -import java.util.Iterator; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.cg.dao.CustomerRepository; -import com.cg.model.Customer; - -@Service("customerService") -public class CustomerServiceImpl implements ICustomerService{ - - - @Autowired - public CustomerRepository customerRepository; - - public List findAll(long id) { - // CustomerRepository customerRepo = null; - List customerList = customerRepository.findAll(); - Iterator iterator = customerList.iterator(); - while(iterator.hasNext()) - { - Customer customer = (Customer) iterator.next(); - if(customer.getCustomerId() == id) - { - customerRepository.deleteById(id); - } - } - return customerList; - } - - /* - public Customer findById(long id) { - for(Customer user : users){ - if(user.getCustomerId() == id){ - return user; - } - } - return null; - }*/ - - @Override - public void saveUser(Customer user) { - - - } - -//public void deleteUserById(long id) { -// -// for (Iterator iterator = users.iterator(); iterator.hasNext(); ) { -// Customer user = iterator.next(); -// if (user.getCustomerId() == id) { -// iterator.remove(); -// } -// } -// } -// -// - - - - /* - - @Override - public Customer AddCustomer(Customer customer) { - // TODO Auto-generated method stub - customerRepository.save(customer); - return customer; - }*/ - - - - -} diff --git a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/service/ICustomerService.java b/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/service/ICustomerService.java deleted file mode 100644 index 7541e08..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/java/com/cg/service/ICustomerService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.cg.service; - -import java.util.List; - -import com.cg.model.Customer; - -public interface ICustomerService { - - //public Customer AddCustomer(Customer customer); - -//Customer findById(long id); - public List findAll(long id); -/*Customer findByName(String name);*/ - - void saveUser(Customer user); - //void deleteUserById(long id); - /*void updateUser(Customer user); - - - - List findAllUsers(); - - void deleteAllUsers(); - - boolean isUserExist(Customer user);*/ - -} diff --git a/13SpringBootJPA(REMOVEADD)/src/main/java/com/consumer/DemoApplication.java b/13SpringBootJPA(REMOVEADD)/src/main/java/com/consumer/DemoApplication.java deleted file mode 100644 index 591a05d..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/java/com/consumer/DemoApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.consumer; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class DemoApplication { - - public static void main(String[] args) { - SpringApplication.run(DemoApplication.class, args); - } -} diff --git a/13SpringBootJPA(REMOVEADD)/src/main/java/springboot/util/CustomErrorType.java b/13SpringBootJPA(REMOVEADD)/src/main/java/springboot/util/CustomErrorType.java deleted file mode 100644 index a506e30..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/java/springboot/util/CustomErrorType.java +++ /dev/null @@ -1,16 +0,0 @@ -package springboot.util; - - -public class CustomErrorType { - - private String errorMessage; - - public CustomErrorType(String errorMessage){ - this.errorMessage = errorMessage; - } - - public String getErrorMessage() { - return errorMessage; - } - -} diff --git a/13SpringBootJPA(REMOVEADD)/src/main/resources/application.properties b/13SpringBootJPA(REMOVEADD)/src/main/resources/application.properties deleted file mode 100644 index de2a7aa..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -# Enabling H2 Console -spring.h2.console.enabled=true -#this will persist data in next run -spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE \ No newline at end of file diff --git a/13SpringBootJPA(REMOVEADD)/src/test/java/com/consumer/DemoApplicationTests.java b/13SpringBootJPA(REMOVEADD)/src/test/java/com/consumer/DemoApplicationTests.java deleted file mode 100644 index fb255fe..0000000 --- a/13SpringBootJPA(REMOVEADD)/src/test/java/com/consumer/DemoApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.consumer; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class DemoApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/14SpringBootJPAmysql/.gitignore b/14SpringBootJPAmysql/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/14SpringBootJPAmysql/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/14SpringBootJPAmysql/.mvn/wrapper/maven-wrapper.jar b/14SpringBootJPAmysql/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/14SpringBootJPAmysql/.mvn/wrapper/maven-wrapper.properties b/14SpringBootJPAmysql/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/14SpringBootJPAmysql/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/14SpringBootJPAmysql/mvnw b/14SpringBootJPAmysql/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/14SpringBootJPAmysql/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/14SpringBootJPAmysql/mvnw.cmd b/14SpringBootJPAmysql/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/14SpringBootJPAmysql/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/14SpringBootJPAmysql/pom.xml b/14SpringBootJPAmysql/pom.xml deleted file mode 100644 index 1f26f87..0000000 --- a/14SpringBootJPAmysql/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - 4.0.0 - - com.training - springbootjpa - 0.0.1-SNAPSHOT - jar - - springbootjpa - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - com.h2database - h2 - runtime - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.mockito - mockito-core - 2.18.3 - - - org.mockito - mockito-junit-jupiter - 2.18.3 - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/SpringbootjpaApplication.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/SpringbootjpaApplication.java deleted file mode 100644 index 2608ef6..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/SpringbootjpaApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.training.springbootjpa; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class SpringbootjpaApplication { - - public static void main(String[] args) { - SpringApplication.run(SpringbootjpaApplication.class, args); - } -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/controller/MainController.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/controller/MainController.java deleted file mode 100644 index c181353..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/controller/MainController.java +++ /dev/null @@ -1,270 +0,0 @@ -package com.training.springbootjpa.controller; - -import java.util.List; -import java.util.logging.Logger; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.util.MultiValueMap; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import com.training.springbootjpa.exception.ManagedException; -import com.training.springbootjpa.model.Customer; -import com.training.springbootjpa.model.Goods; -import com.training.springbootjpa.model.Retailer; -import com.training.springbootjpa.model.Supplier; -import com.training.springbootjpa.repository.CustomerDAO; -import com.training.springbootjpa.service.CustomerService; -import com.training.springbootjpa.service.GoodsService; -import com.training.springbootjpa.service.RetailerService; -import com.training.springbootjpa.service.SupplierService; - -@RestController -public class MainController { - - - - private static final Logger LOGGER = Logger.getLogger( MainController.class.getName() ); - /* - * with help of this annonation we can access all the proporties of bean we can - * access all method of CustomerService. - */ - @Autowired - private CustomerService customerService; - - @Autowired - private GoodsService goodsService; - - @Autowired - private SupplierService supplierService; - - @Autowired - private RetailerService retailerService; - - @Autowired - CustomerDAO cdao; - - /* - * Get Customer Details using Id Handling the exception using Custom Exception - */ - @RequestMapping(value = "/customer/{id}", method = RequestMethod.GET) - public ResponseEntity getCustomerById(@PathVariable Long id) throws ManagedException { - LOGGER.info("Inside Get Customer By Id"); - String customer = null; - - try { - customer = customerService.getCustomerDetail(id); - } catch (ManagedException e) { - - e.getMessage(); - } - System.out.println(customer); - - return new ResponseEntity(customer, HttpStatus.OK); - } - - // Get Customer Details using Name - // Handling the exception - /* - * Also we can send your whole Customer Details to UI using - * ResponseEntity For now this method is just telling user that your - * data is being get added succesfully. - * - */ - - @RequestMapping(method = RequestMethod.GET, value = "/searchCustomer/{customerName}") - - public ResponseEntity searchCustomer(@PathVariable String customerName) throws ManagedException { - LOGGER.info("Inside Get Customer By Name"); - - Customer customerData = null; - - customerData = cdao.findByCustomerName(customerName); - if (customerData == null) - return new ResponseEntity("Data not found", HttpStatus.OK); - else - return new ResponseEntity("Data found", (MultiValueMap) customerData, HttpStatus.OK); - - } - - /*this method shows all customers to admin if requested - */ - - @RequestMapping(method = RequestMethod.GET, value = "/getAllCustomer") - // @PostMapping(path = "/addCustomer") - public ResponseEntity> getAllCustomer() { - LOGGER.info("Inside Get All Customers "); - final List customerData; - - customerData = customerService.getCustomer(); - - return new ResponseEntity(customerData, HttpStatus.OK); - } - - - /* - * This method add new customer to database - * Exception Handling- if users provides Null to Textbox then it will throw Proper Message to user . - */ - @RequestMapping(method = RequestMethod.POST, value = "/addCustomer", produces = MediaType.APPLICATION_JSON_VALUE) - // @PostMapping(path = "/addCustomer") - public ResponseEntity createCustomer(@RequestBody Customer customer) { - - LOGGER.info("Inside Add New Customer "); - Customer customerData = null; - - try { - customerData = customerService.addCustomer(customer); - return new ResponseEntity(customerData, HttpStatus.OK); - - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - return new ResponseEntity("Provide valid input", HttpStatus.OK); - } - - - } - - - - - - /** - * GET /delete Delete a customer details from the database. - * - * - */ - @RequestMapping("/delete/{customerId}") - public ResponseEntity deleteCustomerRecord(@PathVariable Long customerId) { - - Customer cust =null; - LOGGER.info("Inside Delete Customer "); - try { - cust = customerService.deleteCustomerById(customerId); - } catch (ManagedException e) { - - - e.printStackTrace(); - return new ResponseEntity("Given Id not found", HttpStatus.OK); - } - - return new ResponseEntity("Given Id deleted successfully ", HttpStatus.OK); - } - - - /** - * - * Another Implementation - * GET /delete Delete a customer details from the database. - * - * - */ - - -/** - * GET /delete Delete a booking from the database. - */ - @RequestMapping("/delete/{customerId}") - public String deletecustomer(@PathVariable Long customerId) { - - LOGGER.info("Inside Delete Customer "); - try { - customerService.deleteCustomerById(customerId); - } catch (ManagedException e) { - - - e.printStackTrace(); - return "CustomerID #"+customerId+" Not Found"; - } - - return "CustomerID #"+customerId+" deleted successfully"; - } - - - - - - - - @RequestMapping(value = "/updateCustomer/{updateById}", method = RequestMethod.GET) - public ResponseEntity updateCustomer(@PathVariable("updateById") long updateById) { - final Customer customer = customerService.updateCustomerById(updateById); - return new ResponseEntity(customer, HttpStatus.OK); - } - - @RequestMapping(method = RequestMethod.POST, value = "/addGoods", produces = MediaType.APPLICATION_JSON_VALUE) - ResponseEntity createGoods(@RequestBody Goods goods) { - System.out.println(goods); - final Goods goodsData; - goodsData = goodsService.addGoods(goods); - return new ResponseEntity(goodsData, HttpStatus.OK); - } - - @RequestMapping(value = "/deleteGoods/{deleteById}", method = RequestMethod.GET) - public ResponseEntity deleteGoods(@PathVariable("deleteById") long deleteById) { - final List goodsList; - goodsList = goodsService.deleteGoodsById(deleteById); - return new ResponseEntity(goodsList, HttpStatus.OK); - } - - @RequestMapping(value = "/updateGoods/{updateById}", method = RequestMethod.GET) - public ResponseEntity updateGoods(@PathVariable("updateById") long updateById) { - final Goods goods = goodsService.updateGoodsById(updateById); - return new ResponseEntity(goods, HttpStatus.OK); - } - - @RequestMapping(method = RequestMethod.POST, value = "/addSupplier", produces = - - MediaType.APPLICATION_JSON_VALUE) // @PostMapping(path = "/addSupplier") - public ResponseEntity createSupplier(@RequestBody Supplier supplier) { - System.out.println(supplier); - final Supplier supplierData; - supplierData = supplierService.addSupplier(supplier); - return new ResponseEntity(supplierData, HttpStatus.OK); - } - - @RequestMapping(value = "/deleteSupplier/{deleteById}", method = RequestMethod.GET) - public ResponseEntity deleteSupplier(@PathVariable("deleteById") long deleteById) { - final List supplierList; - supplierList = supplierService.deleteSupplierById(deleteById); - return new ResponseEntity(supplierList, HttpStatus.OK); - } - - @RequestMapping(value = "/updateSupplier/{updateById}", method = RequestMethod.GET) - public ResponseEntity updateSupplier(@PathVariable("updateById") long updateById) { - final Supplier supplier = supplierService.updateSupplierById(updateById); - return new ResponseEntity(supplier, HttpStatus.OK); - } - - @RequestMapping(method = RequestMethod.POST, value = "/addRetailer", produces = MediaType.APPLICATION_JSON_VALUE) // @PostMapping(path - // = - // "/addRetailer") - public ResponseEntity createRetailer(@RequestBody Retailer retailer) { - System.out.println(retailer); - final Retailer retailerData; - retailerData = retailerService.addRetailer(retailer); - return new ResponseEntity(retailerData, HttpStatus.OK); - } - - @RequestMapping(value = "/deleteRetailer/{deleteById}", method = RequestMethod.GET) - public ResponseEntity deleteRetailer(@PathVariable("deleteById") long deleteById) { - final List retailerList; - retailerList = retailerService.deleteRetailerById(deleteById); - return new ResponseEntity(retailerList, HttpStatus.OK); - } - - @RequestMapping(value = "/updateRetailer/{updateById}", method = RequestMethod.GET) - public ResponseEntity updateRetailer(@PathVariable("updateById") long updateById) { - final Retailer retailer = retailerService.updateRetailerById(updateById); - return new ResponseEntity(retailer, HttpStatus.OK); - } - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/exception/ManagedException.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/exception/ManagedException.java deleted file mode 100644 index 3da2658..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/exception/ManagedException.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package com.training.springbootjpa.exception; - -/** - * @author trainee - * - */ -public class ManagedException extends Exception { - - - public ManagedException(final String errorMessage) { - - super(errorMessage); - - } - - public ManagedException() { - // TODO Auto-generated constructor stub - } - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Customer.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Customer.java deleted file mode 100644 index 1b2087b..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Customer.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.training.springbootjpa.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author RamDAfale - * - */ -@Entity -@Table(name = "customer") -public class Customer { - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - private Long customerId; - private String customerName; - private String customerAddress; - private String paymentMode; - - - - /** - * Default constructor which will help spring Mapper to map all entitites. - */ - public Customer() { - super(); - } - - /** - * @param customerId - * @param customerName - * @param customerAddress - * @param paymentMode - */ - public Customer(Long customerId, String customerName, - String customerAddress, String paymentMode) { - this.customerId = customerId; - this.customerName = customerName; - this.customerAddress = customerAddress; - this.paymentMode = paymentMode; - - - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - - /** - * @param customerName - * the customerName to set - */ - public void setCustomerName(String customerName) { - this.customerName = customerName; - } - - /** - * @return the customerAddress - */ - public String getCustomerAddress() { - return customerAddress; - } - - /** - * @param customerAddress - * the customerAddress to set - */ - public void setCustomerAddress(String customerAddress) { - this.customerAddress = customerAddress; - } - - /** - * @return the paymentMode - */ - public String getPaymentMode() { - return paymentMode; - } - - /** - * @param paymentMode - * the paymentMode to set - */ - public void setPaymentMode(String paymentMode) { - this.paymentMode = paymentMode; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", customerAddress=" - + customerAddress + ", paymentMode=" + paymentMode + "]"; - } - - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Goods.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Goods.java deleted file mode 100644 index 4b57633..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Goods.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.training.springbootjpa.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "goods") -public class Goods { - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - private Long goodsId; - private String goodsName; - private Integer goodsQuantity; - private Double goodsPrice; - - - - /** - * - */ - public Goods() { - super(); - } - - /** - * @param goodsId - * @param goodsName - * @param goodsQuantity - * @param goodsPrice - * @param supplierId - */ - public Goods(Long goodsId, String goodsName, Integer goodsQuantity, Double goodsPrice, Long supplierId) { - super(); - this.goodsId = goodsId; - this.goodsName = goodsName; - this.goodsQuantity = goodsQuantity; - this.goodsPrice = goodsPrice; - - } - - /** - * @return the goodsId - */ - public Long getGoodsId() { - return goodsId; - } - /** - * @param goodsId the goodsId to set - */ - public void setGoodsId(Long goodsId) { - this.goodsId = goodsId; - } - /** - * @return the goodsName - */ - public String getGoodsName() { - return goodsName; - } - /** - * @param goodsName the goodsName to set - */ - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - /** - * @return the goodsQuantity - */ - public Integer getGoodsQuantity() { - return goodsQuantity; - } - /** - * @param goodsQuantity the goodsQuantity to set - */ - public void setGoodsQuantity(Integer goodsQuantity) { - this.goodsQuantity = goodsQuantity; - } - /** - * @return the goodsPrice - */ - public Double getGoodsPrice() { - return goodsPrice; - } - /** - * @param goodsPrice the goodsPrice to set - */ - public void setGoodsPrice(Double goodsPrice) { - this.goodsPrice = goodsPrice; - } - - - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Goods [goodsId=" + goodsId + ", goodsName=" + goodsName + ", goodsQuantity=" + goodsQuantity - + ", goodsPrice=" + goodsPrice + "]"; - } - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Retailer.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Retailer.java deleted file mode 100644 index 24b14df..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Retailer.java +++ /dev/null @@ -1,102 +0,0 @@ - -package com.training.springbootjpa.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author RamDAfale - * - */ -@Entity -@Table(name = "retailer") -public class Retailer { - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - private Long retailerId; - private String retailerName; - private String retailerAddress; - - /** - * @param retailerId - * @param retailerName - * @param retailerAddress - */ - public Retailer(Long retailerId, String retailerName, String retailerAddress) { - super(); - this.retailerId = retailerId; - this.retailerName = retailerName; - this.retailerAddress = retailerAddress; - } - - /** - * - */ - public Retailer() { - super(); - } - - /** - * @return the retailerId - */ - public Long getRetailerId() { - return retailerId; - } - - /** - * @param retailerId - * the retailerId to set - */ - public void setRetailerId(Long retailerId) { - this.retailerId = retailerId; - } - - /** - * @return the retailerName - */ - public String getRetailerName() { - return retailerName; - } - - /** - * @param retailerName - * the retailerName to set - */ - public void setRetailerName(String retailerName) { - this.retailerName = retailerName; - } - - /** - * @return the retailerAddress - */ - public String getRetailerAddress() { - return retailerAddress; - } - - /** - * @param retailerAddress - * the retailerAddres to set - */ - public void setRetailerAddress(String retailerAddress) { - this.retailerAddress = retailerAddress; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Retailer [retailerId=" + retailerId + ", retailerName=" + retailerName + ", retailerAddress=" - + retailerAddress + ", getRetailerId()=" + getRetailerId() + ", getRetailerName()=" + getRetailerName() - + ", getRetailerAddress()=" + getRetailerAddress() + ", getClass()=" + getClass() + ", hashCode()=" - + hashCode() + ", toString()=" + super.toString() + "]"; - } - - - - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Supplier.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Supplier.java deleted file mode 100644 index c0124bc..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/model/Supplier.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.training.springbootjpa.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author RamDAfale - * - */ -@Entity -@Table(name = "supplier") -public class Supplier { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long supplierId; - private String supplierName; - private String supplierAddress; - private int quantityOrder; - private int orderId; - private Double amount; - - - /** - * - */ - public Supplier() { - super(); - } - - /** - * @param supplierId - * @param supplierName - * @param supplierAddress - * @param quantityOrder - * @param orderId - * @param amount - * @param retailerId - */ - public Supplier(Long supplierId, String supplierName, String supplierAddress, int quantityOrder, int orderId, - Double amount, String retailerId) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - - } - - /** - * @return the supplierId - */ - public Long getSupplierId() { - return supplierId; - } - - /** - * @param supplierId - * the supplierId to set - */ - public void setSupplierId(Long supplierId) { - this.supplierId = supplierId; - } - - /** - * @return the supplierName - */ - public String getSupplierName() { - return supplierName; - } - - /** - * @param supplierName - * the supplierName to set - */ - public void setSupplierName(String supplierName) { - this.supplierName = supplierName; - } - - /** - * @return the supplierAddress - */ - public String getSupplierAddress() { - return supplierAddress; - } - - /** - * @param supplierAddress - * the supplierAddress to set - */ - public void setSupplierAddress(String supplierAddress) { - this.supplierAddress = supplierAddress; - } - - /** - * @return the quantityOrder - */ - public int getQuantityOrder() { - return quantityOrder; - } - - /** - * @param quantityOrder - * the quantityOrder to set - */ - public void setQuantityOrder(int quantityOrder) { - this.quantityOrder = quantityOrder; - } - - /** - * @return the orderId - */ - public int getOrderId() { - return orderId; - } - - /** - * @param orderId - * the orderId to set - */ - public void setOrderId(int orderId) { - this.orderId = orderId; - } - - /** - * @return the amount - */ - public Double getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(Double amount) { - this.amount = amount; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "Supplier [supplierId=" + supplierId + ", supplierName=" + supplierName + ", supplierAddress=" - + supplierAddress + ", quantityOrder=" + quantityOrder + ", orderId=" + orderId + ", amount=" + amount - + "]"; - } -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/CustomerDAO.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/CustomerDAO.java deleted file mode 100644 index 5dfc1a0..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/CustomerDAO.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.training.springbootjpa.repository; - -import java.util.List; - -import org.springframework.data.repository.CrudRepository; - -import com.training.springbootjpa.exception.ManagedException; -import com.training.springbootjpa.model.Customer; - -public interface CustomerDAO extends CrudRepository { - - /* - *this method find your name in database and return the details if name found - *also this method internally fire a select query based on parameter you pass to it. - */ - Customer findByCustomerName(String customerName) throws ManagedException; - - /* - this method find your name & database in database and return the details if name & address is found - also this method internally fire a select query based on parameter you pass to it. - */ - - List findByCustomerNameAndCustomerAddress(String customerName, String customerAddress); -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/GoodsDAO.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/GoodsDAO.java deleted file mode 100644 index 0ee1b2d..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/GoodsDAO.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.training.springbootjpa.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.training.springbootjpa.model.Goods; - -public interface GoodsDAO extends JpaRepository{ - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/RetailerDAO.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/RetailerDAO.java deleted file mode 100644 index 417774f..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/RetailerDAO.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.training.springbootjpa.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.training.springbootjpa.model.Retailer; - -public interface RetailerDAO extends JpaRepository { -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/SupplierDAO.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/SupplierDAO.java deleted file mode 100644 index edae2df..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/repository/SupplierDAO.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.training.springbootjpa.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.training.springbootjpa.model.Supplier; - -public interface SupplierDAO extends JpaRepository { -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/CustomerService.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/CustomerService.java deleted file mode 100644 index c4cac70..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/CustomerService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.List; - -import com.training.springbootjpa.exception.ManagedException; -import com.training.springbootjpa.model.Customer; - -public interface CustomerService { - - Customer addCustomer(Customer customer) throws ManagedException; - - Customer deleteCustomerById(long deleteById)throws ManagedException ; - - Customer updateCustomerById(long updateById); - - List getCustomer(); - - String getCustomerDetail(Long id) throws ManagedException; - - - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/CustomerServiceImpl.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/CustomerServiceImpl.java deleted file mode 100644 index a429b52..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/CustomerServiceImpl.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.Iterator; -import java.util.List; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.training.springbootjpa.exception.ManagedException; -import com.training.springbootjpa.model.Customer; -import com.training.springbootjpa.repository.CustomerDAO; - -/** - * @author RamDAfale - * - */ - -@Service("customerService") -public class CustomerServiceImpl implements CustomerService { - - @Autowired - private CustomerDAO customerDAO; - - @Override - public Customer addCustomer(Customer customer) throws ManagedException { - Customer customerData = customerDAO.save(customer); - if ( customerData.getCustomerName()==null || customerData.getPaymentMode() == null ) - { - throw new ManagedException("provide correct details"); - } - else - - return customerData; - } - - - - - - - - @Override - public Customer deleteCustomerById(long deleteById) throws ManagedException { - - Optional customer=customerDAO.findById(deleteById); - if(customer.isPresent()) - { - customerDAO.deleteById(deleteById); - } - else - { - throw new ManagedException("Id not Found"); - - } - return null; - } - - - - @Override - public Customer updateCustomerById(long updateById) { - Optional customer = customerDAO.findById(updateById); - Customer customerDummy = customer.get(); - customerDummy.setCustomerAddress("Newyork"); - return customerDummy; - } - - @Override - public List getCustomer() { - - return (List) customerDAO.findAll(); - } - - @Override - public String getCustomerDetail(Long id) throws ManagedException { - - Optional customerData = customerDAO.findById(id); - if (customerData.isPresent()) { - return "Data Found"; - } else - return "Not Found"; - } - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/GoodsService.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/GoodsService.java deleted file mode 100644 index dd26838..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/GoodsService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.List; -import com.training.springbootjpa.model.Goods; - -public interface GoodsService { - - Goods addGoods(Goods goods); - - public List deleteGoodsById(long deleteById); - - public Goods updateGoodsById(long updateById); - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/GoodsServiceImpl.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/GoodsServiceImpl.java deleted file mode 100644 index 45b4ce3..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/GoodsServiceImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.Iterator; -import java.util.List; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.training.springbootjpa.model.Goods; -import com.training.springbootjpa.repository.GoodsDAO; - -/** - * @author RamDAfale - * - */ -@Service("goodsService") -public class GoodsServiceImpl implements GoodsService { - - @Autowired - private GoodsDAO goodsDAO; - - @Override - public Goods addGoods(Goods goods) { - Goods goodsData = goodsDAO.save(goods); - return goodsData; - } - - @Override - public List deleteGoodsById(long deleteById) { - List goodsList = goodsDAO.findAll(); - Iterator iterator = goodsList.iterator(); - while (iterator.hasNext()) { - Goods goods = (Goods) iterator.next(); - if (goods.getGoodsId() == deleteById) { - goodsDAO.deleteById(deleteById); - } - } - return goodsList; - } - - @Override - public Goods updateGoodsById(long updateById) { - Optional goods = goodsDAO.findById(updateById); - Goods goodsDummy = goods.get(); - goodsDummy.setGoodsPrice(1021.12); - return goodsDummy; - } - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/RetailerService.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/RetailerService.java deleted file mode 100644 index 8fe6025..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/RetailerService.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.List; - -import com.training.springbootjpa.model.Retailer; - -public interface RetailerService { - - public Retailer addRetailer(Retailer retailer); - - public List deleteRetailerById(long deleteById); - - public Retailer updateRetailerById(long updateById); - - - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/RetailerServiceImpl.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/RetailerServiceImpl.java deleted file mode 100644 index bad09c2..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/RetailerServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.Iterator; -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.training.springbootjpa.model.Retailer; -import com.training.springbootjpa.repository.RetailerDAO; - -@Service("retailerService") -public class RetailerServiceImpl implements RetailerService { - - @Autowired - private RetailerDAO retailerDAO; - - @Override - public Retailer addRetailer(Retailer retailer) { - Retailer retailerData = retailerDAO.save(retailer); - return retailerData; - } - - @Override - public List deleteRetailerById(long deleteById) { - List retailerList = retailerDAO.findAll(); - Iterator iterator = retailerList.iterator(); - while (iterator.hasNext()) { - Retailer retailer = (Retailer) iterator.next(); - if (retailer.getRetailerId() == deleteById) { - retailerDAO.deleteById(deleteById); - } - } - return retailerList; - } - - @Override - public Retailer updateRetailerById(long updateById) { - Optional retailer = retailerDAO.findById(updateById); - Retailer retailerDummy = retailer.get(); - retailerDummy.setRetailerAddress("Changed Address at Winterfell"); - return retailerDummy; - } - -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/SupplierService.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/SupplierService.java deleted file mode 100644 index 55213cf..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/SupplierService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.List; -import com.training.springbootjpa.model.Supplier; - -public interface SupplierService { - - public Supplier addSupplier(Supplier supplier); - - public List deleteSupplierById(long deleteById); - - public Supplier updateSupplierById(long updateById); -} diff --git a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/SupplierServiceImpl.java b/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/SupplierServiceImpl.java deleted file mode 100644 index ecec5b9..0000000 --- a/14SpringBootJPAmysql/src/main/java/com/training/springbootjpa/service/SupplierServiceImpl.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.Iterator; -import java.util.List; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.training.springbootjpa.model.Supplier; -import com.training.springbootjpa.repository.SupplierDAO; - -@Service("supplierService") -public class SupplierServiceImpl implements SupplierService { - - @Autowired - private SupplierDAO supplierDAO; - - @Override - public Supplier addSupplier(Supplier supplier) { - Supplier supplierData = supplierDAO.save(supplier); - return supplierData; - } - - @Override - public List deleteSupplierById(long deleteById) { - List supplierList = supplierDAO.findAll(); - Iterator iterator = supplierList.iterator(); - while (iterator.hasNext()) { - Supplier supplier = (Supplier) iterator.next(); - if (supplier.getSupplierId() == deleteById) { - supplierDAO.deleteById(deleteById); - } - } - return supplierList; - } - - @Override - public Supplier updateSupplierById(long updateById) { - Optional supplier = supplierDAO.findById(updateById); - Supplier supplierDummy = supplier.get(); - supplierDummy.setQuantityOrder(123); - return supplierDummy; - } - -} diff --git a/14SpringBootJPAmysql/src/main/resources/application.properties b/14SpringBootJPAmysql/src/main/resources/application.properties deleted file mode 100644 index 208459e..0000000 --- a/14SpringBootJPAmysql/src/main/resources/application.properties +++ /dev/null @@ -1,4 +0,0 @@ -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -spring.h2.console.enabled=true -spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE \ No newline at end of file diff --git a/14SpringBootJPAmysql/src/main/resources/banner b/14SpringBootJPAmysql/src/main/resources/banner deleted file mode 100644 index 851712c..0000000 --- a/14SpringBootJPAmysql/src/main/resources/banner +++ /dev/null @@ -1,13 +0,0 @@ -spring.banner.location=classpath:/src/main/resources/bannername.txt - - - - - -${Ansi.GREEN} _ __ _ -${Ansi.GREEN} /\/\ ___ _ __ ___ ___ _ __ _ _ _ __ ___ | |_ / _| ___ _ _ _ __ __| | ___ ___ _ __ ___ -${Ansi.GREEN} / \ / _ \ '_ ` _ \ / _ \| '__| | | | '_ \ / _ \| __| |_ / _ \| | | | '_ \ / _` | / __/ _ \| '_ ` _ \ -${Ansi.GREEN} / /\/\ \ __/ | | | | | (_) | | | |_| | | | | (_) | |_| _| (_) | |_| | | | | (_| || (_| (_) | | | | | | -${Ansi.GREEN} \/ \/\___|_| |_| |_|\___/|_| \__, |_| |_|\___/ \__|_| \___/ \__,_|_| |_|\__,_(_)___\___/|_| |_| |_| -${Ansi.GREEN} |___/ -${Ansi.RED} :: Spring Boot${spring-boot.formatted-version} :: ${Ansi.DEFAULT} \ No newline at end of file diff --git a/14SpringBootJPAmysql/src/test/java/com/training/springbootjpa/SpringbootjpaApplicationTests.java b/14SpringBootJPAmysql/src/test/java/com/training/springbootjpa/SpringbootjpaApplicationTests.java deleted file mode 100644 index 6ba1f55..0000000 --- a/14SpringBootJPAmysql/src/test/java/com/training/springbootjpa/SpringbootjpaApplicationTests.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.training.springbootjpa; - -import static org.junit.Assert.assertEquals; - -import java.util.List; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -import com.training.springbootjpa.controller.MainController; -import com.training.springbootjpa.model.Customer; -import com.training.springbootjpa.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SpringbootjpaApplicationTests { - - - - - -/* @Autowired - CustomerServiceImpl mc; - - - @Test - public void testFindByCategory() { - List books = mc. - assertEquals(1, books.size()); - - for (Customer book : books) { - assertEquals(this.book.getCategory().getId(), category.getId()); - assertEquals(this.book.getAuthor(), book.getAuthor()); - assertEquals(this.book.getDescription(), book.getDescription()); - assertEquals(this.book.getIsbn(), book.getIsbn()); - } - }*/ - -} diff --git a/15springBootJPACallingFromMainMethod/.gitignore b/15springBootJPACallingFromMainMethod/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/15springBootJPACallingFromMainMethod/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/15springBootJPACallingFromMainMethod/.mvn/wrapper/maven-wrapper.jar b/15springBootJPACallingFromMainMethod/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/15springBootJPACallingFromMainMethod/.mvn/wrapper/maven-wrapper.properties b/15springBootJPACallingFromMainMethod/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/15springBootJPACallingFromMainMethod/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/15springBootJPACallingFromMainMethod/mvnw b/15springBootJPACallingFromMainMethod/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/15springBootJPACallingFromMainMethod/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/15springBootJPACallingFromMainMethod/mvnw.cmd b/15springBootJPACallingFromMainMethod/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/15springBootJPACallingFromMainMethod/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/15springBootJPACallingFromMainMethod/pom.xml b/15springBootJPACallingFromMainMethod/pom.xml deleted file mode 100644 index d496689..0000000 --- a/15springBootJPACallingFromMainMethod/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - 4.0.0 - - com.training - springbootjpa - 0.0.1-SNAPSHOT - jar - - springbootjpa - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - - org.projectlombok - lombok-maven - 1.16.20.0 - pom - - - - - - org.json - json - 20090211 - - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - com.h2database - h2 - runtime - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.mockito - mockito-core - 2.18.3 - - - org.mockito - mockito-junit-jupiter - 2.18.3 - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/SpringbootjpaApplication.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/SpringbootjpaApplication.java deleted file mode 100644 index cfc85aa..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/SpringbootjpaApplication.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.training.springbootjpa; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.logging.Logger; - -import org.json.HTTP; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.web.client.RestTemplate; - -import com.training.springbootjpa.controller.MainController; -import com.training.springbootjpa.model.Customer; - -@SpringBootApplication -public class SpringbootjpaApplication { - - public static void main(String[] args) { - SpringApplication.run(SpringbootjpaApplication.class, args); - - final Logger LOGGER = Logger.getLogger( MainController.class.getName() ); - System.out.println("In main class dfirst"); - //getCustomerById(); - System.out.println("In main class"); - - //createCustomer(); - - //deleteEmployee(); - - customerUpdate(); - - - - - - } - - private static void getCustomerById() - { - final Logger LOGGER = Logger.getLogger( MainController.class.getName() ); - final String uri = "http://localhost:8080/customer/{customerId}"; - - Map params = new HashMap(); - params.put("customerId", 1L); - - RestTemplate restTemplate = new RestTemplate(); - Customer result = restTemplate.getForObject(uri, Customer.class, params); - - // LOGGER.info( result); - - System.out.println(result.toString()); - } - - - private static void createCustomer() - { - final Logger LOGGER = Logger.getLogger( MainController.class.getName() ); - final String uri = "http://localhost:8080/addCustomer"; - System.out.println("In Add customer MEthod"); - // List list = new ArrayList(); - - Customer cust = new Customer("Rama","SA","DEBIT"); - - RestTemplate restTemplate = new RestTemplate(); - Customer result = restTemplate.postForObject(uri, cust,Customer.class); - System.out.println("In Add customer adding"); - // LOGGER.info( result); - System.out.println(result); - //System.out.println(result.toString()); - } - - - - private static void deleteEmployee() - { - final String uri = "http://localhost:8080/delete/{customerId}"; - - Map params = new HashMap(); - params.put("customerId", 2L); - - // Customer updatedEmployee = new Customer("Marvel", "NewYork", "CASH"); - - RestTemplate restTemplate = new RestTemplate(); - restTemplate.put ( uri, Customer.class, params); - } - - - - private static void customerUpdate() - { - final String uri = "http://localhost:8080/customerUpdate/{id}"; - - Map params = new HashMap(); - params.put("id", 5L); - - Customer updatedEmployee = new Customer("Captain Marvel", "NewYork", "CASH"); - - RestTemplate restTemplate = new RestTemplate(); - restTemplate.put ( uri, updatedEmployee, params); - } - - - -} - - - - diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/controller/MainController.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/controller/MainController.java deleted file mode 100644 index 81cea4d..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/controller/MainController.java +++ /dev/null @@ -1,282 +0,0 @@ -package com.training.springbootjpa.controller; - -import java.util.List; -import java.util.logging.Logger; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.util.MultiValueMap; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import com.training.springbootjpa.exception.ManagedException; -import com.training.springbootjpa.model.Customer; -import com.training.springbootjpa.model.Goods; -import com.training.springbootjpa.model.Retailer; -import com.training.springbootjpa.model.Supplier; -import com.training.springbootjpa.repository.CustomerDAO; -import com.training.springbootjpa.service.CustomerService; -import com.training.springbootjpa.service.GoodsService; -import com.training.springbootjpa.service.RetailerService; -import com.training.springbootjpa.service.SupplierService; - -@RestController -public class MainController { - - - - private static final Logger LOGGER = Logger.getLogger( MainController.class.getName() ); - /* - * with help of this annonation we can access all the proporties of bean we can - * access all method of CustomerService. - */ - @Autowired - private CustomerService customerService; - - @Autowired - private GoodsService goodsService; - - @Autowired - private SupplierService supplierService; - - @Autowired - private RetailerService retailerService; - - @Autowired - CustomerDAO cdao; - - /* - * Get Customer Details using Id Handling the exception using Custom Exception - */ - @RequestMapping(value = "/customer/{id}", method = RequestMethod.GET) - public ResponseEntity getCustomerById(@PathVariable Long id) throws ManagedException { - LOGGER.info("Inside Get Customer By Id"); - Customer customer = null; - - try { - customer = customerService.getCustomerDetail(id); - } catch (ManagedException e) { - - e.getMessage(); - } - System.out.println("Customer response >>>>" + customer); - - return new ResponseEntity(customer, HttpStatus.OK); - } - - // Get Customer Details using Name - // Handling the exception - /* - * Also we can send your whole Customer Details to UI using - * ResponseEntity For now this method is just telling user that your - * data is being get added succesfully. - * - */ - - @RequestMapping(method = RequestMethod.GET, value = "/searchCustomer/{customerName}") - - public ResponseEntity searchCustomer(@PathVariable String customerName) throws ManagedException { - LOGGER.info("Inside Get Customer By Name"); - - Customer customerData = null; - - customerData = cdao.findByCustomerName(customerName); - if (customerData == null) - return new ResponseEntity("Data not found", HttpStatus.OK); - else - return new ResponseEntity("Data found", (MultiValueMap) customerData, HttpStatus.OK); - - } - - /*this method shows all customers to admin if requested - */ - - @RequestMapping(method = RequestMethod.GET, value = "/getAllCustomer") - // @PostMapping(path = "/addCustomer") - public ResponseEntity> getAllCustomer() { - LOGGER.info("Inside Get All Customers "); - final List customerData; - - customerData = customerService.getCustomer(); - - return new ResponseEntity(customerData, HttpStatus.OK); - } - - - /* - * This method add new customer to database - * Exception Handling- if users provides Null to Textbox then it will throw Proper Message to user . - */ - @RequestMapping(method = RequestMethod.POST, value = "/addCustomer") - // @PostMapping(path = "/addCustomer") - public ResponseEntity createCustomer(@RequestBody Customer customer) { - System.out.println(customer.getCustomerName()+ customer.getPaymentMode() ); - LOGGER.info("Inside Add New Customer "); - Customer customerData = null; - - try { - - customerData = customerService.addCustomer(customer); - return new ResponseEntity(customerData, HttpStatus.OK); - - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - return new ResponseEntity("Provide valid input", HttpStatus.OK); - } - - - } - - - - - - /** - * GET /delete Delete a customer details from the database. - * - * - */ - @RequestMapping("/delete/{customerId}") - public ResponseEntity deleteCustomerRecord(@PathVariable Long customerId) { - - Customer cust =null; - LOGGER.info("Inside Delete Customer "); - try { - cust = customerService.deleteCustomerById(customerId); - } catch (ManagedException e) { - - - e.printStackTrace(); - return new ResponseEntity("Given Id not found", HttpStatus.OK); - } - - return new ResponseEntity("Given Id deleted successfully ", HttpStatus.OK); - } - - - /** - * - * Another Implementation - * GET /delete Delete a customer details from the database. - * - * - */ - - -/** - * GET /delete Delete a booking from the database. - */ - /* @RequestMapping("/delete/{customerId}") - public String deletecustomer(@PathVariable Long customerId) { - - LOGGER.info("Inside Delete Customer "); - try { - customerService.deleteCustomerById(customerId); - } catch (ManagedException e) { - - - e.printStackTrace(); - return "CustomerID #"+customerId+" Not Found"; - } - - return "CustomerID #"+customerId+" deleted successfully"; - } - -*/ - - - - - - @PutMapping("/customerUpdate/{id}") - public ResponseEntity customerUpdate(@RequestBody final Customer customer, - @PathVariable(value = "id") final Long id) { - Long customerId; - try { - customerId = customerService.updateCustomer(customer, id); - return new ResponseEntity(customerId, HttpStatus.OK); - } catch (ManagedException e) { - // TODO Auto-generated catch block - String msg = e.getMessage(); - return new ResponseEntity(msg, HttpStatus.OK); - - } - - } - - @RequestMapping(method = RequestMethod.POST, value = "/addGoods", produces = MediaType.APPLICATION_JSON_VALUE) - ResponseEntity createGoods(@RequestBody Goods goods) { - System.out.println(goods); - final Goods goodsData; - goodsData = goodsService.addGoods(goods); - return new ResponseEntity(goodsData, HttpStatus.OK); - } - - @RequestMapping(value = "/deleteGoods/{deleteById}", method = RequestMethod.GET) - public ResponseEntity deleteGoods(@PathVariable("deleteById") long deleteById) { - final List goodsList; - goodsList = goodsService.deleteGoodsById(deleteById); - return new ResponseEntity(goodsList, HttpStatus.OK); - } - - @RequestMapping(value = "/updateGoods/{updateById}", method = RequestMethod.GET) - public ResponseEntity updateGoods(@PathVariable("updateById") long updateById) { - final Goods goods = goodsService.updateGoodsById(updateById); - return new ResponseEntity(goods, HttpStatus.OK); - } - - @RequestMapping(method = RequestMethod.POST, value = "/addSupplier", produces = - - MediaType.APPLICATION_JSON_VALUE) // @PostMapping(path = "/addSupplier") - public ResponseEntity createSupplier(@RequestBody Supplier supplier) { - System.out.println(supplier); - final Supplier supplierData; - supplierData = supplierService.addSupplier(supplier); - return new ResponseEntity(supplierData, HttpStatus.OK); - } - - @RequestMapping(value = "/deleteSupplier/{deleteById}", method = RequestMethod.GET) - public ResponseEntity deleteSupplier(@PathVariable("deleteById") long deleteById) { - final List supplierList; - supplierList = supplierService.deleteSupplierById(deleteById); - return new ResponseEntity(supplierList, HttpStatus.OK); - } - - @RequestMapping(value = "/updateSupplier/{updateById}", method = RequestMethod.GET) - public ResponseEntity updateSupplier(@PathVariable("updateById") long updateById) { - final Supplier supplier = supplierService.updateSupplierById(updateById); - return new ResponseEntity(supplier, HttpStatus.OK); - } - - @RequestMapping(method = RequestMethod.POST, value = "/addRetailer", produces = MediaType.APPLICATION_JSON_VALUE) // @PostMapping(path - // = - // "/addRetailer") - public ResponseEntity createRetailer(@RequestBody Retailer retailer) { - System.out.println(retailer); - final Retailer retailerData; - retailerData = retailerService.addRetailer(retailer); - return new ResponseEntity(retailerData, HttpStatus.OK); - } - - @RequestMapping(value = "/deleteRetailer/{deleteById}", method = RequestMethod.GET) - public ResponseEntity deleteRetailer(@PathVariable("deleteById") long deleteById) { - final List retailerList; - retailerList = retailerService.deleteRetailerById(deleteById); - return new ResponseEntity(retailerList, HttpStatus.OK); - } - - @RequestMapping(value = "/updateRetailer/{updateById}", method = RequestMethod.GET) - public ResponseEntity updateRetailer(@PathVariable("updateById") long updateById) { - final Retailer retailer = retailerService.updateRetailerById(updateById); - return new ResponseEntity(retailer, HttpStatus.OK); - } - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/exception/ManagedException.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/exception/ManagedException.java deleted file mode 100644 index 3da2658..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/exception/ManagedException.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * - */ -package com.training.springbootjpa.exception; - -/** - * @author trainee - * - */ -public class ManagedException extends Exception { - - - public ManagedException(final String errorMessage) { - - super(errorMessage); - - } - - public ManagedException() { - // TODO Auto-generated constructor stub - } - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Customer.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Customer.java deleted file mode 100644 index 7c6a99a..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Customer.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.training.springbootjpa.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author RamDAfale - * - */ -@Entity -@Table(name = "customer") -public class Customer { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private long customerId; - private String customerName; - private String customerAddress; - private String paymentMode; - - /** - * @param customerId - * @param customerName - * @param customerAddress - * - * @param paymentMode - */ - public Customer() { - } - - public Customer(String customerName, String customerAddress, String paymentMode) { - this.customerName = customerName; - this.customerAddress = customerAddress; - this.paymentMode = paymentMode; - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - - /** - * @param customerName - * the customerName to set - */ - public void setCustomerName(String customerName) { - this.customerName = customerName; - } - - /** - * @return the customerAddress - */ - public String getCustomerAddress() { - return customerAddress; - } - - /** - * @param customerAddress - * the customerAddress to set - */ - public void setCustomerAddress(String customerAddress) { - this.customerAddress = customerAddress; - } - - /** - * @return the paymentMode - */ - public String getPaymentMode() { - return paymentMode; - } - - /** - * @param paymentMode - * the paymentMode to set - */ - public void setPaymentMode(String paymentMode) { - this.paymentMode = paymentMode; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", customerAddress=" - + customerAddress + ", paymentMode=" + paymentMode + "]"; - } - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Goods.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Goods.java deleted file mode 100644 index 4b57633..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Goods.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.training.springbootjpa.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "goods") -public class Goods { - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - private Long goodsId; - private String goodsName; - private Integer goodsQuantity; - private Double goodsPrice; - - - - /** - * - */ - public Goods() { - super(); - } - - /** - * @param goodsId - * @param goodsName - * @param goodsQuantity - * @param goodsPrice - * @param supplierId - */ - public Goods(Long goodsId, String goodsName, Integer goodsQuantity, Double goodsPrice, Long supplierId) { - super(); - this.goodsId = goodsId; - this.goodsName = goodsName; - this.goodsQuantity = goodsQuantity; - this.goodsPrice = goodsPrice; - - } - - /** - * @return the goodsId - */ - public Long getGoodsId() { - return goodsId; - } - /** - * @param goodsId the goodsId to set - */ - public void setGoodsId(Long goodsId) { - this.goodsId = goodsId; - } - /** - * @return the goodsName - */ - public String getGoodsName() { - return goodsName; - } - /** - * @param goodsName the goodsName to set - */ - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - /** - * @return the goodsQuantity - */ - public Integer getGoodsQuantity() { - return goodsQuantity; - } - /** - * @param goodsQuantity the goodsQuantity to set - */ - public void setGoodsQuantity(Integer goodsQuantity) { - this.goodsQuantity = goodsQuantity; - } - /** - * @return the goodsPrice - */ - public Double getGoodsPrice() { - return goodsPrice; - } - /** - * @param goodsPrice the goodsPrice to set - */ - public void setGoodsPrice(Double goodsPrice) { - this.goodsPrice = goodsPrice; - } - - - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Goods [goodsId=" + goodsId + ", goodsName=" + goodsName + ", goodsQuantity=" + goodsQuantity - + ", goodsPrice=" + goodsPrice + "]"; - } - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Retailer.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Retailer.java deleted file mode 100644 index 24b14df..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Retailer.java +++ /dev/null @@ -1,102 +0,0 @@ - -package com.training.springbootjpa.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author RamDAfale - * - */ -@Entity -@Table(name = "retailer") -public class Retailer { - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - private Long retailerId; - private String retailerName; - private String retailerAddress; - - /** - * @param retailerId - * @param retailerName - * @param retailerAddress - */ - public Retailer(Long retailerId, String retailerName, String retailerAddress) { - super(); - this.retailerId = retailerId; - this.retailerName = retailerName; - this.retailerAddress = retailerAddress; - } - - /** - * - */ - public Retailer() { - super(); - } - - /** - * @return the retailerId - */ - public Long getRetailerId() { - return retailerId; - } - - /** - * @param retailerId - * the retailerId to set - */ - public void setRetailerId(Long retailerId) { - this.retailerId = retailerId; - } - - /** - * @return the retailerName - */ - public String getRetailerName() { - return retailerName; - } - - /** - * @param retailerName - * the retailerName to set - */ - public void setRetailerName(String retailerName) { - this.retailerName = retailerName; - } - - /** - * @return the retailerAddress - */ - public String getRetailerAddress() { - return retailerAddress; - } - - /** - * @param retailerAddress - * the retailerAddres to set - */ - public void setRetailerAddress(String retailerAddress) { - this.retailerAddress = retailerAddress; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Retailer [retailerId=" + retailerId + ", retailerName=" + retailerName + ", retailerAddress=" - + retailerAddress + ", getRetailerId()=" + getRetailerId() + ", getRetailerName()=" + getRetailerName() - + ", getRetailerAddress()=" + getRetailerAddress() + ", getClass()=" + getClass() + ", hashCode()=" - + hashCode() + ", toString()=" + super.toString() + "]"; - } - - - - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Supplier.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Supplier.java deleted file mode 100644 index c0124bc..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/model/Supplier.java +++ /dev/null @@ -1,155 +0,0 @@ -package com.training.springbootjpa.model; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author RamDAfale - * - */ -@Entity -@Table(name = "supplier") -public class Supplier { - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - private Long supplierId; - private String supplierName; - private String supplierAddress; - private int quantityOrder; - private int orderId; - private Double amount; - - - /** - * - */ - public Supplier() { - super(); - } - - /** - * @param supplierId - * @param supplierName - * @param supplierAddress - * @param quantityOrder - * @param orderId - * @param amount - * @param retailerId - */ - public Supplier(Long supplierId, String supplierName, String supplierAddress, int quantityOrder, int orderId, - Double amount, String retailerId) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - - } - - /** - * @return the supplierId - */ - public Long getSupplierId() { - return supplierId; - } - - /** - * @param supplierId - * the supplierId to set - */ - public void setSupplierId(Long supplierId) { - this.supplierId = supplierId; - } - - /** - * @return the supplierName - */ - public String getSupplierName() { - return supplierName; - } - - /** - * @param supplierName - * the supplierName to set - */ - public void setSupplierName(String supplierName) { - this.supplierName = supplierName; - } - - /** - * @return the supplierAddress - */ - public String getSupplierAddress() { - return supplierAddress; - } - - /** - * @param supplierAddress - * the supplierAddress to set - */ - public void setSupplierAddress(String supplierAddress) { - this.supplierAddress = supplierAddress; - } - - /** - * @return the quantityOrder - */ - public int getQuantityOrder() { - return quantityOrder; - } - - /** - * @param quantityOrder - * the quantityOrder to set - */ - public void setQuantityOrder(int quantityOrder) { - this.quantityOrder = quantityOrder; - } - - /** - * @return the orderId - */ - public int getOrderId() { - return orderId; - } - - /** - * @param orderId - * the orderId to set - */ - public void setOrderId(int orderId) { - this.orderId = orderId; - } - - /** - * @return the amount - */ - public Double getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(Double amount) { - this.amount = amount; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "Supplier [supplierId=" + supplierId + ", supplierName=" + supplierName + ", supplierAddress=" - + supplierAddress + ", quantityOrder=" + quantityOrder + ", orderId=" + orderId + ", amount=" + amount - + "]"; - } -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/CustomerDAO.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/CustomerDAO.java deleted file mode 100644 index 37168ec..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/CustomerDAO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.training.springbootjpa.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.repository.CrudRepository; - -import com.training.springbootjpa.exception.ManagedException; -import com.training.springbootjpa.model.Customer; - -public interface CustomerDAO extends JpaRepository { - - /* - *this method find your name in database and return the details if name found - *also this method internally fire a select query based on parameter you pass to it. - */ - Customer findByCustomerName(String customerName) throws ManagedException; - - /* - this method find your name & database in database and return the details if name & address is found - also this method internally fire a select query based on parameter you pass to it. - */ - - List findByCustomerNameAndCustomerAddress(String customerName, String customerAddress); -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/GoodsDAO.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/GoodsDAO.java deleted file mode 100644 index 0ee1b2d..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/GoodsDAO.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.training.springbootjpa.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.training.springbootjpa.model.Goods; - -public interface GoodsDAO extends JpaRepository{ - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/RetailerDAO.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/RetailerDAO.java deleted file mode 100644 index 417774f..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/RetailerDAO.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.training.springbootjpa.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.training.springbootjpa.model.Retailer; - -public interface RetailerDAO extends JpaRepository { -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/SupplierDAO.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/SupplierDAO.java deleted file mode 100644 index edae2df..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/repository/SupplierDAO.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.training.springbootjpa.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.training.springbootjpa.model.Supplier; - -public interface SupplierDAO extends JpaRepository { -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/CustomerService.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/CustomerService.java deleted file mode 100644 index ab5558c..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/CustomerService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.List; - -import com.training.springbootjpa.exception.ManagedException; -import com.training.springbootjpa.model.Customer; - -public interface CustomerService { - - Customer addCustomer(Customer customer) throws ManagedException; - - Customer deleteCustomerById(long deleteById)throws ManagedException ; - - //Customer updateCustomerById(long updateById); - - List getCustomer(); - - Customer getCustomerDetail(Long id) throws ManagedException; - - Long updateCustomer(Customer customerReq, Long id) throws ManagedException; - - - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/CustomerServiceImpl.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/CustomerServiceImpl.java deleted file mode 100644 index 747ed57..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/CustomerServiceImpl.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.Iterator; -import java.util.List; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.training.springbootjpa.exception.ManagedException; -import com.training.springbootjpa.model.Customer; -import com.training.springbootjpa.repository.CustomerDAO; - -/** - * @author RamDAfale - * - */ - -@Service("customerService") -public class CustomerServiceImpl implements CustomerService { - - @Autowired - private CustomerDAO customerDAO; - - @Override - public Customer addCustomer(Customer customer) throws ManagedException { - Customer customerData = customerDAO.save(customer); - System.out.println(customerData.getCustomerName()+ customerData.getPaymentMode() ); - if ( customerData.getCustomerName()==null || customerData.getPaymentMode() == null ) - { - throw new ManagedException("provide correct details"); - } - else - - return customerData; - } - - - - - - - - @Override - public Customer deleteCustomerById(long deleteById) throws ManagedException { - - Optional customer=customerDAO.findById(deleteById); - if(customer.isPresent()) - { - customerDAO.deleteById(deleteById); - } - else - { - throw new ManagedException("Id not Found"); - - } - return null; - } - - - - @Override - public Long updateCustomer(Customer customerReq, Long id) throws ManagedException { - // TODO Auto-generated method stub - Optional customer = customerDAO.findById(id); - if (customer.isPresent()) { - Customer cust = customerDAO.getOne(id); - if (customerReq.getPaymentMode() != null) { - cust.setPaymentMode(customerReq.getPaymentMode()); - //LOGGER.info("hello"); - } - if (customerReq.getCustomerAddress() != null) { - cust.setCustomerAddress(customerReq.getCustomerAddress()); - } - if (customerReq.getCustomerName() != null) { - cust.setCustomerName(customerReq.getCustomerName()); - } - - - customerDAO.save(cust); - } else { - throw new ManagedException("Sorry !! such record not exist in database"); - } - - return id; - } - - @Override - public List getCustomer() { - - return (List) customerDAO.findAll(); - } - - @Override - public Customer getCustomerDetail(Long id) throws ManagedException { - - Optional customerData = customerDAO.findById(id); - - if (customerData.isPresent()) { - Customer cust1=customerDAO.getOne(id); - return cust1; - - } else - - { - throw new ManagedException("not found!!"); - } - - } - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/GoodsService.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/GoodsService.java deleted file mode 100644 index dd26838..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/GoodsService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.List; -import com.training.springbootjpa.model.Goods; - -public interface GoodsService { - - Goods addGoods(Goods goods); - - public List deleteGoodsById(long deleteById); - - public Goods updateGoodsById(long updateById); - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/GoodsServiceImpl.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/GoodsServiceImpl.java deleted file mode 100644 index 45b4ce3..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/GoodsServiceImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.Iterator; -import java.util.List; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.training.springbootjpa.model.Goods; -import com.training.springbootjpa.repository.GoodsDAO; - -/** - * @author RamDAfale - * - */ -@Service("goodsService") -public class GoodsServiceImpl implements GoodsService { - - @Autowired - private GoodsDAO goodsDAO; - - @Override - public Goods addGoods(Goods goods) { - Goods goodsData = goodsDAO.save(goods); - return goodsData; - } - - @Override - public List deleteGoodsById(long deleteById) { - List goodsList = goodsDAO.findAll(); - Iterator iterator = goodsList.iterator(); - while (iterator.hasNext()) { - Goods goods = (Goods) iterator.next(); - if (goods.getGoodsId() == deleteById) { - goodsDAO.deleteById(deleteById); - } - } - return goodsList; - } - - @Override - public Goods updateGoodsById(long updateById) { - Optional goods = goodsDAO.findById(updateById); - Goods goodsDummy = goods.get(); - goodsDummy.setGoodsPrice(1021.12); - return goodsDummy; - } - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/RetailerService.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/RetailerService.java deleted file mode 100644 index 8fe6025..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/RetailerService.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.List; - -import com.training.springbootjpa.model.Retailer; - -public interface RetailerService { - - public Retailer addRetailer(Retailer retailer); - - public List deleteRetailerById(long deleteById); - - public Retailer updateRetailerById(long updateById); - - - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/RetailerServiceImpl.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/RetailerServiceImpl.java deleted file mode 100644 index bad09c2..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/RetailerServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.Iterator; -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.training.springbootjpa.model.Retailer; -import com.training.springbootjpa.repository.RetailerDAO; - -@Service("retailerService") -public class RetailerServiceImpl implements RetailerService { - - @Autowired - private RetailerDAO retailerDAO; - - @Override - public Retailer addRetailer(Retailer retailer) { - Retailer retailerData = retailerDAO.save(retailer); - return retailerData; - } - - @Override - public List deleteRetailerById(long deleteById) { - List retailerList = retailerDAO.findAll(); - Iterator iterator = retailerList.iterator(); - while (iterator.hasNext()) { - Retailer retailer = (Retailer) iterator.next(); - if (retailer.getRetailerId() == deleteById) { - retailerDAO.deleteById(deleteById); - } - } - return retailerList; - } - - @Override - public Retailer updateRetailerById(long updateById) { - Optional retailer = retailerDAO.findById(updateById); - Retailer retailerDummy = retailer.get(); - retailerDummy.setRetailerAddress("Changed Address at Winterfell"); - return retailerDummy; - } - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/SupplierService.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/SupplierService.java deleted file mode 100644 index 55213cf..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/SupplierService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.List; -import com.training.springbootjpa.model.Supplier; - -public interface SupplierService { - - public Supplier addSupplier(Supplier supplier); - - public List deleteSupplierById(long deleteById); - - public Supplier updateSupplierById(long updateById); -} diff --git a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/SupplierServiceImpl.java b/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/SupplierServiceImpl.java deleted file mode 100644 index ecec5b9..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/java/com/training/springbootjpa/service/SupplierServiceImpl.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.training.springbootjpa.service; - -import java.util.Iterator; -import java.util.List; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.training.springbootjpa.model.Supplier; -import com.training.springbootjpa.repository.SupplierDAO; - -@Service("supplierService") -public class SupplierServiceImpl implements SupplierService { - - @Autowired - private SupplierDAO supplierDAO; - - @Override - public Supplier addSupplier(Supplier supplier) { - Supplier supplierData = supplierDAO.save(supplier); - return supplierData; - } - - @Override - public List deleteSupplierById(long deleteById) { - List supplierList = supplierDAO.findAll(); - Iterator iterator = supplierList.iterator(); - while (iterator.hasNext()) { - Supplier supplier = (Supplier) iterator.next(); - if (supplier.getSupplierId() == deleteById) { - supplierDAO.deleteById(deleteById); - } - } - return supplierList; - } - - @Override - public Supplier updateSupplierById(long updateById) { - Optional supplier = supplierDAO.findById(updateById); - Supplier supplierDummy = supplier.get(); - supplierDummy.setQuantityOrder(123); - return supplierDummy; - } - -} diff --git a/15springBootJPACallingFromMainMethod/src/main/resources/application.properties b/15springBootJPACallingFromMainMethod/src/main/resources/application.properties deleted file mode 100644 index e579783..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/resources/application.properties +++ /dev/null @@ -1,5 +0,0 @@ -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -spring.h2.console.enabled=true -spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE - diff --git a/15springBootJPACallingFromMainMethod/src/main/resources/banner.txt b/15springBootJPACallingFromMainMethod/src/main/resources/banner.txt deleted file mode 100644 index 4a6da67..0000000 --- a/15springBootJPACallingFromMainMethod/src/main/resources/banner.txt +++ /dev/null @@ -1,15 +0,0 @@ -spring.banner.location=classpath:/src/main/resources/bannername.txt - - - - - -${Ansi.GREEN} _ __ _ -${Ansi.GREEN} /\/\ ___ _ __ ___ ___ _ __ _ _ _ __ ___ | |_ / _| ___ _ _ _ __ __| | ___ ___ _ __ ___ -${Ansi.GREEN} / \ / _ \ '_ ` _ \ / _ \| '__| | | | '_ \ / _ \| __| |_ / _ \| | | | '_ \ / _` | / __/ _ \| '_ ` _ \ -${Ansi.GREEN} / /\/\ \ __/ | | | | | (_) | | | |_| | | | | (_) | |_| _| (_) | |_| | | | | (_| || (_| (_) | | | | | | -${Ansi.GREEN} \/ \/\___|_| |_| |_|\___/|_| \__, |_| |_|\___/ \__|_| \___/ \__,_|_| |_|\__,_(_)___\___/|_| |_| |_| -${Ansi.GREEN} - - -${Ansi.RED} :: Spring Boot${spring-boot.formatted-version} :: ${Ansi.DEFAULT} \ No newline at end of file diff --git a/15springBootJPACallingFromMainMethod/src/test/java/com/training/springbootjpa/SpringbootjpaApplicationTests.java b/15springBootJPACallingFromMainMethod/src/test/java/com/training/springbootjpa/SpringbootjpaApplicationTests.java deleted file mode 100644 index 6ba1f55..0000000 --- a/15springBootJPACallingFromMainMethod/src/test/java/com/training/springbootjpa/SpringbootjpaApplicationTests.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.training.springbootjpa; - -import static org.junit.Assert.assertEquals; - -import java.util.List; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -import com.training.springbootjpa.controller.MainController; -import com.training.springbootjpa.model.Customer; -import com.training.springbootjpa.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SpringbootjpaApplicationTests { - - - - - -/* @Autowired - CustomerServiceImpl mc; - - - @Test - public void testFindByCategory() { - List books = mc. - assertEquals(1, books.size()); - - for (Customer book : books) { - assertEquals(this.book.getCategory().getId(), category.getId()); - assertEquals(this.book.getAuthor(), book.getAuthor()); - assertEquals(this.book.getDescription(), book.getDescription()); - assertEquals(this.book.getIsbn(), book.getIsbn()); - } - }*/ - -} diff --git a/16BankAppSpringBootJPA/.classpath b/16BankAppSpringBootJPA/.classpath deleted file mode 100644 index 6d7587a..0000000 --- a/16BankAppSpringBootJPA/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/16BankAppSpringBootJPA/.eclipse-pmd b/16BankAppSpringBootJPA/.eclipse-pmd deleted file mode 100644 index 8c5b448..0000000 --- a/16BankAppSpringBootJPA/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/16BankAppSpringBootJPA/.project b/16BankAppSpringBootJPA/.project deleted file mode 100644 index fce9fe2..0000000 --- a/16BankAppSpringBootJPA/.project +++ /dev/null @@ -1,52 +0,0 @@ - - - bank - - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - org.springframework.ide.eclipse.boot.validation.springbootbuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - ch.acanda.eclipse.pmd.builder.PMDBuilder - - - - - net.sf.eclipsecs.core.CheckstyleBuilder - - - - - - org.springframework.ide.eclipse.core.springnature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.wst.common.project.facet.core.nature - ch.acanda.eclipse.pmd.builder.PMDNature - net.sf.eclipsecs.core.CheckstyleNature - - diff --git a/16BankAppSpringBootJPA/.settings/org.eclipse.core.resources.prefs b/16BankAppSpringBootJPA/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/16BankAppSpringBootJPA/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/16BankAppSpringBootJPA/.settings/org.eclipse.jdt.core.prefs b/16BankAppSpringBootJPA/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 714351a..0000000 --- a/16BankAppSpringBootJPA/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/16BankAppSpringBootJPA/.settings/org.eclipse.wst.common.project.facet.core.xml b/16BankAppSpringBootJPA/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d858295..0000000 --- a/16BankAppSpringBootJPA/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/16BankAppSpringBootJPA/.settings/org.springframework.ide.eclipse.prefs b/16BankAppSpringBootJPA/.settings/org.springframework.ide.eclipse.prefs deleted file mode 100644 index a12794d..0000000 --- a/16BankAppSpringBootJPA/.settings/org.springframework.ide.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -boot.validation.initialized=true -eclipse.preferences.version=1 diff --git a/16BankAppSpringBootJPA/bin/.settings/org.eclipse.core.resources.prefs b/16BankAppSpringBootJPA/bin/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/16BankAppSpringBootJPA/bin/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/16BankAppSpringBootJPA/bin/.settings/org.eclipse.jdt.core.prefs b/16BankAppSpringBootJPA/bin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 714351a..0000000 --- a/16BankAppSpringBootJPA/bin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/16BankAppSpringBootJPA/bin/.settings/org.eclipse.wst.common.project.facet.core.xml b/16BankAppSpringBootJPA/bin/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d858295..0000000 --- a/16BankAppSpringBootJPA/bin/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/16BankAppSpringBootJPA/bin/.settings/org.springframework.ide.eclipse.prefs b/16BankAppSpringBootJPA/bin/.settings/org.springframework.ide.eclipse.prefs deleted file mode 100644 index a12794d..0000000 --- a/16BankAppSpringBootJPA/bin/.settings/org.springframework.ide.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -boot.validation.initialized=true -eclipse.preferences.version=1 diff --git a/16BankAppSpringBootJPA/bin/mvnw b/16BankAppSpringBootJPA/bin/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/16BankAppSpringBootJPA/bin/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/16BankAppSpringBootJPA/bin/mvnw.cmd b/16BankAppSpringBootJPA/bin/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/16BankAppSpringBootJPA/bin/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/16BankAppSpringBootJPA/bin/pom.xml b/16BankAppSpringBootJPA/bin/pom.xml deleted file mode 100644 index 77e0a5d..0000000 --- a/16BankAppSpringBootJPA/bin/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - bank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/BankApplication.class b/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/BankApplication.class deleted file mode 100644 index 83bc78b5489464ed4435a71257ad09b6fd268ca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1353 zcmb_cQE$^Q5I(ov+Jr(!*%&ZDW=|ati4Z(dgtSc{Rq8;ZWfJ1aN!-?3Vh7u)*bm{i zAb|w${3ygZ0a~F7hO~!V?D+D1zPs=4+xJgj0N@eaZ9Mx}F}P$bPoT7uJDt0?7}c}#t8Jmb`!<(xWzz>x(N8I75g z%F>9_UmyV;SSkz^G7%c@lb+$xgljHiWSD4`;r?BLX9*4Blo>-OBIRZ!%VBwb(Ig2+ zUdNxa_>@gK-NnFzMYaQ%?OmEEZm5ecV>X^qi%H<`a|~(uPpn$tsuq-~S%p&tCbC>< zOO>9k$l1AEMx`1KPz_5OSOG?@qO2^J?+r4i7GbF=a;~wy(pX)@R%u!lu(#)GRmg-- zgmm@66I`<*waeZCJt~ZKC+J0)bcv{dmmqy_WSwCDai=PdzsKPF(1OctSc5ABwtB;b za4U+w6Lx2amw8cS5!YjeS|!jOs+gt6ObfUF`LSVV!Vq{k{O<`)ldbLF;?~ zpAEF_$_uVS7k3_9gH8P65bh)H0%2$Ec(6Xjk`2jge Bo-zOc diff --git a/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/controller/BankController.class b/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/controller/BankController.class deleted file mode 100644 index 11b28f13e438c73974510a496d871b878e3aa98a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4318 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 diff --git a/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/model/Bank.class b/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/model/Bank.class deleted file mode 100644 index 77d3900fd55bcf1d0b02ff17377c5f1dc6d7d7c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4678 zcmeHKTW{P%6h2Nv_L9(qKq<6brs1}Mu*)SakWB)cG;IS8kw}Py#LKKb>`r6PtUR+( z_JQApR3v!kMK-hGv_{k{r%(*09b|ZN-*WXiix~N$fasL z<|n-2>9ApXkyM?w*0#~+>bMbVUj&UU9F}0(frS_taMfw-w;v17Ixs`HT^|Rot5v7z z!0jLU%F0mesuO8sI}k0UwB=T6WgM7xcYOpcxDSOA5x2rW;z3{FRM}X1?+kG0ZtI{Q zDx95GJQT>zLyfc!%(+{#b64 zhjh(NB${>il{nOUTn*?~A@B8szlHK$<2H2Q?!V-29qz@nGwV`GyNNWlf#Ix54PPG#_;iiFX@iSQYks3(J1m8=(O)NN?iShaF6P?n!EL5rAH%<5yI z%nC!}2`iZG3WN7}vRXOp3MRvzjx3}9)kAK(%;RJv))s8^vx~sKmBD`sJT1cZKLcf& zs%Dl~SSU>|;9hKIg|X20EY4ReI~YxNkfAEHDC5iydID|5(HU|uyXZg{%sftVJ|v5Q zF{%$yf{EZ09!Zj|T1i5BA~4wp<&Ydm8vi-Kv*69aQHIEYw4#U)3gDi>FDaZoOs%oQ zVE8AAxwg!tVSVL`U!)R#wNgN_R|Y9;!Dk38VC*Y{?4Mv}m;U4+OJe81Qt{65~W&+H};ZnW)E2#}f0kFpP>47AUVvMU08l9yT50 z>#?q50h6j8m$J!h6Kdq8iT8P-ysRC#in>gG&8YjNWX6L?aDRYJ%`l~nyWa|v$_Q*} zmVRBLl180U-23ba+tvP-_6O%(VB&)9fEyFzt8fe6o`ajf9Jo<))8;G*v?eug^Dd^> z@B3j}L~#jrVA0hc4~~XqZ#X$^yAqqLEs=rtPQtZ@ZTWQ+F3lUwGSnTg1w>5OSltj^Rc8@K~__`{RXgxB!?IwDt*-N9$|cewS_ z;v2ugTYtvu@8F%-0Iwyy&m|~$2i}e6-h=mX<|4xf84UGIhGqD0jA05{6B)7??qxE3 z1S?|<=`KFbkYOW}p#h(aF{CnNG3;bAd1Z8i9qMheG)w?}%eR_PYUpB7{^-`BKCL%1*~aqdDg(7d&E$dxtC-a-6Eh zN{@RZ0*wrKmxY|byp!*}uQXF_?rh3n7z+JU41<8-PRJtQqNn-@YDpkb6QiZ#d7SFHY%{MZ)^}BVYJxoxru` z@*!@ui9W5sI|Od#U$YfOGOEIRr26u?hJcj`V|}5MepjZ_KvZt`rhQ6NDsS}w=4o| zg=6OhV{y8uDR|rsScD~Oz}zF&<8%r8O)FObE!`7ai2_)np5!srZ6jpL?dujp`N;sg ze{nrF&z9B`E!}8ZlhG!0unQ~ct2TD&PCluPX;K1x33W zW@Sa-MuB8PsnI-Tr2Sh#%37e~6$iOqO43*1A%VqfG4x$770j5( z6(^|%YZchW!5F*(Kj@nyiqQ%@J98DyyxG|C;}|c7TGz&~2zcwl8*dp(@ETmlQ3XeJ z998je4WAOsKw~_w|390|&B5!1x%p)74Y*ZUe;eoC#HWsPci=62zm20++>PkjKVjjQ z`FCH!`+wu81WWkV=zz}$_|`k>wI9Mq$=t{A3C^5HXc`dOMubn{vjRd%qbD3p2oH=1 zEAV*%A^(b&fy25H;cnvZ>??8(CWLJx!acZeln?r1e4diFPQ R{5?KD;#0*Fy9H07^FMJXN+bXP diff --git a/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/repository/BankDAO.class b/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/repository/BankDAO.class deleted file mode 100644 index f296085c9de1734c92297a6431c6de9eeb2ce42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmZ8dT}lHn5dNlJn|5t&``|U2m%gnCiik?2(0YMv2y1GaEJ-Tt)qL;(9!gA#2z4Mc zWWJwC=Ii_86TlL4h8|%VyyAOlEZ@p^$(7sl(0XH=+PTPUY2UcltqUeP-|^dYzq?s6 z6olDPu#>jot9q+dB$OL>@JipCohFQb$&1V*j5emRG9G+_xcINF#8WHRe}k?>7FR+z z+f>&T;quWcXM+h*+xTF#mtMVg4CjO*QyC_N$%zNUG=bS6z2(`2kUsU&wK@z4gnrsV ajsj;X_b>oE)*(i@jafQnLQ9Nsf&LFTu2FUX diff --git a/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class b/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class deleted file mode 100644 index 85a53f04982068528718fbd901f8d597180bf217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZ8dT}lHn5dNlJn|5urK6nlDpbx@|Ad09&3f2o`Ls(P0$&zG+y_yd_Ko2Em3l()> zW?;UbVP^aFxdCv26NUldGI+&nX)IsK56P9Qd1$<`Rq0&hrL^zd>&68Wo$vT<8=|YV zzq?s5WQ6%nw3fEwi*lt^B;-ridZq8pS||LM;H>8oCQDOU8C##=bMaqah^I!r{4Bf@ zdxJsBpF-%oCbpiX#la0YBPU-T(jq diff --git a/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/BankService.class b/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/BankService.class deleted file mode 100644 index 128ab9421088e1d0dbb9c5889cbdcdfbd076197b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmbVLOK%e~5FUq;$5Pr7C~qVyr?iT8FL0q1hw_k+0vr-5adf=X)a|alvYn_o@Vk&e zf;&G7F|!S7k$4miYkOwr{eAQG+sDrU@DLufpdsK<@H#7%vDuNDt4zBx3zau^I&m&$ z6J?LHfPQW?W_u)zPTwt95wKBv6v|GsH4p zsZ=s9D!h=%(AnuapR*67vD9ajz4tu^ zhS^l}-(m8u4=K;VgE z-J#Q}*jL`Lyi_Kd>WawK3h4BQ{HXocrWjdxhEbU!2w3Y6nFTvrr#1qTk(+sqFAN9Y zIM;7I{1)7y4PtEz?$L{V1+2a@AyA298c}EppjD%N20Ght8JZ-wNZMX%lTXlo*G)da o>KD>BV1rJ!0s5}h8eZitTnD~yz-FzxS)aGyKHW|7x(#=~0|mK7E*c4S6j?M=nP9X>9|yDkgS^NBSYdFZnw1GPj)tQrn79B| z8GQC!LKy^J-@ecc+OgNRzdIZ-xczOZoXqiono2828SW~jop4es%V0g;EuH>B8cYeh z`lVFTeZ}CVZtoF;m3unH0Ja!xof~@J7;V3HpP_F$_trQQh8xCsmbjZ zJZvAFC?}3N`bk_X?(`8VyTen=&>?pdwA5CEVf%1`T;_!~j(dImT(}8OgtwQEke@31 zH?VXvYXWLBz5)oXvq{R+AhoXO+TIS&r7bd%RBlw(nKE%SPR^T!ON~Nu85i806gYE+ z@9}>`7|%=Vygz9#P&w~wF4Y8$bfig)NRdb!&(TeEx;VK%MpwlTIw3RLjkOw+HGX%l zR!?G3IP|Kzz9AhxGh`wiw`GBbqH69A3Z7YlbbDM{UaAxyOGV3gOn;~^%FHdI`~0C_ z{0zl~;&?n4ydW}cpT&NIiz{#J4jWLzDTTRAu>t0VEdjZIoM7RzvmX9e8G!HEwd8UiHt}xJ(*KkdeJjGMCh~!j(2|Q_*5sK65CTV)eB!B{ju_!N>C-u-TOCv?Bf>Mfu>riz;QEF1q>1qMqKesQ`b;^tbU77^HmOgWD z`m|ZNXH;bCZv^u(O2KPWk(G3=|Bz1j9v#3AT^@Xo>QVrG8ulJ$u<=k@OGW#TPL~$$ z0^JMfxke8_0BiJaQ*V{tA-(;-b=aWxdUZqc-vHrnu=)M=jbC8<5Bh4sEo%J?pyyR; zJ)ThT8oXYOy#a5Mq}$YAp+9e(X?TZ5PUW`zj7sjE8o76B<=%zPGsu0nMs8Fiw*~K$ TEiL!}B5xDf+=GwE>W}{hKLCZL diff --git a/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/CustomerService.class b/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/CustomerService.class deleted file mode 100644 index 8ac7b74c3cea3e1903cfa801bf3c880357f82e8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcma)4O>fjN5FM9gvzu<&vQWN}te&<#B$r-jD=r020S>!V;^;V|)NNu%ws%E;84^fv z=SLyNX`^-vJ&5^ z@Y2J+r`w&@?+BjKw)8gj^yj1MiIE>;M1& diff --git a/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class b/16BankAppSpringBootJPA/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class deleted file mode 100644 index c5be0e25ca7894f5104df65c148d8c7dde7b3a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3380 zcmeHKTW{Mo6h3s_*m2UPO|M(qmCc&M?nN4gy=>V9LDB&M)CO3x0(+z-#%3##0!g{; z-`L~+NP!O6-uI)19m=NdHO8c7*&c>HSQ4d=-#PrwIXv`lzrXzj06v3HTF@ZymCm(%#_JNxZi)y zW7~oy0-v9ln7~RrF}2GSfpd|!yt}=>Mc~GFg|s5$dvYX<=%;*JN@bZ9N*bISZ5LL( z6q+Z9UHVc;VZSDDrrUc)pt++G-hwp(Ycr=GYprw}E|R5Bzn7XDm5z8qQHflnB`eLf zLNl59f_9b?4raOqPPbs9+XhV(Hxyl@8ME<_T4dm_aujNw z0p$u@90KQ9@K=0eA4HZbZE1-vtVn6hoD8(jsb9mNfJzTe0fK&2vHT6lB(oM+pjJ^v z?dzP67v-L)Pm8&Pq#0%oMQt!#T-s7=A%|QGCpPOFt67YJ;C85zcL{<4x1MvCTP9M| zjg%bp{z;oGNxaRje?Wt-x>y zJC6?N6Q{@+MVWM&HzuB=>?}`frb2t~Ay#4qa(~3N774F_dBU2o$FE|ZyGpOXA6U1C zRe<)Snb5|5MgyzlUm6;aYB5=_QGks5>6ZtgSY6B(Yry7mX�+yP1w|_ z3Vf~F_%9YbCe!h@g)h62tKF^MEck7>OURG^dL;kfLMoaSmfL|Ubj-gMZg05m>v8T_ zQyvNlEJu@fSmb9%EG_UXd!Int&uGCztbRYjEwKdw9(r8_2&_I4#$Z!C#G{jeJAh|m z{GG)gKnvPKzOBG2UeA^P7Tg%1^D~_PVg14zSpOAA4Y-0=Hv^yvSMlob zh=OZy9q$A_fDe)BM){q<&8dZt@QvqfxEUqy?FGEo7V_SKjrZXFcmeO`0^SB}qAv}& Q2ch!`*VKat==GyN0E0_Fm;e9( diff --git a/16BankAppSpringBootJPA/bin/src/main/resources/application.properties b/16BankAppSpringBootJPA/bin/src/main/resources/application.properties deleted file mode 100644 index 359e798..0000000 --- a/16BankAppSpringBootJPA/bin/src/main/resources/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -<<<<<<< HEAD -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -======= -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/16BankAppSpringBootJPA/bin/src/test/java/com/springboot/bank/BankApplicationTests.class b/16BankAppSpringBootJPA/bin/src/test/java/com/springboot/bank/BankApplicationTests.class deleted file mode 100644 index 9bf1c99f936400428a7fee8641e617838efe5887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228 zcmcgsU2oGc6ur*+844|h0TUpZJ#{aMgb+d$A#Hp}lLAPz4DskBUh6HfBipIQFGB(e z-uY38>!hQTs3_urhuk>v@ww;v9{c-`&tC!H0o-kaN8q8+NocvT;R#!?Fj0AE3N7R; zR?3Dklc(VUhW(<*M8d34a*ANnh6aH_wIpM57QTs3cwz~(o(L)IQvzF~y(0pRXDa1w z=o09!urIV$x&xPpcmJK#+^B59Q;L}jkyROJp;esm+&rd!cRJ@Z#!u+)@=V^-2wT_#p( zTDN?(M}?uKO!={pxX;HpgJV`^NWDS_^i_$;Y7}MCHKr!M0K#3}sK|#7T<$>=t`OKB zMJrcLtaI(yxvn3fl-Fe*b3J8fBm%=oB`iB)TDb4!&xV}~L*P;LZ%1HEpoiiuKeLfy zDKg#0{kJ0LhjJl|z(o7bH&|KA zasu6GX(JTfT(GP}{2;1LbMAyO+ygwfcsBreIBG%*W4pR5wr~XCe}T@2q5lbb-zrQW uqr(6`1B|^I1y^BM{kw*<9$a6dw(>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/16BankAppSpringBootJPA/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties b/16BankAppSpringBootJPA/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties deleted file mode 100644 index ac4821f..0000000 --- a/16BankAppSpringBootJPA/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties +++ /dev/null @@ -1,17 +0,0 @@ -<<<<<<< HEAD -#Generated by Maven Integration for Eclipse -#Thu May 17 10:00:13 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=C\:\\Users\\Lohit\\Desktop\\bank -artifactId=bank -======= -#Generated by Maven Integration for Eclipse -#Wed May 16 18:21:54 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=C\:\\Users\\Lohit\\Desktop\\bank -artifactId=bank ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/16BankAppSpringBootJPA/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml b/16BankAppSpringBootJPA/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml deleted file mode 100644 index 77e0a5d..0000000 --- a/16BankAppSpringBootJPA/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - bank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/16BankAppSpringBootJPA/bin/target/classes/application.properties b/16BankAppSpringBootJPA/bin/target/classes/application.properties deleted file mode 100644 index 359e798..0000000 --- a/16BankAppSpringBootJPA/bin/target/classes/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -<<<<<<< HEAD -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -======= -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/16BankAppSpringBootJPA/mvnw b/16BankAppSpringBootJPA/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/16BankAppSpringBootJPA/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/16BankAppSpringBootJPA/mvnw.cmd b/16BankAppSpringBootJPA/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/16BankAppSpringBootJPA/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/16BankAppSpringBootJPA/pom.xml b/16BankAppSpringBootJPA/pom.xml deleted file mode 100644 index d09d388..0000000 --- a/16BankAppSpringBootJPA/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - MyBankDemo - project for Bank Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - log4j - log4j - 1.2.17 - - - - org.mockito - mockito-all - 1.9.5 - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/BankApplication.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/BankApplication.java deleted file mode 100644 index 1387b62..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/BankApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.springboot.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class BankApplication { - - public static void main(String[] args) { - SpringApplication.run(BankApplication.class, args); - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/ATMController.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/ATMController.java deleted file mode 100644 index cc655e5..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/ATMController.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import java.math.BigDecimal; -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; -import com.springboot.bank.service.ATMService; - -/** - * @author Ram - * - */ - -@RestController -public class ATMController { - - final Logger LOGGER = Logger.getLogger(ATMController.class); - - @Autowired - ATMService atmService; - - @PostMapping(value = "/createATM") - public ResponseEntity createATM(@RequestBody WrapperBankATM wrapperBankATM) throws BankException { - ATM atmData = null; - try { - atmData = atmService.createATM(wrapperBankATM); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - - @PostMapping(value = "/addMoney/{atmId}/{bankId}/{moneyToBeAddedToATM}") - public ResponseEntity addMoneyFromBank(@PathVariable Long atmId, @PathVariable Long bankId, - @PathVariable BigDecimal moneyToBeAddedToATM) throws BankException { - ATM atmData = null; - try { - atmData = atmService.addMoneyFromBank(atmId, bankId, moneyToBeAddedToATM); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - - @PostMapping(value = "/withdrawMoneyFromATM") - public ResponseEntity withdrawMoney(@RequestBody ATMDetails atmDetails) throws BankException { - ATM atmData = null; - try { - atmData = atmService.withdrawMoney(atmDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/AccountController.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/AccountController.java deleted file mode 100644 index 8027842..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/AccountController.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.service.AccountService; - -/** - * @author Ram - * - */ - -@RestController -public class AccountController { - - @Autowired - AccountService accountService; - - final Logger LOGGER = Logger.getLogger(AccountController.class); - - @PostMapping(value = "/createAccount") - public ResponseEntity createAccount(@RequestBody WrapperBankCustomerAccount wrapperBankCustomerAccount) - throws BankException { - Account accountData = null; - try { - accountData = accountService.createAccount(wrapperBankCustomerAccount); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not added"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/depositMoney") - public ResponseEntity depositMoney(@RequestBody AccountDetails accountDetails) throws BankException { - Account accountData = null; - try { - accountData = accountService.depositMoney(accountDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/withdrawMoneyFromAccount") - public ResponseEntity withdrawMoney(@RequestBody AccountDetails accountDetails) throws BankException { - Account accountData = null; - try { - accountData = accountService.withdrawMoney(accountDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/viewAccount/{accountId}") - public ResponseEntity getAccountDetails(@PathVariable Long accountId) throws BankException { - Account accountData = null; - try { - accountData = accountService.getAccountDetails(accountId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/BankController.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/BankController.java deleted file mode 100644 index 553325e..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.service.BankService; - -/** - * @author Ram - * - */ - -@RestController -public class BankController { - - final Logger LOGGER = Logger.getLogger(BankController.class); - - @Autowired - private BankService bankService; - - @PostMapping(value = "/createBank") - public ResponseEntity addBank(@RequestBody Bank bank) throws BankException { - Bank bankData = null; - try { - bankData = bankService.createBank(bank); - } catch (Exception e) { - LOGGER.error(e.getMessage()); - } - if (bankData == null) - throw new BankException("Bank details not added"); - else - return new ResponseEntity(bankData, HttpStatus.OK); - } - - @GetMapping(value = "/viewBankDetails/{bankId}") - public ResponseEntity getBankDetails(@PathVariable Long bankId) throws BankException { - Bank bank = null; - try { - bank = bankService.getBankDetails(bankId); - } catch (Exception e) { - LOGGER.error(e.getMessage()); - } - if (bank == null) - throw new BankException("No such Id of Bank exixts"); - else - return new ResponseEntity(bank, HttpStatus.OK); - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/BankDenominationController.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/BankDenominationController.java deleted file mode 100644 index d92cd67..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/BankDenominationController.java +++ /dev/null @@ -1,76 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import java.util.logging.Logger; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.WrapperATMDenomination; -import com.springboot.bank.dto.WrapperDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Denomination; -import com.springboot.bank.service.BankDenominationService; - - - -/** - * @author Ram - * - */ -@RestController -public class BankDenominationController { - - - private static final Logger LOGGER = Logger.getLogger( Account.class.getName() ); - - - @Autowired - BankDenominationService bankDenominationService; - - @PostMapping("/totalDenom") - public ResponseEntity getTotalDenominationForBank(final @RequestBody WrapperDenomination wrapperDenomination ) throws BankException { - final Denomination denomination = new Denomination(); - try { - bankDenominationService.addDenominationNew(wrapperDenomination.getAmount()); - } catch (BankException e) { - System.out.println(e.getMessage()); - LOGGER.info(e.getMessage()); - } - if (denomination == null) { - throw new BankException("not found"); - } else { - return new ResponseEntity(denomination, HttpStatus.OK); - } - } - - /** - * @param wrapperBankDenomination - * @return - * @throws BankException - */ -@PostMapping("/") public ResponseEntity getTotalDenominationForATM(final @RequestBody WrapperATMDenomination wrapperATMDenomination ) throws BankException { - final Denomination bankDenomination = new Denomination(); - try { - bankDenominationService.addDenominationNew(wrapperATMDenomination.getAmount()); - } catch (BankException e) { - System.out.println(e.getMessage()); - LOGGER.info(e.getMessage()); - } - return new ResponseEntity(bankDenomination, HttpStatus.OK); - } - - - - - - - -} \ No newline at end of file diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/CustomerController.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/CustomerController.java deleted file mode 100644 index f567379..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/CustomerController.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Customer; -import com.springboot.bank.service.CustomerService; - -/** - * @author Ram - * - */ - -@RestController -public class CustomerController { - - final Logger LOGGER = Logger.getLogger(CustomerController.class); - - @Autowired - private CustomerService customerService; - - @PostMapping(value = "/createCustomer") - public ResponseEntity createCustomer(@RequestBody WrapperBankCustomer wrapperBankCustomer) - throws BankException { - Customer customerData = null; - try { - customerData = customerService.createCustomer(wrapperBankCustomer); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (customerData == null) - throw new BankException("Customer details not added"); - else - return new ResponseEntity(customerData, HttpStatus.OK); - } - - @GetMapping(value = "/viewCustomer/{customerId}") - public ResponseEntity getCustomerDetails(@PathVariable Long customerId) throws BankException { - Customer customerData = null; - try { - customerData = customerService.getCustomerDetails(customerId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (customerData == null) - throw new BankException("No such Id of Bank exixts"); - else - return new ResponseEntity(customerData, HttpStatus.OK); - } - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/TransactionController.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/TransactionController.java deleted file mode 100644 index 28f96e7..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/controller/TransactionController.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import java.util.Optional; -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.service.TransactionService; - -/** - * @author Ram - * - */ - -@RestController -public class TransactionController { - - final Logger LOGGER = Logger.getLogger(TransactionController.class); - - @Autowired - private TransactionService transactionService; - - @PostMapping(value = "/createTransaction") - public ResponseEntity createTransaction(@RequestBody Transaction transaction) throws BankException { - String transactionData = null; - try { - transactionData = transactionService.createTransaction(transaction); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (transactionData == null) - throw new BankException("Transaction details not added"); - else - return new ResponseEntity(transactionData, HttpStatus.OK); - } - - @PostMapping(value = "/viewTransaction/{customerId}") - public ResponseEntity> getTransactionDetails(@PathVariable Long customerId) - throws BankException { - Optional transactionData = null; - try { - transactionData = transactionService.getTransactionDetails(customerId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (transactionData == null) - throw new BankException("Transaction details not found"); - else - return new ResponseEntity>(transactionData, HttpStatus.OK); - } - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/ATMDetails.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/ATMDetails.java deleted file mode 100644 index e922d99..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/ATMDetails.java +++ /dev/null @@ -1,110 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import java.math.BigDecimal; - -/** - * @author Ram - * - */ -public class ATMDetails { - - private Long bankId; - private Long atmId; - private Long accountId; - private BigDecimal amount; - - /** - * - */ - public ATMDetails() { - super(); - } - - /** - * @param bankId - * @param atmId - * @param accountId - * @param amount - */ - public ATMDetails(Long bankId, Long atmId, Long accountId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.atmId = atmId; - this.accountId = accountId; - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - - /** - * @param atmId - * the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "ATMDetails [bankId=" + bankId + ", atmId=" + atmId + ", accountId=" + accountId + ", amount=" + amount - + "]"; - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/AccountDetails.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/AccountDetails.java deleted file mode 100644 index db6299e..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/AccountDetails.java +++ /dev/null @@ -1,111 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import java.math.BigDecimal; - -/** - * @author Ram - * - */ -public class AccountDetails { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - - /** - * - */ - public AccountDetails() { - super(); - } - - /** - * @param bankId - * @param customerId - * @param accountId - * @param amountToBeAdded - */ - public AccountDetails(Long bankId, Long customerId, Long accountId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.customerId = customerId; - this.accountId = accountId; - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - - /** - * @return the amountToBeAdded - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amountToBeAdded - * the amountToBeAdded to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountDetails [bankId=" + bankId + ", customerId=" + customerId + ", accountId=" + accountId - + ", amount=" + amount + "]"; - } - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java deleted file mode 100644 index 175391b..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Denomination; - -/** - * @author Ram - * - */ -public class WrapperATMDenomination { - - -private Denomination denomination; - -private Integer amount; -private Long bankId; -private Long atmId; - - - /** - * @param denomination - * @param amount - * @param bankId - * @param atmId - */ - public WrapperATMDenomination(final Denomination denomination,final Integer amount,final Long bankId,final Long atmId) { - this.denomination = denomination; - this.amount = amount; - this.bankId = bankId; - this.atmId = atmId; - } - /** - * @return the bankDenomination - */ - public Denomination getBankDenomination() { - return denomination; - } - /** - * @param denomination the bankDenomination to set - */ - public void setBankDenomination(final Denomination denomination) { - this.denomination = denomination; - } - /** - * @return the amount - */ - public Integer getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(final Integer amount) { - this.amount = amount; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(final Long atmId) { - this.atmId = atmId; - } - /* - * java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperATMDenomination [bankDenomination=" + denomination + ", amount=" + amount + ", bankId=" - + bankId + ", atmId=" + atmId + "]"; - } - - - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperAccountDenomination.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperAccountDenomination.java deleted file mode 100644 index c6c1c92..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperAccountDenomination.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.BankDenomination; - -/** - * @author Ram - * - */ -public class WrapperAccountDenomination { - - - private BankDenomination bankDenomination; - private Integer amount; - private Long bankId; - private Long accountId; - /** - * @param bankDenomination - * @param amount - * @param bankId - * @param accountId - */ - public WrapperAccountDenomination(BankDenomination bankDenomination, Integer amount, Long bankId, Long accountId) { - this.bankDenomination = bankDenomination; - this.amount = amount; - this.bankId = bankId; - this.accountId = accountId; - } - /** - * @return the bankDenomination - */ - public BankDenomination getBankDenomination() { - return bankDenomination; - } - /** - * @param bankDenomination the bankDenomination to set - */ - public void setBankDenomination(BankDenomination bankDenomination) { - this.bankDenomination = bankDenomination; - } - /** - * @return the amount - */ - public Integer getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(Integer amount) { - this.amount = amount; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperAccountDenomination [bankDenomination=" + bankDenomination + ", amount=" + amount + ", bankId=" - + bankId + ", accountId=" + accountId + "]"; - } - - - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankATM.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankATM.java deleted file mode 100644 index 135b0b5..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankATM.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.ATM; - -/** - * @author Ram - * - */ -public class WrapperBankATM { - - ATM atm; - Long bankId; - - /** - * - */ - public WrapperBankATM() { - super(); - } - - /** - * @param atm - * @param bankId - */ - public WrapperBankATM(ATM atm, Long bankId) { - this.atm = atm; - this.bankId = bankId; - } - - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - - /** - * @param atm - * the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankATM [atm=" + atm + ", bankId=" + bankId + "]"; - } - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java deleted file mode 100644 index 5c1fdf3..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Customer; - -/** - * @author Ram - * - */ -public class WrapperBankCustomer { - - Customer customer; - Long bankId; - - /** - * - */ - public WrapperBankCustomer() { - super(); - } - - /** - * @param customer - * @param bankId - */ - public WrapperBankCustomer(Customer customer, Long bankId) { - super(); - this.customer = customer; - this.bankId = bankId; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankCustomer [customer=" + customer + ", bankId=" + bankId + "]"; - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java deleted file mode 100644 index 78ab35b..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Account; - -/** - * @author Ram - * - */ -public class WrapperBankCustomerAccount { - - private Account account; - private Long customerId; - private Long bankId; - - /** - * - */ - public WrapperBankCustomerAccount() { - super(); - } - - /** - * @param account - * @param customerId - * @param bankId - */ - public WrapperBankCustomerAccount(Account account, Long customerId, Long bankId) { - super(); - this.account = account; - this.customerId = customerId; - this.bankId = bankId; - } - - /** - * @return the account - */ - public Account getAccount() { - return account; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankCustomerAccount [account=" + account + ", customerId=" + customerId + ", bankId=" + bankId - + "]"; - } - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankDenomination.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankDenomination.java deleted file mode 100644 index c8144f0..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperBankDenomination.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.BankDenomination; - -/** - * @author Sumit - * - */ -public class WrapperBankDenomination { - - BankDenomination bankDenomination; - Integer amount; - Long bankId; - - /** - * - */ - public WrapperBankDenomination() { - super(); - } - - /** - * @param bankDenomination - * @param amount - * @param bankId - */ - public WrapperBankDenomination(BankDenomination bankDenomination, Integer amount, Long bankId) { - super(); - this.bankDenomination = bankDenomination; - this.amount = amount; - this.bankId = bankId; - } - - /** - * @return the bankDenomination - */ - public BankDenomination getBankDenomination() { - return bankDenomination; - } - - /** - * @param bankDenomination - * the bankDenomination to set - */ - public void setBankDenomination(BankDenomination bankDenomination) { - this.bankDenomination = bankDenomination; - } - - /** - * @return the amount - */ - public Integer getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(Integer amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankDenomination [bankDenomination=" + bankDenomination + ", amount=" + amount + ", bankId=" - + bankId + "]"; - } - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperDenomination.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperDenomination.java deleted file mode 100644 index 6a59e42..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/dto/WrapperDenomination.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Denomination; - -/** - * @author Ram - * - */ -public class WrapperDenomination { - - private Denomination denomination; - private Integer amount; - private Long bankId; - - - /** - * Default constructor - */ - public WrapperDenomination() { - super(); - } - - /** - * @param denomination - * @param amount - * @param bankId - */ - public WrapperDenomination(Denomination denomination, Integer amount, Long bankId) { - super(); - this.denomination = denomination; - this.amount = amount; - this.bankId = bankId; - } - - /** - * @return the denomination - */ - public Denomination getDenomination() { - return denomination; - } - - /** - * @param denomination the denomination to set - */ - public void setDenomination(Denomination denomination) { - this.denomination = denomination; - } - - /** - * @return the amount - */ - public Integer getAmount() { - return amount; - } - - /** - * @param amount the amount to set - */ - public void setAmount(Integer amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperDenomination [denomination=" + denomination + ", amount=" + amount + ", bankId=" + bankId + "]"; - } - - - - - - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/exception/BankException.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/exception/BankException.java deleted file mode 100644 index ec3a048..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/exception/BankException.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.exception; - -/** - * @author Ram - * - */ -public class BankException extends Exception { - - public BankException(String message) { - super(message); - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/ATM.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/ATM.java deleted file mode 100644 index 2ad91cd..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/ATM.java +++ /dev/null @@ -1,99 +0,0 @@ - -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Ram - *It will represents the ATM entity - */ -@Entity -@Table(name = "atm") -public class ATM { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long atmId; - // @Required - private BigDecimal money; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - private static final Logger LOGGER = Logger.getLogger( ATM.class.getName() ); - - /** - * - */ - public ATM() { - super(); - } - - /** - * @param atmId - * @param money - * @param bank - */ - public ATM(BigDecimal money, Bank bank) { - this.money = money; - this.bank = bank; - LOGGER.info("Inside the ATM Entity"); - - } - - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - - /** - * @param atmId - * the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - - /** - * @return the money - */ - public BigDecimal getMoney() { - return money; - } - - /** - * @param money - * the money to set - */ - public void setMoney(BigDecimal money) { - this.money = money; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "ATM [atmId=" + atmId + ", money=" + money + ", bank=" + bank + "]"; - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Account.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Account.java deleted file mode 100644 index 6ab70cf..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Account.java +++ /dev/null @@ -1,126 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Ram It will represents the Account Entity. - */ -@Entity -@Table(name = "account") -public class Account { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long accountId; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - private BigDecimal amount; - - /* - * @Entity This is logger used instead of Sysout. - */ - private static final Logger LOGGER = Logger.getLogger(Account.class.getName()); - - /** - * - */ - public Account() { - super(); - } - - /** - * @param accountId - * acted as primary key of the table account - * @param bank - * @param customer - * @param amount - */ - public Account(final Bank bank, final Customer customer, final BigDecimal amount) { - this.bank = bank; - this.customer = customer; - this.amount = amount; - LOGGER.info("Inside the account Entity"); - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Account [accountId=" + accountId + ", bank=" + bank + ", customer=" + customer + ", amount=" + amount - + "]"; - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Bank.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Bank.java deleted file mode 100644 index 4f9760a..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author Ram - *It will represents the BANK entity - */ -@Table(name = "bank") -@Entity -public class Bank { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "bankId") - private Long bankId; - private BigDecimal amount; - - private static final Logger LOGGER = Logger.getLogger( Bank.class.getName() ); - - - /** - * - */ - public Bank() { - super(); - } - - /** - * @param bankId - * @param amount - */ - public Bank(BigDecimal amount) { - this.amount = amount; - LOGGER.info("Inside the BAnk Entity"); - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } -} \ No newline at end of file diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/BankDenomination.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/BankDenomination.java deleted file mode 100644 index 01ec788..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/BankDenomination.java +++ /dev/null @@ -1,136 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -/** - * @author Sumit - * - */ - -@Entity -public class BankDenomination { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long denominationId; - @OneToOne(targetEntity = Bank.class) - private Bank bank; - private Integer noOfDenomination; - private Integer denomination; - - - private static final Logger LOGGER = Logger.getLogger( ATM.class.getName() ); - /** - * - */ - public BankDenomination() { - - super(); - LOGGER.info("Inside the BankDenomination Entity"); - } - - - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BankDenominationNew [denominationId=" + denominationId + ", bank=" + bank + ", noOfDenomination=" - + noOfDenomination + ", denomination=" + denomination + "]"; - } - - - - /** - * @return the denominationId - */ - public Long getDenominationId() { - return denominationId; - } - - /** - * @param denominationId - * the denominationId to set - */ - public void setDenominationId(Long denominationId) { - this.denominationId = denominationId; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - - /** - * @return the noOfDenomination - */ - public Integer getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(Integer noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - - - /** - * @return the denomination - */ - public Integer getDenomination() { - return denomination; - } - - - - /** - * @param denomination the denomination to set - */ - public void setDenomination(Integer denomination) { - this.denomination = denomination; - } - - - - /** - * @param denominationId - * @param bank - * @param noOfDenomination - * @param denomination - */ - public BankDenomination(Long denominationId, Bank bank, Integer noOfDenomination, Integer denomination) { - super(); - this.denominationId = denominationId; - this.bank = bank; - this.noOfDenomination = noOfDenomination; - this.denomination = denomination; - } - - - -} \ No newline at end of file diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Customer.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Customer.java deleted file mode 100644 index 2aefddb..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Customer.java +++ /dev/null @@ -1,131 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.util.logging.Logger; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import org.springframework.lang.NonNull; - -/** - * @author Ram - *It will represents the CUstomer Entity. - */ - -@Entity -@Table(name = "customer") -public class Customer { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long customerId; - @Column(nullable = false, length = 100) - private String customerName; - @NonNull - private Integer customerPin; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - private static final Logger LOGGER = Logger.getLogger( Customer.class.getName() ); - - - // @JoinTable(name = "bank_customer", joinColumns = @JoinColumn(name = - // "customerId"), inverseJoinColumns = @JoinColumn(name = "bankId")) - - /** - * - */ - public Customer() { - super(); - } - - /** - * @param customerId - * @param customerName - * @param customerPin - * @param bank - */ - public Customer( String customerName, Integer customerPin, Bank bank) { - this.customerName = customerName; - this.customerPin = customerPin; - this.bank = bank; - LOGGER.info("Inside the Customer Entity"); - - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - - /** - * @param customerName - * the customerName to set - */ - public void setCustomerName(String customerName) { - this.customerName = customerName; - } - - /** - * @return the customerPin - */ - public Integer getCustomerPin() { - return customerPin; - } - - /** - * @param customerPin - * the customerPin to set - */ - public void setCustomerPin(Integer customerPin) { - this.customerPin = customerPin; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", customerPin=" + customerPin - + ", bank=" + bank + "]"; - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Denomination.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Denomination.java deleted file mode 100644 index a404f01..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Denomination.java +++ /dev/null @@ -1,136 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -/** - * @author Ram - * - */ - -@Entity -public class Denomination { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long denominationId; - @OneToOne(targetEntity = Bank.class) - private Bank bank; - private Integer noOfDenomination; - private Integer denomination; - - - private static final Logger LOGGER = Logger.getLogger( Denomination.class.getName() ); - /** - * - */ - public Denomination() { - - super(); - LOGGER.info("Inside the BankDenomination Entity"); - } - - - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BankDenominationNew [denominationId=" + denominationId + ", bank=" + bank + ", noOfDenomination=" - + noOfDenomination + ", denomination=" + denomination + "]"; - } - - - - /** - * @return the denominationId - */ - public Long getDenominationId() { - return denominationId; - } - - /** - * @param denominationId - * the denominationId to set - */ - public void setDenominationId(Long denominationId) { - this.denominationId = denominationId; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - - /** - * @return the noOfDenomination - */ - public Integer getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(Integer noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - - - /** - * @return the denomination - */ - public Integer getDenomination() { - return denomination; - } - - - - /** - * @param denomination the denomination to set - */ - public void setDenomination(Integer denomination) { - this.denomination = denomination; - } - - - - /** - * @param denominationId - * @param bank - * @param noOfDenomination - * @param denomination - */ - public Denomination(Long denominationId, Bank bank, Integer noOfDenomination, Integer denomination) { - super(); - this.denominationId = denominationId; - this.bank = bank; - this.noOfDenomination = noOfDenomination; - this.denomination = denomination; - } - - - -} \ No newline at end of file diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Transaction.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Transaction.java deleted file mode 100644 index d5e58f9..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/model/Transaction.java +++ /dev/null @@ -1,145 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Ram - * - */ - -@Entity -@Table(name = "transaction") -public class Transaction { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long transactionId; - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - @ManyToOne(targetEntity = Account.class) - private Account account; - private BigDecimal amount; - private String transactionType; - - - private static final Logger LOGGER = Logger.getLogger( Bank.class.getName() ); - - - /** - * - */ - public Transaction() { - super(); - } - - /** - * @param transactionId - * @param customer - * @param account - * @param amount - * @param transactionType - */ - public Transaction(Customer customer, Account account, BigDecimal amount, String transactionType) { - this.customer = customer; - this.account = account; - this.amount = amount; - this.transactionType = transactionType; - LOGGER.info("Inside the Transaction Entity"); - - } - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @return the account - */ - public Account getAccount() { - return account; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(String transactionType) { - this.transactionType = transactionType; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Transaction [transactionId=" + transactionId + ", customer=" + customer + ", account=" + account - + ", amount=" + amount + ", transactionType=" + transactionType + "]"; - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/ATMDAO.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/ATMDAO.java deleted file mode 100644 index 276159f..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/ATMDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.ATM; - -/** - * @author Ram - * - */ -public interface ATMDAO extends JpaRepository { - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/AccountDAO.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/AccountDAO.java deleted file mode 100644 index 91fe742..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/AccountDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Account; - -/** - * @author Ram - * - */ -public interface AccountDAO extends JpaRepository{ - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/BankDAO.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/BankDAO.java deleted file mode 100644 index dd78d4a..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/BankDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Bank; - -/** - * @author Ram - * - */ -public interface BankDAO extends JpaRepository { - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java deleted file mode 100644 index 7def6b0..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Denomination; - -/** - * @author Ram - * - */ - -public interface BankDenominationDAO extends JpaRepository { - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/CustomerDAO.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/CustomerDAO.java deleted file mode 100644 index 922c7e6..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/CustomerDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Customer; - -/** - * @author Ram - * - */ -public interface CustomerDAO extends JpaRepository { - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/TransactionDAO.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/TransactionDAO.java deleted file mode 100644 index ec26c59..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/repository/TransactionDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Transaction; - -/** - * @author Ram - * - */ -public interface TransactionDAO extends JpaRepository { - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/ATMService.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/ATMService.java deleted file mode 100644 index 3599a69..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/ATMService.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; - -/** - * @author Ram - * - */ -public interface ATMService { - - ATM createATM(WrapperBankATM wrapperBankATM) throws BankException; - - ATM addMoneyFromBank(Long atmId, Long bankId, BigDecimal moneyToBeAddedToATM) throws BankException; - - ATM withdrawMoney(ATMDetails atmDetails) throws BankException; - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/ATMServiceImpl.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/ATMServiceImpl.java deleted file mode 100644 index e496d25..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,142 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.repository.ATMDAO; -import com.springboot.bank.repository.AccountDAO; -import com.springboot.bank.repository.BankDAO; - -/** - * @author Ram - * - */ -@Service("ATMService") -public class ATMServiceImpl implements ATMService { - - @Autowired - ATMDAO atmDao; - - @Autowired - BankDAO bankDao; - - @Autowired - AccountDAO accountDao; - - /* - * @see - * com.springboot.bank.service.ATMService#createATM(com.springboot.bank.model. - * ATM) - */ - @Override - public ATM createATM(WrapperBankATM wrapperBankATM) throws BankException { - ATM ATMData = wrapperBankATM.getAtm(); - Long bankId = wrapperBankATM.getBankId(); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - if (bank == null) - throw new BankException("Id not found"); - else { - ATMData.setBank(bank); - ATMData = atmDao.save(ATMData); - } - return ATMData; - } - - @Override - public ATM addMoneyFromBank(Long atmId, Long bankId, BigDecimal moneyToBeAddedToATM) throws BankException { - - Optional atmList = atmDao.findById(atmId); - ATM atmdata = null; - ATM atm = atmList.get(); - if (atm == null) - throw new BankException("Atm with such Id doesnt exist"); - else { - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - if (bank == null) - throw new BankException("Bank with such Id doesnt exist"); - else { - BigDecimal bankMoney = bank.getAmount(); - BigDecimal finalAmount = bankMoney.subtract(moneyToBeAddedToATM); - if (finalAmount.compareTo(BigDecimal.ZERO) == 1) { - BigDecimal atmMoney = atm.getMoney().add(moneyToBeAddedToATM); - atm.setMoney(atmMoney); - bank.setAmount(finalAmount); - atmdata = atmDao.save(atm); - bankDao.save(bank); - } else - throw new BankException("Bank doesnt have enough money"); - } - return atmdata; - } - } - - @Override - public ATM withdrawMoney(ATMDetails atmDetails) throws BankException { - Long atmId = atmDetails.getAccountId(); - Long bankId = atmDetails.getBankId(); - Long accountId = atmDetails.getAccountId(); - BigDecimal amountToBeWithdrawn = atmDetails.getAmount(); - Account account = null; - Bank bank = null; - ATM atm = null; - if (accountId == 0 || bankId == 0 || atmId == 0) { - throw new BankException("Id cannot be zero"); - } - else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account exists"); - } else { - newAccountBalance = amountToBeWithdrawn.subtract(account.getAmount()); - if (newAccountBalance.compareTo(BigDecimal.ZERO) == 1) { - account.setAmount(newAccountBalance); - accountDao.save(account); - } else { - throw new BankException("Account Balance cannot be negative"); - } - } - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such id of Bank exists"); - } else { - BigDecimal newBankBalance = amountToBeWithdrawn.subtract(bank.getAmount()); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 1) { - bank.setAmount(newBankBalance); - bankDao.save(bank); - } else { - throw new BankException("Bank Balance cannot be negative"); - } - } - Optional atmList = atmDao.findById(atmId); - atm = atmList.get(); - if (atm == null) { - throw new BankException("No such id of ATM exists"); - } else { - BigDecimal newBankBalance = amountToBeWithdrawn.subtract(bank.getAmount()); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 1) { - atm.setMoney(newAccountBalance); - atmDao.save(atm); - } else { - throw new BankException("ATM Balance cannot be negative"); - } - } - } - return atm; - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/AccountService.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/AccountService.java deleted file mode 100644 index dba2067..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/AccountService.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; - -/** - * @author Ram - * - */ -public interface AccountService { - - Account createAccount(WrapperBankCustomerAccount wrapperBankCustomerAccount) throws BankException; - - Account depositMoney(AccountDetails accountDetails) throws BankException; - - Account withdrawMoney(AccountDetails accountDetails) throws BankException; - - Account getAccountDetails(Long accountId) throws BankException; -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/AccountServiceImpl.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/AccountServiceImpl.java deleted file mode 100644 index 8819a7f..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,192 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Customer; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.repository.AccountDAO; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.CustomerDAO; - -/** - * @author Ram - * - */ -@Service("accountService") -public class AccountServiceImpl implements AccountService { - - @Autowired - BankDAO bankDao; - - @Autowired - CustomerDAO customerDao; - - @Autowired - AccountDAO accountDao; - - @Autowired - TransactionService transactionService; - - /* - * @see - * com.springboot.bank.service.AccountService#createAccount(com.springboot.bank. - * wrapper.WrapperBankCustomerAccount) - */ - @Override - public Account createAccount(WrapperBankCustomerAccount wrapperBankCustomerAccount) throws BankException { - - Account account = wrapperBankCustomerAccount.getAccount(); - if (account == null) - throw new BankException("Account not found"); - else { - Long bankId = wrapperBankCustomerAccount.getBankId(); - // System.out.println(bankId); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - // System.out.println(bank); - if (bank == null) { - throw new BankException("Bank with such Id doesnt exist"); - } else { - account.setBank(bank); - } - Long customerId = wrapperBankCustomerAccount.getCustomerId(); - Optional customerList = customerDao.findById(customerId); - Customer customer = customerList.get(); - if (customer == null) { - throw new BankException("Customer with such Id doesnt exist"); - } else { - account.setCustomer(customer); - account = accountDao.save(account); - } - } - return account; - } - - @Transactional - @Override - public Account depositMoney(AccountDetails accountDetails) throws BankException { - - Long accountId = accountDetails.getAccountId(); - Long bankId = accountDetails.getBankId(); - Long customerId = accountDetails.getCustomerId(); - BigDecimal amountToBeAdded = accountDetails.getAmount(); - Account account = null; - Bank bank = null; - Customer customer = null; - if (accountId == 0 || bankId == 0 || customerId == 0 || amountToBeAdded.compareTo(BigDecimal.ZERO) == 0) - throw new BankException("Id or amount cannot be zero"); - else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account id exists"); - } else { - newAccountBalance = amountToBeAdded.add(account.getAmount()); - Optional customerList = customerDao.findById(customerId); - customer = customerList.get(); - if (customer == null) { - throw new BankException("No such customer account exists"); - } else { - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such bank account exists"); - } else { - account.setAmount(newAccountBalance); - accountDao.save(account); - Transaction transaction = new Transaction(customer, account, amountToBeAdded, - "Money Deposited"); - transactionService.createTransaction(transaction); - BigDecimal newBankBalance = amountToBeAdded.add(bank.getAmount()); - bank.setAmount(newBankBalance); - bankDao.save(bank); - } - } - } - } - return account; - } - - @Transactional - @Override - public Account withdrawMoney(AccountDetails accountDetails) throws BankException { - Long accountId = accountDetails.getAccountId(); - Long bankId = accountDetails.getBankId(); - Long customerId = accountDetails.getCustomerId(); - BigDecimal amountToBeWithdrawn = accountDetails.getAmount(); - Account account = null; - Bank bank = null; - Customer customer = null; - if (accountId == 0 || bankId == 0 || customerId == 0) { - throw new BankException("Id or amount cannot be zero"); - }else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account exists"); - } else { - newAccountBalance = account.getAmount().subtract(amountToBeWithdrawn); - if (newAccountBalance.compareTo(BigDecimal.ZERO) == -1) { - throw new BankException("Account Balance cannot be 0 or negative"); - } else { - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such bank id exists"); - } else { - BigDecimal newBankBalance = bank.getAmount().subtract(amountToBeWithdrawn); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 0 - || newBankBalance.compareTo(BigDecimal.ZERO) == -1) { - throw new BankException("Bank Balance cannot be 0 or negative"); - } else { - Optional customerList = customerDao.findById(customerId); - customer = customerList.get(); - if (customer == null) { - throw new BankException("No such customer id exists"); - } else { - Transaction transaction = new Transaction(customer, account, amountToBeWithdrawn, - "Money Withdrawn"); - transactionService.createTransaction(transaction); - account.setAmount(newAccountBalance); - accountDao.save(account); - bank.setAmount(newBankBalance); - bankDao.save(bank); - - } - } - } - } - } - } - return account; - } - - @Override - public Account getAccountDetails(Long accountId) throws BankException { - Optional accountList = accountDao.findById(accountId); - Account account = null; - account = accountList.get(); - if (account == null) - throw new BankException("Account id doesnt exist"); - else { - account = accountDao.save(account); - } - return account; - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankDenominationService.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankDenominationService.java deleted file mode 100644 index 761aed6..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankDenominationService.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.dto.WrapperDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Denomination; - -/** - * @author Ram - * - */ -public interface BankDenominationService { - - - - void addDenominationNew(Integer amount) throws BankException; - -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index 5387ca9..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.Random; -import java.util.logging.Logger; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.WrapperDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Denomination; -import com.springboot.bank.model.Denomination; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.BankDenominationDAO; - -/** - * @author Ram - * - */ -@Service("bankDenominationService") -public class BankDenominationServiceImpl implements BankDenominationService { - - - - private static final Logger LOGGER = Logger.getLogger( Account.class.getName() ); - - - - @Autowired - private BankDenominationDAO bankDenominationDAO; - - - @Autowired - BankDAO bankDao; - - /* - * @Override public BankDenomination addDenomination(WrapperBankDenomination - * wrapperBankDenomination) throws BankException { Long bankId = - * wrapperBankDenomination.getBankId(); Integer amount = - * wrapperBankDenomination.getAmount(); BankDenomination bankDenomination = - * wrapperBankDenomination.getBankDenomination(); Bank bank = null; Integer - * noOf2000s = null; Integer noOf500s = null; Integer noOf100s = null; Integer - * temperoryCount = 0; if (amount / 2000 != 0) { noOf2000s = amount / 2000; - * amount = amount % 2000; System.out.println(noOf2000s); temperoryCount = - * temperoryCount + noOf2000s; bankDenomination.setNoOf2000s(noOf2000s); } if - * (amount != 0 & amount / 500 != 0) { noOf500s = amount / 500; amount = amount - * % 500; temperoryCount = temperoryCount + noOf500s; - * bankDenomination.setNoOf500s(noOf500s); } - * - * if (amount != 0 & amount / 100 != 0) { noOf100s = amount / 100; amount = - * amount % 100; temperoryCount = temperoryCount + noOf100s; - * bankDenomination.setNoOf100s(noOf100s); } - * - * Optional bankList = bankDao.findById(bankId); if (bankList.isPresent()) - * { bank = bankList.get(); bankDenomination.setBank(bank); - * bankDenomination.setNoOfDenomination(temperoryCount); - * bankDenominationDAO.save(bankDenomination); } else { throw new - * BankException("bank is not present"); } return bankDenomination; } - */ - - @Override - public void addDenominationNew(final Integer amount) throws BankException { - - final List list1 = new ArrayList(); - list1.add(2000); - list1.add(500); - list1.add(100); - list1.add(200); - final Random rand = new Random(); - Integer remainder = amount; - //System.out.println("list >>>>" + list1); - LOGGER.info("list >>>>" + list1); - for (int i = 0; i <= list1.size(); i++) { - final Integer randomIndex = rand.nextInt(list1.size()); - // System.out.println("randomIndex >>" + randomIndex); - final Integer randomElement = list1.get(randomIndex); - // System.out.println("randomElement >>" + randomElement); - if (randomElement.compareTo(remainder) == 0 || randomElement.compareTo(remainder) == -1) { - final Denomination bankDenominationNew = new Denomination(); - bankDenominationNew.setNoOfDenomination(remainder / randomElement); - bankDenominationNew.setDenomination(randomElement); - remainder = remainder % randomElement; - //System.out.println(bankDenominationNew); - LOGGER.info(">>>> Denomination"+bankDenominationNew); - if (remainder == 0) { - break; - } - } - list1.remove(randomIndex); - } - - } -} \ No newline at end of file diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankService.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankService.java deleted file mode 100644 index ef543af..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankService.java +++ /dev/null @@ -1,22 +0,0 @@ - -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; - -/** - * @author Ram - * @nterface BankService - * Description : It has 2 methods declaration in it. whichever class will implements, - * will provide implemenatation for this methods. - * - */ -public interface BankService { - - Bank createBank(Bank bank) throws BankException; - - Bank getBankDetails(Long bankId) throws BankException; -} \ No newline at end of file diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankServiceImpl.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankServiceImpl.java deleted file mode 100644 index 9fafbc4..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.repository.BankDAO; - -/** - * @author Ram - * @Service("bankService") - * Description : It provide implementation for BankServices method. - * 1.It Helps to create new bank - * 2.getBankDetails - */ -@Service("bankService") -public class BankServiceImpl implements BankService { - - - //Injecting properties of BankDAO - @Autowired - private BankDAO bankDao; - - /* - * BankService#createBank - * Desc: this method helps to create a new bank with default amount 0. - * - */ - @Override - public Bank createBank(Bank bank) throws BankException { - Bank bankData = null; - final BigDecimal amount = bank.getAmount(); - /*if (amount.compareTo(BigDecimal.ZERO) == -1) - throw new BankException("amount cannot be zero or less than zero"); - else {*/ - bankData = bankDao.save(bank); - return bankData; - } - - /* - *BankService#getBankDetails - *Desc : It will helps to get information about details of bank passing a Id of it. - *Exception : it will throw exception if Id not found. - */ - @Override - public Bank getBankDetails(Long bankId) throws BankException { - Optional bankList = bankDao.findById(bankId); - if (bankList.isPresent()) { - Bank bank = bankList.get(); - return bank; - } else - throw new BankException("Bank details not found"); - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/CustomerService.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/CustomerService.java deleted file mode 100644 index a857db8..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/CustomerService.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Customer; - -/** - * @author Ram - *@entity CustomerService - *Desc: It has 2 methods declared which helps to create customer and get customer details. - */ -public interface CustomerService { - - Customer createCustomer(WrapperBankCustomer wrapperBankCustomer) throws BankException; - - Customer getCustomerDetails(Long customerId) throws BankException; -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java deleted file mode 100644 index dfc9283..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Customer; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.CustomerDAO; - -/** - * @author Ram - *@Service("customerService") - *Desc: This class provide implementation for creating customer and - */ -@Service("customerService") -public class CustomerServiceImpl implements CustomerService { - - - - //injecting properties of CustomerDAO - @Autowired - CustomerDAO customerDao; - //injecting properties of BankDAO - @Autowired - BankDAO bankDao; - - /* - * CustomerService#createCustomer - * DESC: it will create a new customer having bankId associated with it. - * It calls save method to save he state of customer object into database. - */ - - - @Override - public Customer createCustomer(WrapperBankCustomer wrapperBankCustomer) throws BankException { - Customer customer = null; - Customer customerData = null; - customer = wrapperBankCustomer.getCustomer(); - // System.out.println(customer); - Long bankId = wrapperBankCustomer.getBankId(); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - customer.setBank(bank); - customerData = customerDao.save(customer); - // System.out.println(customerData); - return customerData; - } - /* - * CustomerService#createCustomer - * DESC: it will show customer details having customerId associated with it. - * It calls findById method to find that entity by id and return the object to responce. - */ - @Override - public Customer getCustomerDetails(Long customerId) throws BankException { - Optional customerList = customerDao.findById(customerId); - if (customerList.isPresent()) { - Customer customer = customerList.get(); - return customer; - } else - throw new BankException("Bank details not found"); - } -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/TransactionService.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/TransactionService.java deleted file mode 100644 index 0d4cdb2..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/TransactionService.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.Optional; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Transaction; - -/** - * @author Ram - *this interface has 2 methods which create a statements for an Customer - *and generate a report for statements - */ -public interface TransactionService { - - String createTransaction(Transaction transaction) throws BankException; - - Optional getTransactionDetails( Long customerId) throws BankException; -} diff --git a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java b/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 5575548..0000000 --- a/16BankAppSpringBootJPA/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Customer; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.repository.CustomerDAO; -import com.springboot.bank.repository.TransactionDAO; - -/** - * @author Ram - * - */ -@Service("transactionService") -public class TransactionServiceImpl implements TransactionService { - - //Injecting properties of TransactionDAO - @Autowired - private TransactionDAO transactionDao; - //Injecting properties of CustomerDAO - @Autowired - private CustomerDAO customerdao; - - /* - * - *TransactionService#createTransaction - * DESC: it will create a statement for a account of a customer - * which contain typeOfPayment,AMount etc. - * Exception: It throws exception if user enter acoount id or customr ID 0. - */ - @Override - public String createTransaction(Transaction transaction) throws BankException { - - Customer customer = transaction.getCustomer(); - Long customerId = customer.getCustomerId(); - Account account = transaction.getAccount(); - Long accountId = account.getAccountId(); - - if (accountId == 0) { - throw new BankException("accountId cannot be 0"); - } else if (customerId == 0) { - throw new BankException("customerId cannot be 0"); - } else { - transactionDao.save(transaction); - return "Transaction details added successfully"; - } - } - - - /* - * - *TransactionService#getTransactionDetails - * DESC: it will get details statement for a account of a customer - * which contain typeOfPayment,AMount etc. - */ - - @Override - public Optional getTransactionDetails(Long customerId) throws BankException { - - if (customerId == 0) { - throw new BankException("customerId cannot be 0"); - } else { - Optional transactionList = transactionDao.findById(customerId); - return transactionList; - } - } -} diff --git a/16BankAppSpringBootJPA/src/main/resources/application.properties b/16BankAppSpringBootJPA/src/main/resources/application.properties deleted file mode 100644 index 91dd5af..0000000 --- a/16BankAppSpringBootJPA/src/main/resources/application.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.datasource.url= jdbc:mysql://localhost:3306/mybank -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -logging.level.root=info - diff --git a/16BankAppSpringBootJPA/src/test/java/com/springboot/bank/BankApplicationTests.java b/16BankAppSpringBootJPA/src/test/java/com/springboot/bank/BankApplicationTests.java deleted file mode 100644 index 3bccdd0..0000000 --- a/16BankAppSpringBootJPA/src/test/java/com/springboot/bank/BankApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.springboot.bank; - -import static org.mockito.Mockito.mock; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; -import com.springboot.bank.service.AccountService; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class BankApplicationTests { - - AccountService accountServiceMock = mock(AccountService.class); - - -} diff --git a/16BankAppSpringBootJPA/src/test/java/com/springboot/bank/CustomerServiceTest.java b/16BankAppSpringBootJPA/src/test/java/com/springboot/bank/CustomerServiceTest.java deleted file mode 100644 index 14b83d8..0000000 --- a/16BankAppSpringBootJPA/src/test/java/com/springboot/bank/CustomerServiceTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * - */ -package com.springboot.bank; - -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.model.Customer; -import com.springboot.bank.repository.CustomerDAO; -import com.springboot.bank.service.CustomerService; - -/** - * @author ram - * - */ -public class CustomerServiceTest { - - @Mock - private CustomerDAO daoMock; - - @InjectMocks - private CustomerService service; - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - } - - @Test - public void testAddCustomer_returnsNewCustomer() { - - - } - -} diff --git a/16BankAppSpringBootJPA/target/classes/META-INF/MANIFEST.MF b/16BankAppSpringBootJPA/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index d7c94a9..0000000 --- a/16BankAppSpringBootJPA/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,10 +0,0 @@ -Manifest-Version: 1.0 -Implementation-Title: MyBankDemo -Implementation-Version: 0.0.1-SNAPSHOT -Built-By: trainee -Implementation-Vendor-Id: com.springboot -Build-Jdk: 1.8.0_171 -Implementation-URL: https://projects.spring.io/spring-boot/#/spring-bo - ot-starter-parent/bank -Created-By: Maven Integration for Eclipse - diff --git a/16BankAppSpringBootJPA/target/classes/META-INF/maven/com.springboot/bank/pom.properties b/16BankAppSpringBootJPA/target/classes/META-INF/maven/com.springboot/bank/pom.properties deleted file mode 100644 index 153572f..0000000 --- a/16BankAppSpringBootJPA/target/classes/META-INF/maven/com.springboot/bank/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Tue May 22 10:18:26 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=D\:\\training\\16BankAppSpringBootJPA -artifactId=bank diff --git a/16BankAppSpringBootJPA/target/classes/META-INF/maven/com.springboot/bank/pom.xml b/16BankAppSpringBootJPA/target/classes/META-INF/maven/com.springboot/bank/pom.xml deleted file mode 100644 index d09d388..0000000 --- a/16BankAppSpringBootJPA/target/classes/META-INF/maven/com.springboot/bank/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - MyBankDemo - project for Bank Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - log4j - log4j - 1.2.17 - - - - org.mockito - mockito-all - 1.9.5 - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/16BankAppSpringBootJPA/target/classes/application.properties b/16BankAppSpringBootJPA/target/classes/application.properties deleted file mode 100644 index 91dd5af..0000000 --- a/16BankAppSpringBootJPA/target/classes/application.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.datasource.url= jdbc:mysql://localhost:3306/mybank -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -logging.level.root=info - diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/BankApplication.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/BankApplication.class deleted file mode 100644 index ab7e0187aa68fffbce082eacd21f5746fdb9c6ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcma)4O-~y!5Pc4Tgl+g}!bgE#5JCz$;0xjs6sbhwv;wKA(nC+)tyv7acI5RI{uU>y z9{2(MQB}tVDG|zn%Zz8ne)Hap|Ni^)4B!Nx8>lfHq^98I#44R7#yFk`eaFwqe3?vg zl?tbfZlKPvek*+t9<;Lth*akG91S5pwg!{g;1JdtNSCKQW`n0pno)u@DZH`+6+Bo zvsY!;RuuBy*gGCHj)L47fh}xclVsS6fRpYF?l2c+*`L=bo(G>A?c{^wL!+-%R#~rd zrVpik*^3Z1Bh8&T$PCfQR5q0t%8zX0%`%R?Xoj7ym3FF-V^u2OL~G;1vIuoBms^l7 zDrbmfASe0DAkJy;GbH=i2hD>12vDOFt&(hmB2J!>U+g`h`54L(SziWS_&~Pxa)JB` vMax*l8fE))sEBdP#VK$v1Qv4w5Q*YGLW9qf|#z4n0rzBRaY diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/ATMController.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/ATMController.class deleted file mode 100644 index 1eaa0cfecb36b5afb10b554104ca6978fa52a45a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3745 zcmcInYgZFT7=9)RtYA4> zYuSaYpI;W} zO*wAClx3M)Q)baAjIEm~r%+ICQlMS>rHpbPSUDvykP5TwRbOkP+dC=OyIiq-tE5&f z&&n3nv~4@S^exBs1g-@3s_x%&Wl3#1?uMCF()P@IGUq$)mMM1y%;}2nY+A0$Q*G;{ zWn2D~Ky)CnDiE7>@~RzC9FF54;_WzsqXxPJjyH%Xj&2+iXe%hc8X~bANY${JElSTz zCK>|L2I`KZ1+4;yQvbZW;OFwTf#{4ylL63%F*C=NUwJql= z=_{ftkO@aV?>pulSC-4logo9bb=&p**sl40*<4m$nfR-DCdS{=xt;$er^-Q64D<^O zg=JUm>@l^8T?zV^u?n{ID=q`~U%!8op?H;;@1kZ}a*6?53MJB}%9>fr&ewD3w&VF} z0>y%%T+0JltkCUtvkv3adl`FMYG(S%-9z2xEiSA373KLePJSz?S(Avvz=4Ap!ia%k zf%9QtKVM35oWQ8S;wu0grnrV%JNj@jj(6}b<7XM9mFLL9t8S%JvXO@VWvd57tNjE&4`puhoi=*J`N!mNbxz^oBKeY7e!0I8coZ4XMSAcj3=BQRUg+{tT0MhkwM> z6U=>2O%dwpq}gcT@F|828j8?D2L^Z?C+Of1`Z0__j0OP=RxNG^K-;*E8-b=VEaF4T z9w9_Gk)qBtwH-(FADW075C(1;xUI*&gB=uEMkXZom5|s!4q`tVrO+yM*8gf8{-RGh zWm94z7636k@)UPsn23FcBNHtejNXoLqF{7-n;j_Jm);;-1GN8zyASX44#3Qz*);JntsW% zoqX1H12Zd~71MH^z;g=)<(ZR~<(8dbYIDaxyFl-CM-UG=%2=pagOBUv(XX|yi*&Zy}jLf;nAiphtgxhU- zN(L%St-#a4NG-X*H6MAhR8rn`vSO<22X0Y$p;!o~N}XC#mV%&Urj=h};?xW?8m!Y| z=gbRBl`7dZFd#4zMGdua#?JGpu?-gEsR#UQf4D7S4@7RrRtW4@7tV~zB`CpFCjMthUi%y#Qm)9QIy`N4HJ zx1P}K8j52Zws&C!rwxn>3`Zp(x;EoDj57iY9~k&3Lyht5L_f~P@hQ%cC@i6r@_m_S zkaiCa)fG`D&`m0#t8pxj3m9iKmFKyhz@GYIt2U&>(EJWuV%dju9muIb+68}rZDl~_ zaw@0IUeN{4v@|FP4Gqm3_)OqbRO^Xgc?Uknq=9P!$D2yrWN~EJ)yjSx*D)m!o4X@$ zB9coL6Ey+ip1_QD_lCfg2)r#R(cSIfTGN^q7>nfpJ34_tSJ?cgWgr=VNF|L)7ZA+w z>By5!8Ugdv&FEPxET>8rG%&{w7)7wRJ8a;-z|knV1|J3DIaP9fJ4m^XS{KMPFM*I{ z(^ZnaS8sf=^;%o)V%=svK;0c4#gWEifz*3A_0B*hcHoO9mAJ^^B3Bz8!uScaY~H}v z0w<$f&>Uz?3;DBV2TM6mu7w#rU^Z;r@Z4f3qJxo*Ef z?!#vvF5PNw_nWJ>S_|Dazme7H>{jkuf$_**5qWvZU}%M8JCZAdU;4d+?_NEXRsOKcAp6uhGBIckvZ2|M?md3!^{b z>MKnDKus~~>807Wio-`LW>0YU6!!;t#}3iK5xPH$VVtP|7_M3j0nj#PakHXn47YHb zvbz|fJ4jMzioWeb+rKo?W%STEu>y{$C*W zaiX|L?3aoC3b9W#!Ttnawu=3$2JBB;#{R4o>~agRPZIkSu}>5G46)A=`%PlMz17$) zELN$)rr diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/BankController.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/BankController.class deleted file mode 100644 index 9594887bc0955f7a5eccc169e748671b2a488307..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmb_eYf~Fl7=BJdSuTMhlvcdZ*p`+6?Y5NCORz0aN^8SKs3_K|C!0gqHtfdT6KKcr z_xM#EZB=IUqci>}^*I}w1ZSZc$4NHlvgf@#&wDxf^RHij12BPtg@nL)$KSHUa^QN! zyzgr}FTJO><9j;rOC=T9GhENsmKItBdY;H_X_ur|w3qTvl%oY&b4&B{b1MP^IX@`c zvMilVWtaTo#1lK`7mF&$3UnIXt18%b9VL*-#aRxkuOqX2M=3e5Qt`CArPkcg&6m`) z=lNP{*Y`q!Ymvn&f{j3KsU1IfYUh>oLVH6x+7F)FvL;|pSG2$52C6`{ty8Y&>YD<| z;mn#q%dB5e9Z2G63Y|!G;0^Ry=oL6|0HzdYcg=ndT+BuZ@L6+$C7to*of7Vg@TEtz=Ppf z;VptMMZE8M{BKG(wJzH$DlC(BHOF}9=hWLV_smh{C>9pd0;6$JRj`=MTtQ3E15M5w@I0) z;wF;19W%INVOHSuffDyv3#)8Fl`w@l+!aVHJrEd*&8Vnu>H-9P3-^q>_XTdmfNe@i z)UQlG6-d7>*#+9n$vaX@0l`@GH$YaN@IV_>A}BqMr^c&Sv_4A?YeLt>vv`j!EXjWz3G|rj zE}F5QakriGR*oGUlN@>R^0$kt+dM5ec8|Q|(<^>P&rdl1J$Dj#)9gnY2hf7Id47N& zM6%}1TigSs-@&`IH^_MlS10L*kvgi#t zOhyh5vW0`j6F9^DA@;trbZ{7HWH7>PFaSoX7WV+qHa@_ENYeyzoFypLi3KcD=MvAK zK=N;zNLmmUmiaZ~rOqyjtY9?;`@dTOA2o^nBK;qy{>wx$ lLF|*newCQ7AAtQaKHtM`SU42>7Y*1Gkc5#yzLs4M@DJOr1rPuL diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/BankDenominationController.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/BankDenominationController.class deleted file mode 100644 index 406a14d90b2b5d89ea249bc08f4617facef53c78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3262 zcmcImTUQfT7~Llz197MpMFF)cwi-|zuT>0HBO+SErG%o?-X_T*j!fpnnF*BFuGQbt z*VcAHt!uT9U8_(1MQ!()#1LTO)X;(WyiBaM|tCoR|eVz_CB#!Y|FL1k~NcmA`78F zM|Ng%a$-(kARE1`hK_5ws#IbKE6Y*(X@P?}P_yHl^jDmM6u6v?ODU+m-jPq;j2`>v zs$S@n<$@D9c~@pUPlZv+fxy+Q@=JA?OTJx}tIA)t^3wJKYsoHz%3rhWhJlr-hHBOE zWsz<>#|p0FIpKAIw$#vqK>N5VN&|ZYj>jch=3Cdw6bg#zB=J7>8R!w%vq{vrYX^ae z{pb}iN-~^gJ_7qwLp8o4GIOEck#rIV(Qlwnpsy8|CI)awpo@-b7O=ym;J$5=#35^WeXaSSGD2_HLTIvu-v zZ&Xku`w&sgbKBhJ%DAI^U4;SZLNIyO;m*q3zDC6N^Fm+Prkl?M@f#wVy{)(7TDJb=W;Cc zRhhT)j#q3h^;s2!Q{+xpo4~FW+pQABZYyl;g23R`&YHD#2Zhq#(qeBOa!x+2${@U@ zifd^D7X(hmk-ZaH66Z0fi}kVz1D#1+!Ki_&EjFt~RhYO20@dx3DeD#$=-twJ_qx}K&YMmZL=3eB0w>2KQ|Z%K9Hb5clsJ+?#&i#qlLEd#R#76nelX>Cl~b>R`d zGVrCqiIx_3*{wOsc$I?rHNFu@%-k3FD7L(#5Ss?1>_HL#5cfpf1bgKZYvo4wobK5W^X zs`>?a$I(ab(bku)v$~60-Dl$TohMzmd1p)GIQ6rQ_rCIO;#M=e>38{S60x!Qr2|PT&LnY8$Z2jz&+w74HN5)s_}V{dU*z299qx zITD%ZPx%2(;6sk=ZJgxl6zA<+r7+A{0;i+&-s2OU%*Z2%0B7l*$?FK`IMMO`p;0@> z$rm`kxPgmP!@uIv>2-Yk9AgRmh`#A(xHYnlyX(0B42Ns8&(8dX?iWZc_RMc!;m;R% zxOnCnzSzLGKhbq3deO%`+9I%nT!X7l=GDur`kBuOjPT#$>2wZhT!>H&*V3q?VnQgO z758Nyzg$A*0&} z@m@*DD=8R=s%DH7TqgxL2;?SVW=O$!6ZFvr^ie#8A3;BlAO`vYBsQU|26R#sl9&Xl JjmlgB{s;D)qlo|j diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/CustomerController.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/CustomerController.class deleted file mode 100644 index 6f437e5cf67a50b929ad2cf98814d9d3edfc05e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3021 zcmcImYj+b>6x}yzJG7(^%1a8;SU{S#Fd}V%rdDVv1xX(^7(jg8Om5Sm=}ertX<@na z@Ay?*N>$d$=*^N@vToTt|Cup`bi-q2z0KTX_rhEdw0_1CQm7Gz-$no2%K!%F+T|snw;W#dU!b zDc8%JvM8-hWft80dQ;jGs6r}Gb z6D>p24eE}e6I~2a%68OBX*;XDdy*Ih22-vj3mNIz!MeKHp*L-Uz8o6BSEi77`z%jM zt!n8NcrY5OC#PNWz9)-C<;{~CwewXZFNb!P`?{36q#7MUmgl(u>npIE9`&XIw* zz<5~3Rqc!!*r`h}q-i_vNL}(6hj0ETCuc*kZ<7OsIt7z+gfbP%uw9ikv$m6KCfAzl z>t)7`g+;l}9a$(5K)?BN+(-8Fc})hq)ymsP?DoyBt1nB+*Yj@fX)@qcA_fBo4q_Y^ z3{13$eT!;~;S??kr2lQu!_xawEPF7FcVf7NcS#S{%(C)*nP-5Gj3%0@Car_Ulnlym zGKMKkGm^^lTu?(#**|4OL5t zjDhzA&IeWA2D!WOK5iJeE^wx$#BJ6@nk}m2$1sltfynAzfpeimD%Vd#fWT+57`S^& zU?v1`TS|g{c6j%nHQcKAwkmmnSgm{Clv)a$ZKrAk1k)PcTwUjB!Le^_ zkH10j69#_7v1iqiaME|0Rr~zSM#lTuH4j=5L$U4#?*zeV` zf5bBt?3o7k`_vhZ{lP1+KWY>EW%@rw{nJEoh1jnV`wX$qw!r==K5G~I=S|onkc1II Jw$3gK_#2o{UvdBd diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/TransactionController.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/controller/TransactionController.class deleted file mode 100644 index fc5f5c88398713feb517fc63763356600811e65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3059 zcmb_e`*Raj7(F)$UD~ElDi4c5E6=7B7Nk5R1%Xl?l2S~uiuk(O+@=fZZrr_Tt&V?> zzpA64GNV5_wB|XyB0D6!%yUzw5!sq*bAj6%FzOSg@xO< z=ZXTO1wW|RvL>AsWmo;m^b@<_S1KyV3ykQN%S9EexsDPzQ%K4qY&?!9(X^nS(PG`x z?y6dHL$_2_*FDeI(&QNmT#Dj1U@Zr7RjvEMQ@f;y#a<>FKiIJ4mVte}uKjg4P-VL9 zn{ho?UlmAC}{Q}^quB^5lB#7OcAz9XwkGH}g(b2Fn?T!Oxk$lCbIn*3=(i;pkF!#BmYLP}3#sy9$iLN%^ zv2U;zw=78MqFeE#t_S2{`F~GuCZ^G%HvN#l%9PJ1R?@mE*(KL2$BXEJAL@Bos~Jmy zZELbxH-gy--3QW?s8&H+4fh_os6MN!P~Y&&8+lVcxhyPfAH+$VvM?oZI*I1) zy_LlQoEFIUPI0Tco6HSh3}>=9i#I4bJ7Hdhp{$UO-4nS^o=sCtXK@}E$eRiRKM>dx z@0rGY$>)}~7%W_$jP3X&}S1Cf9lV)nUB@0&sPMG%Xp=$f_ z7Oq>kCUB&y#T^#=B4P#X_9T+)X%zQa$ zueoYH2Fm`@sfXHMRl(izS7xXum0jZek$PqGV91;1e?N;N9tj*zz!%ZgmUezS9>1iw zmi@X{W;3^vqe8JliFjjwH@4b63+!z_wl->;N7t2v_j@PMLP=mpyYv>A=13<#=Dz6H z14rF*%|W_9MtSSQ=CrZv_W6)RI*&NrGSB06j^8vtuTmH`M|gC_SJ+ r3-%B3(H8cP+pvGa98IC5=<6;%<=Vl9wBT&Ak%FQ@3d>vdRssG7r0ipR diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/ATMDetails.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/ATMDetails.class deleted file mode 100644 index a4b60d6108861846e0257ec3ad225df8a2230adc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1861 zcma)6YflqF6g^W)DP;vLkJ93Ur_%CR6;QDhZ9x-E)kFvhF@D&VO<8DnNxS&jpQMRE zqKQAiA7#9EX3Lg!iGJC+Gkf;jbMHN~zkYxJ319^;dk_(rsyYq5b<(u#TE%f(y<*tM z`hn}{#oaesrfXRBRu7^AgGa_EL$4clO@CK8GOMmYjIrAX^sel`EIW2BFVJnc4Sv;Y zRIARZ?Q$G58XO9YDtyCm5A~8&+cK+G!>H3&v31L~+zo-Qx$K@mbkjL76X?Q#hCXNl z17*uL-<~!qW^>o5)J=h8*{K@!J)>#y-aCxChgM5qru^^PDCzcGQ2zhzgYvU`y`b7O zbR)*mn1&t|Wi-T9bW1}o64aKO>6X0iCFioigal~$fT6zxa&zKDQB+Ni6W9wiKJ{C! z@f&~3X^Y+v#@cCvb*SWRSlUY-L`ey*v*WUJ1cuve(jn?J--88#lG!?ap1G|Eq)z z(lbGy11X{#!%d19P9P*PL@N^v(~}84%Y;CN33Bsi7|AW1A(dM^Lpqm^o?+Z)%}61W z#5zTWo<=`rh;J5Y+>=>WC<8HhSvcZSICDl8!LR48AcWAQfADPDQF5|LQ+8?`A{KK;X+bD zA)AzL>lz_Ea_+!%sE~9}$m>ucGvPwgK_Tx+$j&uFct|W{mPV_L(m9&(ppgAgA@?!o zeSBp!9gb3?F-S<|8X@cv7D9K(<8sJ7?2*C`%l_FP4YpQCfVIr)?>$3aD6$0@Vc5Xdh{ zi6;I4f0XgworP}KlJI5c&d!~4&$;)^pT9qU1K7ap5C#O6b*rwn&YNbVTCpr!t!Rxi z_1L!5U0t`@4ZCRAnptaw5D*wY)xKzIO>0!u_mxvaw*`Wne{f7^rS4(LYE<(AQN7)= zt-8_V^N1$#I1Xxch8CEXm+G2*qVAd1qM@60twvXa+h)VGcLWC0nX*7&-#Rv;7{r)@ zVJHG)C9`3?Yu77A^P^U&83M7ArE9ga)--wV{tVbBW=kMlx}8WWe316*xZU0_AybZk z^eGrZkfRv|AsHnVgk^MBK?G51P1UgX+&0G28Gk`aXmt}N{v*f@8X<^%Pq#2Coz^_QsxJpa7H2hgiCTv@WHXBM{@(Rr{jr^MrAtw;;+C~1} zYn!!WqZ!5;9rl_p^+~#{5XA}}u>~FrOnDpOB4^5+v96H2H`!+A=SG9%u6k3YbMxLd z_Yla3@r)XpOLg7r)ZJp#7e277x}KT&!M3U0xzx4$3t^D0BlO2PeBG* zdN+qwyQv#*O!oCeZ!6ZgZI~lR4bmeHV1Nxq(E!`aS;<_^O4g!vm@?_b(07D(>$D15 zhq9L#{qCfV(>F@jfjGg<;0{HcPDzMif>s8Yq%Q+}bqWGW2FR{-FqO@95YMi5kjN$i z9n5x7lMazNLY*g{FJKglgtvqQmYpgaRDqD(DjcyCuAFqlFsCHH6-R24-wI&~+{1mB zjY_MO^8-`gD187dM}p+~N_l{kdwGYlxkS*B(WNb$!Q?g_glU;|O*81y6f}i?MB;uT z`MyNv`xA-#iR@Fk;tfQ2&MiEiLF_cHe%%?y=V>IcuW)`=WjLz47BuxYo zP5c0UDC0S|9hBvgz>D_u-n0MtohSbO`}GIF9G>?eBrsiZ8v4P0)3R%2$8q(tVSmx9 zuA}cZjs1PIxxD>y&9t3{WgD*L*gXgf4D1p{7KK*VS`Et@0~rBm5W+cj%uldl>vLpLI94Ql8?l&z~8dJ$u5Si>d61o}&s zZN6$X%4T!hDA!Gac*&_4^&O*W@wa~%c0XGO0yD}Yp5Gg)NTO!CD^##xjRkU zO-GQ?kCokFkB1r_VV?Ja*3PDU^Fdc{&kDg(o+@MY9qJKSM zgm_uV3h}DQH!X^M)0)sbMxGij)3cAhzDa)|ojXQip*Z4bkBcjNg|}hEFozz4U?vMZAnXz(wI-9 z)0_Rfb3YOPPDY5_Kw>naRnxDR{@gh1X)soWRO*Xq&h*?2xR>n z5N;BKxz0 diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperAccountDenomination.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperAccountDenomination.class deleted file mode 100644 index b764f297b16c0b45a245deab416ed77e50878f78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2066 zcmb7E+fEZv6kVqjdT|77OQjVB@9l6IML@9>R>xVhQVh)NfQf+ zCVqe)W!(ErYp0W`34NHe&pG?7wf3#Q|NQs`U;!^)vZt3 zp=)bz9sT&&aMo%y`_ytb4a;ttmhPIi6+={D^hp1#YYpA1Yp<(EM$M%oe(QG>n5l%p zH|;~Cp{)nJO9DfBlgR|ql`i~_vs$$pl#)0mbyl)>y-H+ypz(Qz1|F0KiCtWw(V7>+B3dK;k zzV%6;gu!SR$}*=cL2}mGr5+;@VZ}}mSH~w?2yy8Eaa>&WR1Z+6E!v9NA?-(z_Y9%1 zmTvDTOxxYYU3<^v;Sk95;CrW~7&IzsSHE|>erh%j4JVF=0<--GY3e;Uw0~mCNzCC9 z_t64%jbCq@uXw;7O9~$23C|0Ss70a8`dz(wEcw&gBdZk0Q>wwtls9dXbA=Jh0iX`2 zFZn^BXA;Pp%W@oRluyF#$o`&-py`MlD*O9{w+VNlIp!AxcGydhJ5+N@3^QJ$sz(b+XT}*$rS=Hsd~Z(Hksd-xo;vUyp4OT?E^I E0o@~}yZ`_I diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankATM.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankATM.class deleted file mode 100644 index 17d497fd5bfee991d3a1709b4aab544145fcdfd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1384 zcmaiz+fEZv6o&s@N>7d!TMM4B1ueGaFbb#_1rjhJF{yF^sUgOTX*;Qd?F<<%yZSGbB>zz}p z*D>7`p3rT07)l@5_00_CupljZs!)gq4zbmySX4FCu*j@snrtSq95oHbs2)vgD0)4G zW!7M+6pW7_Qy1d15zuAKNdBXsRR#4?B&};GqNI@7cTU~5xogQt<%d&Tk#f+ML&-l& zj6b%VE2QE6N?FM8{RU5K{3?DYYZuVIaTCKWt{LC4fHgH3Dbeqm83){N#Ow#2=a{zDU1qPA1h>* zSqIKTLLxN^glsU}=0Ai;@1z23f5_Tn{iGu0pO`z$J-$G>#?qXll3O~*3ik!sKj;1& SYokJUBSOnpU47x#_2pmE!wH%I diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class deleted file mode 100644 index d5e2f9ad4907ff6376609d5c8f2b4120542332ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1444 zcma)*ZEw<06vzLUF`iasg0T6pjp<-KSKa1b;CQhm8WZAP%wQJdivkUHLQ6{Vb7|sO zqKO~C4`n>3Eu+*f*$Zy(y*=lDe&^rApT9qU1K7u56d{31*BHv%dQ4YR4gPU&1mXyvs_6A||lXSFKsw z0)=AfHsX{v_NMLL3W>dnQ#t-%>}-mP{pW3*gl7TiqW?Wh#4O{?;%T6E78IP@Mifs3 z*5<;__3=a-^i(s39f8e&$;o}3jmS{~+bHm-+!e@p5!?c$Hb;~slu@B!;33qhotih) z8N7zK!3B;+3^j72nsdg?t|_zPGoR3`rpF1t&A>5@kVJBt~MixmrOHL40 zagR04WJ3ApigX diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class deleted file mode 100644 index 30646c547965d7b60a1a3fafa96d3ce0192081e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 zcma)*eNWR+6vm&sjlEf39CP3+yFFx@H!)mUNw;OA~=a z6F-0-%6Lv&SgD=ipWbuZbD#6O=RE!W=f^Jq>)1{pBCx8OUAcE+=|;P0nzr0jjL&k* zHsyDga&n?syR_fy_iVGPSv#s~_6<9Mn83ub@BZ@HzY1|MPuj_{P zy5DVT)?207(F8JeQ&l<*#nO52y^PtP^q#t2&~sNW6}&`nUu>ixa7)4n z;v7v$NFd44Z3!tPsVQyE_F5#cSSVhjC>`qg4lP{=l>0bJr7lLxZO%}&e}*th(*C5$ zLNJG=QY6JrVVM-2xQLUsd1$k@1hQAu-M6&_9#RtqMcvoCeZAAttR#v83&VYw|KJ&J zD~%;Avl+_NTtA>!rr6+&6$vsPk)7Ds29Z|$sjiD_{uW%JsU@*WJuBx2u663Jv+Co3 z*hO7muYzJvsZ-^=Yw@ilo(YJLOj(n#fJK_=q1m@oZC__U&kXOv3U?2)WT7bi)=@;* zTNFjuS42t`A1tb>)c|qlNhJf%`xdU^dAk#sRm!Tl@;UK=zxg9wm zkT*j>cr*+`cBLm@N_9pBRDWXWC{s8`sYEk6LnTu^!y3goj-R;kG{+khpW*ocdd#u$ V5ej&Z3XXj6)k_y{QmF{G{sPO$RK@@R diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankDenomination.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperBankDenomination.class deleted file mode 100644 index dcabeb159c0f2b1228e78e146565f9ce290a38aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1856 zcmb7^ZBNrs6vzJ;#-5yjV-KRJLws1vMjfD{0|Yc0l0}S|88p7=wq_Q$mXyxVrHMeI zi66iZWjv?tSl4tWyjbt)?YaN+I}dk%{{H+8U=`ajj0q@Bv#T5*S-R0~n5L~XRO5@% zvQ6c^r5+t=)(*YD&+3FMhp>w=|lCas&rJNt?V@pwWdv5e9-SGP^yJ#cg>d8 zQG&8nfvDOwdj?6()CTgqhOM8=hHh^Pj2ET4K;${aNMamQ zDO^HIV5+7Y+Us7op;__+i;$4aahQy9p?tXL3BuX- zI+!JhupTBTR^KOA3~}iTabDc(^pKF(ZC2?!%=lHj!U@D}bKmBX7RU@KxVzODWP$vE z(B0nY>7ABl#ZeNFM~r{rBafkf&Nq^fu*8F=2xR>@UNEW79+ec9vBFbMx5}W@%6?b( z7FGRK8)B-)@sLVfD!6yViTRin*8)QQn7-Nug`PS>oW^czBaU?e@remHQ@D?!Kyu&g zSxxPw&i7<)L>-p6c$lYg9H&1M{?VM$6FjBPN;66;4=i0ldS0ft6d@{G`$VF7vZ1X;Osg1lTl!R$aUM`wXstq8^-}WD1^^A0!_HSqlZ3r~KXe4T0o?AX^k}djtr# zl`F7-J0T#mL6BFWAa`*u48+$uw<3E4@@51Gw}wGzRz0nz(<-3y3(`S)@eE~|dUT2h r>D5y_B0JCa6W5+)yGr&cHU`j>&IljStb9Nj2R``9`4m2Ln!fc9BhP-N diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperDenomination.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/dto/WrapperDenomination.class deleted file mode 100644 index 16292fae9f56d26200621730142c7a3779b63342..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1800 zcma)+YfsZ)6vzM1Hg>ZLj$Obj7cX1Kr~_1V+%+U56JMY+hWMh}npxahQaV4ECIX2j zegHp|@tn3}T`dW3`kX#J&;R_+<>{ZlKYs&Q!FB=>fpW|2DJRF4ZgiTaX)8_D_@cCJ zQ~6-2$H$uWS~JX^Zm70y8VSS%CXUpvs?t@Bj`Fs7q_u1TsqJ$TDAvO?duChfDt@_| zKwRyaeS;(>>qFT+!`3>Q#h;mGuT4RHpX;X4;csiYq1zh*(PF6~5PL=XX+$wD;Tj}? z@w#qk`~6;1v)-xAt|pMFn=Q55P%WL`z0H{YSw9h|gfd@J2a3Lbnkfvlhn(Z&0fLttvB8QfF{3Lk1d}V$vZi>Qhd!5Qr;ILk$ zD8|4iUkq^>2<>=1&5Q_nU1gPl!=zuuE0jReHVZ_9cTYXagE6K+U&jG{pL!0cNsZCB@eFcp&j zA{Pv^G;&e;IYbfRStKjMljy88hqUrg()FU}b$VN-RnR&npX0`N$8Cb1X*vcJ5W^I1 zlEv=igbXHWWq~X`S)favF(lNU}=kSnK{9_r=kEHFc!vji}Q8<;1h2adMv zp7*p#$pPnhSqGg-vV4gsDS_L#<3(0zbN?fN*OVgyz)KI&@kERDYrLF;hNAMW!B|;YnuY4A00e cu>Hcdr`fKNeTMZQ^m`w4^h($ diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/exception/BankException.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/exception/BankException.class deleted file mode 100644 index bc0fb220b30d379598570c69e60c8f477ce1e0e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 zcmb7KZr|0Ll&C4r*b96&^gi&e>QLRdCvcy^^5^3&*dQ8>IX=}tK(Et`=6tU`(e1@%?T_)K$@~?cA zIy&PI@JBhGyWh5fG$1qKd)<5Px#!-y|NQ&s-vH+DT@nd}@k&s)n}-e8uk8mxXzx4z z4|YAMYR_IOZ6wjFaPg`0qhouHU$eLNpXy4e(C38pLX}U&_FFOVYk7sy?Uo<9bzOFw z?!Kp&d_M@C&<*^i!cb)XlYOWgO}80pzoP9zl}3O`IhJWb%keH$ zHyr<{6m0nt)e4yOq%n#&k{DAMY|FgjInAbpH!-e|WS~u_t`)9KOd9;COgo{}GoQvaTu&ma zFcSH9iEZHqZYo?LkRhXxn|Ku|2JZrpzW{}|EnLPG(k!~Z-fY$Pb))34_zIa~P;tDn z({SY+U-mCVxu(&BDGL)AV!q*l%Lci2j{a;%D)k^{*IB}I9HYWbmW8No;WfN2yIBi^ zxR}B{g{uX>=~i_%JkVJN$(quMc<)(wANR@5^}i2j*i9K0D@FB|%s^yL)gc-QiI%s} zhkj|{mzI}Lf<=Z>cY)e4y*ly&sxwss6I+d*p@)Da8BLN`xH<9v`Vck@Oy?x=NMX3$ zbLMur<$6`!Na16J0TF61`U)(jv4&5ij`w9(w6K9qHokLssC|AT?wm~2d_eNAHfs!? zPvJ8Xna)N78$oXi;7$il+~Mcpd`7Ag}sOU$obZLs& ziGcmb`}_*-Ku}iFPA}15R>Zs`0wqy)OrTeNJKY4&QoB zUGYM%+R%%>A4E>%1%9Y-Jcd8Bw{$D?!btnBwo5fWI+Jp-s(syZB3-LEjkYEz8%A=j zKktjDrH$uXF}`$jWo@IhabICj+*2r&_x5^;2pTz+qU5&YKi>$}eId0Xr&ZU{3VnSvZE{ zlv(zCz1D74b!)?6y(r|%f$KCXPRop#VJ=WBCpRk)sX0#qn z^nt~x?{oh;dx@958Jnz#Lmyjs2k*-6l7+*_%kHv;BRHDHRklUR551Z$M4P%`8mN#I zk%auZg-<}4gP#95P&k$rPo~&n%#BadefeD(jQdZlerjPqhKLS#p^xk&jlohiQV-%k zdx~stZI28&6ZrUBBP#U6r0;}J;ap!69US8@Of#J$Yo(v54s1@$Nl`AE{u=2-r#D}O zNn{Lc)P$uMC3M*+Nctj!uM|#nJ1Y6Q)b<)R-O7T!dc@?V@W5oZRGZIX9UD@uY^!xt zEPR7+WdLk#X`ku4urndabe(&%C5@4}EWTs5rV3RiD`tKue2;o)OdI#3`GMh`D!67M z&1c~-AX9~8Eb-_ns7E4LTUe8kk-HnTTduz4Nq1Vt&x;a_&WPGQ(UY=f7DwZL*?k%J zvsAht521{S7JGnmjQ^kZV?e5xrwmVrdCGE?vd(D?!{P_FnYkY3dXT?|Tz(pmu6y$$ z&kHsoNycR2aJ5Kz0waWu@-)R&eyqIO#@L@I{ElI40vS;EA)xyu8F! zZub{o;e7W=j!(e{gM`X6D*@pGF7hM-^K&( zr)B?rvY(OtkI8;k_Eqk;QR_PJZrtiGSja!)I$rE>WZqQB03OGcSdYiRK~~Qu&mKiQ H3GwuQ5I|Gg diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Bank.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Bank.class deleted file mode 100644 index 398e6d87da5ad71de5e523b23207214b900b9bd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1887 zcmaJ>?NZxD6g_Jk+qg^uyp31EFpmXu9jL_fId{G_eyeX92I*;yQ{tT?78Qj)j$9K`8R-jXk?KRSZaB$<#&5Zcbc9T zSWR2Muw1V#9jijqEYbqkp4&gzmSgLVb=-U|TY*4^rVt06Y%#ur|)XQO>5hgRFv&{M19E8a_!*Es;JJsY$?}vC@@ny zK0G`)8NylpKslDFik)a8G+5!*O6lI1c1^s z1l}`n9VXGNDJ_rsZd3N^HZ@Yfta&ZlY1lo*>-c46JFGR2DXbcJAG1_%aHgo)h1%uj zBB>T)dXrMGHJHhUff-!O!J?K_wXfQ;5S+V zVrl}b!j@*&nim8Peaq*4V&Dog6zY#cZ;Zo*k=#)R+l}2aKLndBA_5wQ)0Vv)b_K37&%*c79oxyHj6GI%i)RN09^sJ9+U-hBwQP(NjP7UYb^FBd zr5vh6t5}Gv9%6sZh_wlz*mRcx9SMl1Oz9f~J8auDmBR~l@xu_cxP;r(nko8bO(Dhop;eYvi?q(s$c@WOya5AOY5Jy5F)8*<7(-5` zF-QL!n5FHTv?|ibKf@FQ%>9A4f5r08v`*m;JsBTZ!bBAL)V+>h}s8Y6~gXjwV$k) zA5^takDlWX@JD%^*Qdn1 z*tieyrp@%o#&I1tqqre($HMg`8K{1H0OPZbRC z^QM4!&cS`E-~(o7Kat9xU!F9H6Fl{1O}}+oaKN7sM~*v(3D0>awveIr&BHQO&L|mn z#czzACC%msxSvjqg25A*Tf<<0te=)1@&i8-X5+nqbkI#8Zh>vTvJ>@LuzkIH)e-voECp^rkLwTgY4vJcY803Ys7^P`X%Z@gn3M-D4qK06r+`y5|=m+ zg)WFv-t&1{d+EQgOji*m63IrGF|;OmY|yHZg&_=+*d;n;Xyrd8F>;7^{=~IEF!~#v zBN(SI`vr}^v~vSG(E#x@ACU~dUP!+|=68%HrVcUPQtffz-$EyDlgm-ZgyJgD&+Gf7 zD44mPF_Wa(SnhA!-%dPugKYXWa))@7SUAKI?N@mJvAZwue%0Nt^L~T&hbX>sP%>`U z`7~wm4jy3I=R9}pd<&m>&Q)63c^CU^8F7Pu=u_@GR{k8@p7JcEAwtUC>4^j6TJgu7 z+j%P9f@5LGmGUfbYTdF5e1T^nKvsf4@}WS!#Pcv9D?uPn$=ya9ATEIfzQWfbKng)1 z+o3?dfffd&5CozTkWw2UOjs^ODHOY!Gc%o%PWSQzNIL!7N&Y3BBG_>z0n1l`{{a;BQn3I4 diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Customer.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/model/Customer.class deleted file mode 100644 index 5dfefaa9665bfc7b3462c40b028784086a0f06c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2792 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 U_V_yJ%fl>bmuHWJd=K^i09IeQXaE2J diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/ATMDAO.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/ATMDAO.class deleted file mode 100644 index 6326d873342443017957136673af9933021636df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmbV|O^U)m5QSg+7mb^_gj;)~tB4Q~7efX?=K_`3Hi=1BXxkAznu|HW97>Fih=?l} zRke8VKEC=p9e)7~(DhIg=p|gpO=(l3V`e8~GHYp7$(z)%-OKR%YZA^pGz2~}`XQN< z(Q+1NDsdiK0zEs2$t2T#_T1mGs#3SI{F=m~0iI?eob4Q-F&#)D;%1LRP_i6knL zRTfpXc2%H8%(FYlxl-I%znHHA^aLJr z+L0{D8o5ext$cuiz>J;wDS2~L={>tbrsPTHHQlzo*0jEK3ye10IHi|asRbUcsHbm= zK)A__CEvI3r3zfMLJ%K4(-6nins??6{TCT{EENbdTEo%C@1q%$8ytSE{=cN*OX*sXI2!Z}G y*M{8I`qLr4$42qLkZm diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/BankDenominationDAO.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/BankDenominationDAO.class deleted file mode 100644 index 6d5426626331ebc120af6e07aedd83cbff81d221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmbV|L23d)5Ji8R#8I=!GN-UWbTvURNETs0h$pBS+os2vuAyxcvd*ot@Bki4>_`Yh zaOI+^C@B8>zYfRmJ%BOp6Lb_th19fdymclQ36!(jkk^fDZ4m!S&vBn?C$)7Ptho7X zk>FP0q2za_ik+cFUg{zw=qgOan_soH=URV=-_VK!Q`vA^_O;=+KZwF$DLY^27h7qC z#|zBi4^E-Kv?lu4`FQq~{kM>2SK*(sOFyV(r7LPjPg}rDoJpr?jI3}I>n^?&=pZ@w J9{T4wH~~=eb@u=O diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/CustomerDAO.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/CustomerDAO.class deleted file mode 100644 index 9d4b7691789eb370df4c6de70e29e8809222035b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 345 zcmbV|J!->15QX3RPqx$K94@>~Qpp&MO^P5e*e4jtn?~%`+sKwOWo} z3X^?q9r;#5{E_@t$H~96i{!7)6(3A_s~dM@2|F7v<4{wfA7&Wd2lNnK_861Po&Eq0 Ct!^>^ diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/TransactionDAO.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/repository/TransactionDAO.class deleted file mode 100644 index 0162a54ea7621f834d6da80501d3e10dd1a70a87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmbV|!D_-l5QhKN)>OR|d=A}9dx{7`@lXOn?F&recG;NhgvqM(+Q;gl5737aqZCP{ zrygeJ^7DUu^L_aI0`P!ggpR^E<5Jg^IB!$tpi}Z2EvDky1(tXHD&%X*f@A+QUq-l5 zxX)=vx*%`$GR;jEBJ>mF#3&~ zoJb1&m9w70R+_{|a!rquf03ujU*;vRP0^N)TfBt5jc0KqtI%!cw)rE_L3G}C=%4T4 E2(sUC*8l(j diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/ATMService.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/ATMService.class deleted file mode 100644 index b87803fe173fb456f370af3892b32f40f1e74889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcma)3O;5r=5Pb_srHb$?493L0cd@m4OKDob)>7H4X7)=124LRmdC5(uXcno4hMQ3dD; zoHr@c7f05@-yOWDN|L!P=yB$3Ue^Scqxfh0*cNHjjC1AJa%|EGX_KpLk5&6Sb9(6qfQ9Ah5*(wi`m5kU)b;Xp@kXx0c!6Niwjzlg>^O zg7%fZiHcUS7PN)7YPCvfYYnE=w%_#l+2dzF=^voSbM&;u=iZr3Heo~TIb`(N%%s7sh%9zEIsgmW6+F2{r+}qjXH`@!t zc?}_fg(u8WGnF@sgQ)|V6IRyK5D{4a|Dgy(Os~*tIszLys!egNVW(t!jyo>bZf!o$ zC}4Dt6g|6O_1Psmlee0SMaMHe+bNa=?(T5h!GQjNYZk0A$32UYiIVat{K<wN5X9ze=uHT+xWI1!%#~n^_ zurUUKdL0Sq32Z`xhRt*Es<3F_3msdqRUkTG7jrG+62HE_0^Uy(22-s#;@SDs0TnVc z-x$Z8_=<*Yq;%s~9d}_n{X*gbx6Ys(U~1SYu(DdreUT)=DDD=}+jB{#O>%(d&Bd`C zY3Vu&xU`aKk0;AOFQoRVsQ(>l9-d#Ur%8NXwc7BY$oV6qc%6>za{P=8?n8b)mg2Z1 ziC@BFk^tTDCIb=dE!kqSEN86>&P8jG7r9X@ieJ)yWk@@hbOtz@S*^0X6veMtepScK zFs?AEXJRnaQxI2KDdhXy2)xbER)Nw2YpWK{nF_LW#)1eagPW?jNQd_a?kY-y`+?)> zSQTdnX@jx;DL!4O=F$u?Fdo5t=~i6YNNbjqo2)_aT-aTKv^(xaZ>rBRqj! z9NN+_iPjo?f~L-fcNDawv0m-4fs1e99=DQ03Q1n})?pi4cd?>w#~$odGl_@>AT+Gh z(4?VX!<`zJma#a5!?R-{{>lY(e!U{MwRsXpWCR4a?gybM9Wf&1ARLuJkdfl{Wu!Di z3nCRYqUAvk%RxqT0>{%aBerD%xpdr!zlReOD26Vh(TGgIW%o!rVML6?1Wp-IBR+v| zNCHNr9N2VNE@VU}@k9;!-wb4UQh|r3W8SR{u!~!0qEB{H?0b3tzYq0jQPJLwR>r)I z5#7g_-H)Sa=V87dB}V%+BmES=yvR7e!bo3cl;2`}rHxMeL7CF$3ZCW&X{{?tl^WGL zgMtd*Yj{TKvjDH+St5qX<2;^YD?%3INL$GLNLnYY_Sz^-5O?-1HgN`Wk4MLHtVnn*{b`sZWkFJLK^QVqR9H7*81yc}5Jq7jQnZgQs#?N_McVA{PO_4oRSIY6P1#*T-j*92*ByV;}Tpq z^eLAahGyu#r#2YcOb@*kfXgJ7Zs$A&-o$NBx%k(!!0U{<3UFoEQ_8S3C@aB~LEl#M zqSFR_omK=Mq9qPdi&Em>9%K*u1`-z!|pA z^5*ywt#JWGyn#n?6)q-en2&ht`x8d-7moZJPT?Q4+CORCf6H4N9v3>E5XU zI-C*P@Qi4}v!WHxi3jk!=)nu(7+oR_|1#5uz9<`>t#|M)T@)5al=WGVL|;&l7IOA` zOotGbiT(HunbGiKAKu4rY4{bymqkkcH@{gWK@{C0feEHaj7- z1eq*A>{F~`zI=);?B|P29{=UP^4s+5b*^-CD5lp3T($-ua;QAf1b)xIKTw(f0igg8 A)Bpeg diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/AccountService.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/AccountService.class deleted file mode 100644 index 9a9f30416b7e7ac6508a594f91c45569256a4515..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcma)(O-{ow5QU#hX&|)Fic1ub@CH_0@w-aJq6@^*aYn%8$N~f_gj>kej@RIC8N#bWxno7IbM;V~YFr15p z;F-`VzlrB09m7Cc5{?=%!`(P)gC@@KTPuo!?726&s7hyYvd!4!pmiuW31zDs6Nd2W zQBvWQ(Pe;bhNCtoT4{J~^f|%MPpB}Za#N$}iDCMG&?eO-Iia$0&2WRIa`%Z9%Z5Kn z$^8T|oQ|Wf4Ms+%YqG*HkK-b@C6FpxCb>-hJ-wCnv TtJD9}8DRIj#{c&`p@ZQ&MhvB4 diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/AccountServiceImpl.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/AccountServiceImpl.class deleted file mode 100644 index 1a4ce62687abe465923ec67aa71369ba03b45ed2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6254 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 diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankDenominationService.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankDenominationService.class deleted file mode 100644 index 3342e6f1afa84a019ce4eb4cad2d80256a0d19c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmX^0Z`VEs1_l!b9(D#MMh4^L{9OIwf}+g4^rZa!68)saylnmA)S|M?&uKQ9;}&d$KX$RLoFSeB@tlbDyT@1K;Fnq0!jAe5Mrf~?#xwVaVbOv4AE z(lf6lH9fV+S~HB1fy=cbIkf;}Y%x0nCnJM4HkYKr)PUUr*8$WWoL^d$oa&aDlgh{- qgTtYEAe-4385kLufnH`{UU>^ diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class deleted file mode 100644 index c612e42422d8e4a39c9e4df9d956aba43d407eea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2724 zcmbVNU2_vv7=BKgWYctkwm>0Ow5ZgUmPQKl(H5kX76NH2Z4I=7xJ|ZYX|fx3H~qj* z6!jlC>W$9m4AaS_@T0EdCYkJyM5EeM_KTHaQlcT3k4~_{mCq1hL*T}}R*6b`JizoTk?OuVc zGQP@?PW6up986YoY3q5*FpfXe>5XFkK_3rwqrK&g%W9X}MmWj=+(mWzUv? znX$E;zF^sN@o8N%o%oEF_N;1a3i1AeYb_YIo}pRAi&3)#+8!$|FP2DOI%}AQdt9KV ztvw|W9I!IFf~^9(t0kA?X*S-UPFu_&itX5;ph;j$xgrBu&2d!hM2sQL>h1`W5ZKn% z?&IrKZQPZG?~URK>{9Tgz|MceUd2;*TA-GO{9*`nwQaOiGG48CwO}eL6hs(i(lGUr zLT*~OCp1DY(3rH+S~jKGhTNBg;XV(NC~DBE;yKh47Wb;b@*J&->|^kj^=Z^HnMw+c z=nDc(mB}PbSC@Q~b%+iwruDpJzoTHEKu5J|=&N@;rmblxh?BBqNc(MDTS^)Z3)Y3! zD7tY_!2yAWa@9(%RlJBptlPYnE$E{&GQLD*;Z`H8!x8i-I4ZEY>_&P}(ThHEiMa}F zuT0MG)ZX?f1tgo_!d|_`G&5u6qBw?D1^og$%2D||Iax5W8QqRxfJDgBNy~BmqBwy; zS)HMEj!NWePstl+R3vbgZLa0>y2+UKRf}l@p-L{v&=W|i7?xy?xR!5P(soqE%hGeu zFlQ`@#+Zt6OiFsSz<=Es`JAhh5 zDXZf;%(u!nunC*j$!d6e3+gFt;CUzC@~1X77P0Lfn!iEI*W3s24F9Da(A%?~1l)1Z zmNesh%hS-_yV$c{WtXR-`WNs#+IUf*9eZiGgXs-cpfg)a^W>2^?7A|6P8J7b10o^@HOo;`Hc>PmsF0BGz;Nl80G(FQ3iACh; zWK7{-mik4^QpDZ0vOF*Cu7!|e2(ido4BoZR5WbCOdR~Ub^lpX3_K+XdR}a$?#Gr@! z6q>j`!%8Li`94e8IerzAoZG_~zzBvo*e>Bb$IBS|bpkh$!p9t9pW`C#U=qui!cV;M zD=y1!u0ImO+E^JC-D~Erj2*#L6+XP_Aag6q@)9(hYUEZKq%-|a74i|E=Zxj iaKMvvKfuHvsQZ&N4&Xhi1n5T6xsJwe@%g~PhyMWgqRa~b diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankService.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankService.class deleted file mode 100644 index 90716f05d0e50627234275d09e2f14c5da080516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcma)&L23d)5Ji8fapD-oTf`vPAnx2r;%dN!C+O)EL+jW*%(UX!TzCKv6;fk}aUsN2 z*DroQe*N>;@dRLseuM_$)%dNdiqg6)^**RnyN#;2+*`wHE@JgFM`#fSYrWSh*Dh1b zbj>CZVpFmXTssN#VR8?*^`D$yV6(UX3_|=k7%qbKu8PnhjP4=%*K@&Me-Qc^hdRtV z2W|6;Fc~I)sT1$Ahcc}Et~9)`Im^{IHH>Rkn?Ptvi9kbIc|u!sB&sFvvut8?Z#Oc( I)L!(y0e#kO00000 diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankServiceImpl.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/BankServiceImpl.class deleted file mode 100644 index 723b10ede30b24f2c79e24be07fc6ff5e8e5fae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1803 zcma)6U2hvj6g^`*abi1dNL!~(OGyiLojB=2Khi)#z^>a8YA02LBEj2uJ#nY;?pnL! zl>8K4_zguutpEvl<~Je4nO!G1;3_=q&exrL&pG$r`Qxvje+6(C%`8#^6*usls26I# z(+UFPw4}f9L@GScu5xNz>?HF|uh-2YBQX6!9!RGv{f@KUdZApC#kj!D|LH~`Ya`TU zAW&|Mx)iEj5NQ*HhjI9Nb$dul%9GS zg!@iQNk4M-q#JvZ#}}Mx-vlppsM>TpzOH?3HU!e;getB;~P25;Yt>l1+I=t%Rg}nco$a%COgVhy?}WUxL96j z#AV@0^W3TFPF=a$lijsR2+S9d#Y7(0@j({v3zSB=|8Ld{xPcOL63GMVUMeR6hU$)j z{JRt>YQ~lqgPtzdL{f-GvJT{cNO3d`fiq-l6IEA6>MoOgdl*n7@H?mH$4cN7@F6}D znAp>PyLPzQW*ZE9N?PiOTHoldvmGatV&-rM_p-RlDvXJrI4xiW_n8$PJq=Z)Y*tv* z-`G1J7w`!vO`048&L8D!Sjq`}Dp0fp=i3Rxd3M-VHTg+hWK3I!Z6kyV_%Im z+d1P_OG{>YC?~Nhq-xI^I&N_LF`*8G?!lE_IH@#uu2?T%ddXH?AJ5v zZ?N%O4Bt{Mk{WQ2nyfJTeLg>{xWY=c)Du*tV^k$nQ6s86F5>~}#4yLtB2D8V?X6VF h*(2^h<_^{W)4peSxc-9c6gJ~*C#XLVIyAD>YoNQZmchM&Cmy4t9#;&2p&y$D bda3?t4W8pJt@n=#IQZ{qvB?~e)}jGwQ>m@jO>)33$!=zM1M*Y+ z;&0FyhYmWU{p@Fdj^p^8&80y$rTwsbZtr>C=e?f4{{8I_05>5ugaq`8UDw@)V_I8f z+xGObVQuTKbau>&)R&sBXV;}uYOPo5jhcpt!00n$$IxqrwWY6@pUH}+Au2HW22cX= zN*jFHumy6(pv#VI*skf>&R&q*2~hcTz%81_-ID=g1*r7>|N85Rl;h@dY@0`I6jL?(&rMLGcD7b7YJu2 zHUuI|c2&j@##;#txr;as11%Z`k$ zRCI5|Fpdiv-sy9z53>Z`MT)7iCA|(=fpq4z_$rN;61a>j0z(8)bXKZ#KCiz_-=b}8 z6^2061mZ}|u{Od=;RxM^C|#XW_e$@IXts)G*pH8wr7rmy=RG-`zy zuHu>oos^EACNPcbOeqo!!rb;<#tYu_JrKeD1xiAqUoye1x24mD+z(r zD^#l(lIWSk{bH}t=@~Nt$aBZx%@c8~r=pgnXP7m%o|#_v`)0gWp{c-URWd(H;B&A8 z4w>!)N4nCY?d*w92k`}MP`0G1EnO+L>(r**w5l;A@l-X+F9lBb>MwcfNn(bv?{vJb z%BvfKmT&WK=z&hM7nB!gZ(pH`fgPjPB-%*FhV~IIvT(xu1`y(F%=+Pch_fii7)Pjf^uIkN&nJcd5uWQD z1;>HxbBzANNeE;7D*)haoaA2tPynZJnj?e2{SeM_9^oqK!~D%1jXQH@+qX-^TWw0MpBm94F_b)E@4z-L4_Z0k=%icmJK_)i|-VF;_aeUyI0Fb5i_Z229@ zCu5JF{cnlD(Eo#RjTIEacU*^H_+E??rOdD5qWT|hvY zanWCod}QDM69ShN#g3UNMP+O)a6Rs5%{(h@#G7cW%-4F#vizVhl~b_^B#`elbie1e z5AAY=Z-S<0W10S{V{{Yqqz$AmAaKBc1tgsMA^KdWT=n=oVq}P8BwGY0Z6{9o^=y4R F{{ctUle+)_ diff --git a/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/TransactionServiceImpl.class b/16BankAppSpringBootJPA/target/classes/com/springboot/bank/service/TransactionServiceImpl.class deleted file mode 100644 index f62346d227aeffedc8292c40f3fac36c1fffb77c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2505 zcmb7F?N%FA6x}x;41`c)NQG`GSozYe70+@8u6Lo(&nd%rwuN-o;;W_vH7(w8-8sSyecr$ ztyi+`qpnd)ClLvZ;kts?1a5VU`Uip}UPp#)*q3g*wgQvcsUG;-e)$9@a8tnzfr<0a zYI`Sf3zGsvp@RxlHiSo=mY`^{03L;G5>uFFDd@hc>lU>~Mm=E#ZVb<1PQk3e`1z;; z=Ok1QRPywcLN$Q}yrE!`Q_~47$!WeTFklj7Su>lI6Lt5vA8!eaYAuk3YDV{!o~g*p zd;)2_?P+m|9@!Ajpw(05ek==I(F0X?Mh`$>B?$%ngLnsP3RVSXyHPrKY?D~W2Is=j z4heQLjG%R!bm%WI_2VIZLvqekrK=gHlhLYGS%J4N`?*2OJwS(`8x^9eE|mhL7oN?^$%ip{5lLhog15RnN1IS30lDqelD6yx+zDzcXMnOIFj?KV9d{KC4rhPKg#4y8M4kMT)29@;ZX<6VEwuluz3%KheUTI+o5EB(1 z;ay^lb1mR8(I>Em_h^qY*D|)SP5f6Gy+d0Z@AJ$tME+v(J_SO-n1Trf3kq_4f|vw8 zz!OHFR-we02zLEye8X%}{?4!lA=Y7vA4ag1^BBf_hAFPV2Aj7@29I!^c)i+ZT6s>G tWPH?u|3~l)AM^PMy}S;!ET7Wip=XmXar+s!5q$1zVvtT>@cX3$?QifduC4$8 diff --git a/16BankAppSpringBootJPA/target/test-classes/com/springboot/bank/BankApplicationTests.class b/16BankAppSpringBootJPA/target/test-classes/com/springboot/bank/BankApplicationTests.class deleted file mode 100644 index faca8cfd21b004eda2884bc2a3e877d62684fabd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 761 zcma)4O>fgc5Ph4ZHBH;Wl_Q1?=C2|`LEaWWv0DxBBLl5S$}M(cIT-{Mde zaX_5=qbkNW5>)bmgJ-=n^WMz9nd_S$KLMQJFhGN0AZ^OCmD6S(TkCl&%#xpy8Lw7} zmcnam&Q#{J04;{zLaYT(gqiaX@j^+@&=*qL-1w<-Yc16~E0+u}qdMBGO5x*Mh!Ml) zYi+cD!_XWY%@|q}`&qToL?=XmI{~&ChW}64Mi;vQdJKEk&3Q^4X>WPa8J!{e*rOVS zo8iSE`un6wBC>3B^pB@{_lf(_g!yHgT$ k(84x)=->hQ!U}|k*e~-AO8W?p>Fg5j3B{jEJi~L~H_dd@g#Z8m diff --git a/16BankAppSpringBootJPA/target/test-classes/com/springboot/bank/CustomerServiceTest.class b/16BankAppSpringBootJPA/target/test-classes/com/springboot/bank/CustomerServiceTest.class deleted file mode 100644 index 837756886f8b7f38fcc4fdb8f8a04c25cee37d2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 915 zcmZuv+iuf95IvhqO--OTE-9BnQzRO0et@?iq)89~+w7V|wSv-Mw z-~;$5#H{T&0a=!IJhMAz&YYRwe}4V~@C^4n)EMr^DhbR?3ptLIvOyHev)~{#RwY~? zbA2vie!`9Q&|p}fgy&%}4dpmEiY7d^4BjYI?^Jxo@Mus4rTI)5VU_+`qQ2@M^%%C_ zr_zdq4}}rYl=r1nHnc)X!>~C}dK@GKOPPU#rv%UBY#1I_Rw}N`G6i{8>L0kb(lK|S zhVE9L3n}aihWdVY$j~@YBkrS)^%h#V#IQCHk{_l?#Pvx?JTr1}I30#sIKK!s?5QB) z-AZN^a#H1{;r7Ff!GHZF=CiDG4{e66g~;X2T#`vjWP_LdlhVBB<0fuon_|;p+ZiQ6`^d&-LH2H0%CoG^hMgbDL^u4*BPKh}Iy}Gw0%VgPQS= zRjOnDMmUAq^QTMu^Td_IE=XwFz8ZZ^tdQrC=j??nx(a_Oc9CLr@@WusUM4Rf%g8n# ze8<|iEM - - - - - - \ No newline at end of file diff --git a/17BankInCapg/.gitignore b/17BankInCapg/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/17BankInCapg/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/17BankInCapg/.mvn/wrapper/maven-wrapper.jar b/17BankInCapg/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/17BankInCapg/.mvn/wrapper/maven-wrapper.properties b/17BankInCapg/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/17BankInCapg/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/17BankInCapg/mvnw b/17BankInCapg/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/17BankInCapg/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/17BankInCapg/mvnw.cmd b/17BankInCapg/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/17BankInCapg/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/17BankInCapg/pom.xml b/17BankInCapg/pom.xml deleted file mode 100644 index 91fcd51..0000000 --- a/17BankInCapg/pom.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - 4.0.0 - - com.bankApplication - BANKAPPLICATION - 0.0.1-SNAPSHOT - jar - - transactionInBank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - 5.1.38 - runtime - - - com.h2database - h2 - test - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java b/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java deleted file mode 100644 index f65ebb0..0000000 --- a/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.bank.Exception; - -public class ManagedException extends Exception { - public ManagedException(String msg) { - - - - super(msg); - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/TransactionInBankApplication.java b/17BankInCapg/src/main/java/com/bank/TransactionInBankApplication.java deleted file mode 100644 index adfb82f..0000000 --- a/17BankInCapg/src/main/java/com/bank/TransactionInBankApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class TransactionInBankApplication { - - public static void main(String[] args) { - SpringApplication.run(TransactionInBankApplication.class, args); - } -} diff --git a/17BankInCapg/src/main/java/com/bank/controller/ATMController.java b/17BankInCapg/src/main/java/com/bank/controller/ATMController.java deleted file mode 100644 index 06ec203..0000000 --- a/17BankInCapg/src/main/java/com/bank/controller/ATMController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.ATMReq; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Bank; -import com.bank.service.IATMService; -import com.bank.service.IBankService; - -//To call Restful services -@RestController -public class ATMController { - - // Injecting properties of IATMService to use its methods - @Autowired - private IATMService atmService; - // Injecting properties of IBankService to use its methods in current class - @Autowired - private IBankService bankService; - - /* - * description : this method will return a atm instance - */ - @PostMapping("/atmCreate") - public ResponseEntity createATM(@RequestBody final ATMReq atm) { - - ATM atm1 = null; - try { - final Optional bank = bankService.getBankDetailsByID(atm.getBankId()); - ATM atm2 = atm.getAtm(); - atm2.setBankId(bank.get().getBankId()); - atm1 = atmService.createATM(atm2); - return new ResponseEntity(atm1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Atm not created", HttpStatus.OK); - } - - } - /* - * description : this method will return a - * String message if money successfully added from bank - */ - - @PostMapping("/addMoneyInAtm") - public ResponseEntity addMoneyToATM(@RequestBody final AddMoneyReq atm) { - - try { - final String str = atmService.addMoneyFromBank(atm); - return new ResponseEntity(str, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money to atm not deposited succesfully!!!", HttpStatus.OK); - } - - } - - /* - * description : this method will return - * String if amount is successfully withdraw - */ - @PostMapping("/withdrawAtm") - public ResponseEntity withdrawFromAtm(@RequestBody final WithrawMoneyReq atm) { - - try { - final Long id = atmService.withrawMoney(atm); - return new ResponseEntity(id, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money from atm not withdrawn", HttpStatus.OK); - } - - } -} diff --git a/17BankInCapg/src/main/java/com/bank/controller/AccountController.java b/17BankInCapg/src/main/java/com/bank/controller/AccountController.java deleted file mode 100644 index 54cb138..0000000 --- a/17BankInCapg/src/main/java/com/bank/controller/AccountController.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountRequest; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IAccountService; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -// To call RestFull services -@RestController -public class AccountController { - - // Injecting properties of IAccountService to use its methods - @Autowired - private IAccountService accountService; - // Injecting properties of ICustomerService to use its methods - @Autowired - private ICustomerService customerService; - // Injecting properties of IBankService to use its methods - @Autowired - private IBankService bankService; - - /* - * description : this method will return a created account and will give - * response in response entity. - */ - @PostMapping("/accountCreate") - public ResponseEntity createAccount(@RequestBody final AccountRequest accountRe) { - Account response = null; - Optional bank; - try { - bank = bankService.getBankDetailsByID(accountRe.getBankId()); - - if (bank.isPresent()) { - Customer cust; - try { - cust = customerService.getCustomerDetails(accountRe.getCustomerId()); - - final Account acc = accountRe.getAccount(); - acc.setBank(bank.get()); - acc.setCustomer(cust); - try { - response = accountService.createAccount(acc); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Account not created", HttpStatus.OK); - } - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bank not present", HttpStatus.OK); - } - } - - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity("id not found", HttpStatus.OK); - } - - } - - /* - * method : getAccount return type : responseEntitiy description : this method - * will return a created account of a given input id - */ - - @GetMapping("/accountDetails/{id}") - public ResponseEntity getAccount(@PathVariable Long id) { - Account acc; - try { - acc = accountService.getAccountDetails(id); - return new ResponseEntity(acc, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("account of given id not found", HttpStatus.OK); - } - - } - - /* - * description : this method will return a success String if money is deposited - * mapping : post - */ - - @PostMapping("/accountDeposit") - public ResponseEntity depositAccount(@RequestBody final AccountTransaction account) { - try { - Long custId = accountService.depositMoney(account); - return new ResponseEntity(custId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - - /* - * description : this method will return a string if amount is withdraw - */ - - @PostMapping("/accountwithdraw") - public ResponseEntity withdrawAccount(@RequestBody final AccountTransaction account) { - try { - Long customerId = accountService.withdrawlMoney(account); - return new ResponseEntity(customerId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/controller/BankController.java b/17BankInCapg/src/main/java/com/bank/controller/BankController.java deleted file mode 100644 index d3ef533..0000000 --- a/17BankInCapg/src/main/java/com/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.service.IBankService; - -@RestController -@RequestMapping("/bank") -public class BankController { - - @Autowired - private IBankService bankService; - - - /* - * description : this method will return a bank instance - */ - @PostMapping("/bankCreate") - public ResponseEntity createBank(@RequestBody final Bank bank) { - - Bank bank1; - try { - bank1 = bankService.createBank(bank); - return new ResponseEntity(bank1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Bank not Added ", HttpStatus.OK); - } - - } - - /* - * description : this method will return a list of banks - */ - @GetMapping("/getBankDetails") - public ResponseEntity getBankDetails() { - List list; - try { - list = bankService.getBankDetails(); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bankDetailsnotfound", HttpStatus.OK); - } - - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java b/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java deleted file mode 100644 index 5d97e9f..0000000 --- a/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -@RestController -@RequestMapping("/customer") -public class CustomerController { - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - - - /** - * @return the customerService - */ - public ICustomerService getCustomerService() { - return customerService; - } - - /** - * @param customerService the customerService to set - */ - public void setCustomerService(ICustomerService customerService) { - this.customerService = customerService; - } - - /** - * @return the bankService - */ - public IBankService getBankService() { - return bankService; - } - - /** - * @param bankService the bankService to set - */ - public void setBankService(IBankService bankService) { - this.bankService = bankService; - } - - /* description : this method will return a - * created customer - */ - @PostMapping("/customerCreate") - public ResponseEntity createCustomer(@RequestBody final CreateCustomerRequest createCustomerRequest) { - Customer response = null; - Optional bank; - - try { - bank = bankService.getBankDetailsByID(createCustomerRequest.getBankID()); - - if (bank.isPresent()) { - final Customer cust = createCustomerRequest.getCustomer(); - cust.setBank(bank.get()); - - try { - response = customerService.createCustomer(cust); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("faild to create customer", HttpStatus.OK); - } - } - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e1) { - String message = e1.getMessage(); - return new ResponseEntity("unable to fetch bank details by id", HttpStatus.OK); - } - - } - - /* description : this method will return a created customer of - * specified id - */ - @GetMapping("/getCustomerDetails/{id}") - public ResponseEntity getCustomer(@PathVariable final Long id) { - final Customer cust; - try { - cust = customerService.getCustomerDetails(id); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("id not found for customer to get details", HttpStatus.OK); - } - } - - @PutMapping("/{id}/{name}/{userId}") - public ResponseEntity updateCustomer(@PathVariable final Long id,@PathVariable final String name,@PathVariable final String userId) throws CloneNotSupportedException { - final Customer cust; - try { - cust = customerService.updateCustomer(id, name, userId); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("unable to update data", HttpStatus.OK); - } - } -} diff --git a/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java b/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java deleted file mode 100644 index f0257c3..0000000 --- a/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.bank.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateDenominationRequest; -import com.bank.service.IAtmDenoService; -import com.bank.service.IBankDenominationService; -import com.bank.service.IRefServcie; - -@RestController -public class DenominationController { - - @Autowired - private IRefServcie refService; - - @Autowired - private IBankDenominationService bankDenominations; - @Autowired - private IAtmDenoService atmDenominationService; - - - - // this will add denominations to bank and atm - @PostMapping("/addDenominations") - public void addDenomination(@RequestBody CreateDenominationRequest createDenomination) - { - - try { - refService.createDenomination(createDenomination.getList()); - } catch (ManagedException e1) { - - e1.printStackTrace(); - } - try { - bankDenominations.bankDenominationCreate(createDenomination.getList(),createDenomination.getBankId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try { - atmDenominationService.atmDenominationCreate(createDenomination.getList(), createDenomination.getAtmId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java b/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java deleted file mode 100644 index 6c017c2..0000000 --- a/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.TransactionReq; -import com.bank.model.Transaction; -import com.bank.service.ITransactionService; - -@RestController -public class TransactionController { - @Autowired - private ITransactionService transactionService; - - - - // this will return all the statements of account id - @GetMapping("/transactionDetails/{accountId}") - public ResponseEntity retriveTrans(@PathVariable final Long accountId) { - - List list; - try { - list = transactionService.generateTransactionReport( accountId); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity(message, HttpStatus.OK); - } - } - - //this will create statements instance which will be used to tract transactions made by user - - @PostMapping("/transactionCreate") - public ResponseEntity createTransaction(@RequestBody final TransactionReq trans) { - - final Transaction transact =trans.getTransaction(); - final Transaction newtrans; - try { - newtrans = transactionService.createTransaction(transact); - return new ResponseEntity(newtrans, HttpStatus.CREATED); - } catch (ManagedException e) { - // TODO Auto-generated catch block - String msg=e.getMessage(); - return new ResponseEntity(msg, HttpStatus.OK); - } - - - } -} diff --git a/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java b/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java deleted file mode 100644 index d71f279..0000000 --- a/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bank.dto; - -import com.bank.model.ATM; - -public class ATMReq { - private Long bankId; - private ATM atm; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - /** - * @param atm the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } -public ATMReq() { - // TODO Auto-generated constructor stub -} -/** - * @param bankId - * @param atm - */ -public ATMReq(Long bankId, ATM atm) { - this.bankId = bankId; - this.atm = atm; -} - -} diff --git a/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java b/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java deleted file mode 100644 index 065159f..0000000 --- a/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Account; - -public class AccountRequest { - - private long bankId; - private long customerId; - private Account account; - /** - * @return the bankId - */ - public long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the account - */ - public Account getAccount() { - return account; - } - /** - * @param account the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountRequest [bankId=" + bankId + ", customerId=" + customerId + ", account=" + account + "]"; - } - - - -} diff --git a/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java b/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java deleted file mode 100644 index bf9f152..0000000 --- a/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AccountTransaction { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this. accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java b/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java deleted file mode 100644 index 7557450..0000000 --- a/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AddMoneyReq { - - private Long atmId; - private Long bankId; - private BigDecimal amount; - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java b/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java deleted file mode 100644 index 70ea8de..0000000 --- a/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Customer; - -public class CreateCustomerRequest { - - private Customer customer; - private Long bankID; - - /** - * @return the bankID - */ - public Long getBankID() { - return bankID; - } - /** - * @param bankID the bankID to set - */ - public void setBankID(Long bankID) { - this.bankID = bankID; - } - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - /** - * @param customer the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - /** - * @param customer - * @param bankID - */ - public CreateCustomerRequest(Customer customer, Long bankID) { - super(); - this.customer = customer; - this.bankID = bankID; - } -public CreateCustomerRequest() { - // TODO Auto-generated constructor stub -} -} diff --git a/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java b/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java deleted file mode 100644 index 50c0153..0000000 --- a/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; -import java.util.List; - -public class CreateDenominationRequest { - - private List list; - private Long bankId; - private Long atmId; - /** - * @return the list - */ - public List getList() { - return list; - } - /** - * @param list the list to set - */ - public void setList(List list) { - this.list = list; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java b/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java deleted file mode 100644 index 427128d..0000000 --- a/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Transaction; - -public class TransactionReq { - - private Long customerId; - private Long accountId; - private Transaction transaction; - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the transaction - */ - public Transaction getTransaction() { - return transaction; - } - /** - * @param transaction the transaction to set - */ - public void setTransaction(Transaction transaction) { - this.transaction = transaction; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java b/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java deleted file mode 100644 index c5af5af..0000000 --- a/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class WithrawMoneyReq { - private Long accountId; - private BigDecimal amount; - private Long atmId; - private Long customerId; - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/model/ATM.java b/17BankInCapg/src/main/java/com/bank/model/ATM.java deleted file mode 100644 index 4085121..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/ATM.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "atm_info") -@Entity -public class ATM extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "atm_id") - private Long ATMId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "id") - private Long bankId; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(final Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - public ATM() { - // TODO Auto-generated constructor stub - } - - - @Override - public String toString() { - return "ATM [ATMId=" + ATMId + ", amount=" + amount + ", bankId=" + bankId + "]"; - } - - /** - * @param aTMId - * @param amount - * @param bankId - */ - public ATM(Long aTMId, BigDecimal amount, Long bankId) { - ATMId = aTMId; - this.amount = amount; - this.bankId = bankId; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java b/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java deleted file mode 100644 index d7d7e63..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Ref_ATM_Denm") -@Entity -public class ATMDenomination extends BaseEntity { - @Column(name = "atm_id") - private Long ATMId; - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noofdenomination") - private int noofDenomination; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noofDenomination - */ - public int getNoofDenomination() { - return noofDenomination; - } - - /** - * @param noofDenomination - * the noofDenomination to set - */ - public void setNoofDenomination(int noofDenomination) { - this.noofDenomination = noofDenomination; - } - - public ATMDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param aTMId - * @param denomination - * @param noofDenomination - */ - public ATMDenomination(Long aTMId, BigDecimal denomination, int noofDenomination) { - ATMId = aTMId; - this.denomination = denomination; - this.noofDenomination = noofDenomination; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/model/Account.java b/17BankInCapg/src/main/java/com/bank/model/Account.java deleted file mode 100644 index 3579959..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/Account.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Table(name = "account_details") -@Entity -public class Account extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "account_id") - private Long accountId; - @Column(name = "amount") - private BigDecimal amount; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - - public Account() { - - } - - @Override - public String toString() { - return "Account [accountId=" + accountId + ", amount=" + amount + ", customer=" + customer + ", bank=" + bank - + "]"; - } - - /** - * @param accountId - * @param amount - * @param customer - * @param bank - */ - public Account(Long accountId, BigDecimal amount, Customer customer, Bank bank) { - this.accountId = accountId; - this.amount = amount; - this.customer = customer; - this.bank = bank; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/model/AuditLog.java b/17BankInCapg/src/main/java/com/bank/model/AuditLog.java deleted file mode 100644 index 50e52e5..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/AuditLog.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.bank.model; - -import java.sql.Timestamp; - -public class AuditLog { - - private String eventName; - private String eventType; - private Timestamp eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Timestamp getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Timestamp eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" + eventDate - + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - /** - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(String eventName, String eventType,Timestamp eventDate, String userId, Object oldValue, - Object newValue) { - super(); - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - -} diff --git a/17BankInCapg/src/main/java/com/bank/model/Bank.java b/17BankInCapg/src/main/java/com/bank/model/Bank.java deleted file mode 100644 index d52ebb2..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -/** - * author Ram Dafale - */ - -@Table(name = "bank_details") -@Entity -public class Bank extends BaseEntity { - - @Id - // @SequenceGenerator(name = "bank_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.IDENTITY /* , generator = "bank_seq" */) - @Column(name = "id") - private Long bankId; - - @Column(name = "amount") - private BigDecimal amount; - @OneToMany - @JoinColumn(name = "id", referencedColumnName = "id") - List atmList = new ArrayList(); - - public Bank() { - } - - /** - * method name : getBankId() return type : Long decription : it we get all bank - * id - */ - public Long getBankId() { - return bankId; - } - - /** - * method name : setBankId(final Long bankId) method description : it will set - * the bank id - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - /** - * method name : getAmount method description : it will get the total bank - * amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * method name : setAmount method parameters : BigDecimal method description : - * it will set bank amount - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } - - /** - * @param bankId - * @param amount - */ - public Bank(Long bankId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.amount = amount; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java b/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java deleted file mode 100644 index a1a0938..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Bank_Denm") -@Entity -public class BankDenomination extends BaseEntity { - - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noOfDenomination") - private int noOfDenomination; - @Column(name = "bank_id") - private Long bankId; - - - - /** - * @return the bankId - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noOfDenomination - */ - public int getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(int noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - public BankDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param bankId - * @param denomination - * @param noOfDenomination - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination) { - - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "BankDenomination [denomination=" + denomination + ", noOfDenomination=" + noOfDenomination + ", bankId=" - + bankId + "]"; - } - - /** - * @param denomination - * @param noOfDenomination - * @param bankId - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination, Long bankId) { - super(); - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((denomination == null) ? 0 : denomination.hashCode()); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BankDenomination other = (BankDenomination) obj; - if (denomination == null) { - if (other.denomination != null) - return false; - } else if (!denomination.equals(other.denomination)) - return false; - return true; - } - -} \ No newline at end of file diff --git a/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java b/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java deleted file mode 100644 index 2b31305..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.model; - -import javax.persistence.MappedSuperclass; - -@MappedSuperclass -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId - * the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/model/Customer.java b/17BankInCapg/src/main/java/com/bank/model/Customer.java deleted file mode 100644 index 8ca484b..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/Customer.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.bank.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -/** - * author Ram - */ -@Table(name = "customer_details") -@Entity -public class Customer extends BaseEntity implements Cloneable { - - @Id - //@SequenceGenerator(name = "customer_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.IDENTITY/*, generator = "customer_seq"*/) - @Column(name = "id") - private Long customerId; - @Column(name = "customer_name") - private String customerName; - @Column(name = "pin") - private Long pin; - - // relational mapping of bank to customer - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Customer() { - // TODO Auto-generated constructor stub - } - - /** - * method name : getCustomerId method returnTypr : Long method description : to - * get customer id - */ - public Long getCustomerId() { - return customerId; - } - - /** - * method name : setCustomerId method parameter : Long method description : it - * will set customerId - */ - public void setCustomerId(final Long customerId) { - this.customerId = customerId; - } - - /** - * method Name : getCustomerName method return type : String method description - * : it will get he customer name - */ - public String getCustomerName() { - return customerName; - } - - /** - * method name : setCustomerName method parameter : String method description : - * it will set customerName - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * method Name : getPin method return type : Long method description : it will - * get he pin - */ - public Long getPin() { - return pin; - } - - /** - * method name : setPin method parameter : Long method description : it will set - * pin - */ - public void setPin(final Long pin) { - this.pin = pin; - } - - /** - * method name : setBank method parameter : Bank method description : it will - * set Bank - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", pin=" + pin + ", bank=" - + bank + "]"; - } - - /** - * @param customerId - * @param customerName - * @param pin - */ - public Customer(Long customerId, String customerName, Long pin) { - super(); - this.customerId = customerId; - this.customerName = customerName; - this.pin = pin; - } - - public Customer(String string, long l) { - - } - @Override - public Customer clone()throws CloneNotSupportedException{ - return (Customer)super.clone(); - } - public Customer( String customerName) { - super(); - - this.customerName = customerName; - - } - - -} diff --git a/17BankInCapg/src/main/java/com/bank/model/RefMoney.java b/17BankInCapg/src/main/java/com/bank/model/RefMoney.java deleted file mode 100644 index 3d5d6d2..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/RefMoney.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -@Table(name="ref_money") -@Entity -public class RefMoney extends BaseEntity { - @Id - private BigDecimal denomination; - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } -public RefMoney() { - // TODO Auto-generated constructor stub -} -} diff --git a/17BankInCapg/src/main/java/com/bank/model/Transaction.java b/17BankInCapg/src/main/java/com/bank/model/Transaction.java deleted file mode 100644 index c958e83..0000000 --- a/17BankInCapg/src/main/java/com/bank/model/Transaction.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.springframework.stereotype.Component; - -@Table(name = "transaction_details") -@Entity -@Component -public class Transaction extends BaseEntity{ - @Id - @SequenceGenerator(name = "transaction_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "transaction_seq") - @Column(name = "transaction_id") - private Long transactionId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "transaction_type") - private String transactionType; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - @ManyToOne(targetEntity = Account.class) - private Account account; - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(final Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customerId - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(final String transactionType) { - this.transactionType = transactionType; - } - - public Transaction() { - // TODO Auto-generated constructor stub - } - - /** - * @param customerId - * @param accountId - * @param amount - * @param transactionType - */ - public Transaction(BigDecimal amount, String transactionType) { - super(); - /* - * this.customerId = customerId; this.accountId = accountId; - */ - this.amount = amount; - this.transactionType = transactionType; - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java b/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java deleted file mode 100644 index c08f97c..0000000 --- a/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATMDenomination; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMDenoRepository extends JpaRepository { - -} diff --git a/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java b/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java deleted file mode 100644 index bb53cc1..0000000 --- a/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATM; -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMRepository extends JpaRepository{ - -} diff --git a/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java b/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java deleted file mode 100644 index c5754c5..0000000 --- a/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface AccountRepository extends JpaRepository{ - -} diff --git a/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java b/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java deleted file mode 100644 index 15a792a..0000000 --- a/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import org.springframework.stereotype.Repository; - -import com.bank.model.Bank; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -@Repository -public interface BankRepository extends JpaRepository { - -} diff --git a/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java b/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java deleted file mode 100644 index e603c13..0000000 --- a/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Customer; -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface CustomerRepository extends JpaRepository { - - Optional findOneByCustomerName(String CustomerName); -} diff --git a/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java b/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java deleted file mode 100644 index 5711e5c..0000000 --- a/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.BankDenomination; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface DenominationRepository extends JpaRepository{ - -} diff --git a/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java b/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java deleted file mode 100644 index ad5053d..0000000 --- a/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.RefMoney; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface RefMoneyRepository extends JpaRepository { - -} diff --git a/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java b/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java deleted file mode 100644 index ed3ce90..0000000 --- a/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Account; -import com.bank.model.Transaction; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface TransactionRepository extends JpaRepository{ - - - /* - * this query will find trasanction where account id is associated - */ - @Query(value="select * from transaction_details where account_account_id=?1",nativeQuery=true) - List findAllByAccountId(Long accountId); - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java b/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java deleted file mode 100644 index edeef45..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("atmService") -public class ATMServiceImpl implements IATMService { - - final Logger LOGGER = LoggerFactory.getLogger(ATMServiceImpl.class); - -//injectiong all required properties - @Autowired - private ATMRepository atmRepo; - @Autowired - private IBankService bankService; - @Autowired - private IAccountService accountService; - @Autowired - private ICustomerService customerService; - @Autowired - private TransactionRepository trans; - @Autowired - private IAtmDenoService atmDeno; - - - //will create new instance for atm - @Override - public ATM createATM(final ATM atm) throws ManagedException { - // TODO Auto-generated method stub - final ATM atm1 = atmRepo.save(atm); - if (atm1 != null) { - LOGGER.info("atm is added"); - return atm1; - } else { - LOGGER.error("no atm is added"); - throw new ManagedException("No such atm is created!!"); - } - } - - // will add money from bank to atm - @Transactional - @Override - public String addMoneyFromBank(final AddMoneyReq atmreq) throws ManagedException { - // TODO Auto-generated method stub - final Optional atm = atmRepo.findById(atmreq.getAtmId()); - if (atm.isPresent()) { - ATM atm1 = atm.get(); - final Long bankID = atmreq.getBankId(); - final Long bankId = atm1.getBankId(); - if (bankID.equals(bankId)) { - final BigDecimal amount = atmreq.getAmount(); - final Optional bankopt=bankService.getBankDetailsByID(atmreq.getBankId()); - final Bank bank=bankopt.get(); - BigDecimal bankAmount = bank.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(bankAmount) == -1) { - BigDecimal atmAmount = atm1.getAmount(); - atmAmount = atmAmount.add(amount); - atm1.setAmount(atmAmount); - bankAmount = bankAmount.subtract(amount); - bank.setAmount(bankAmount); - bankService.createBank(bank); - atmRepo.save(atm1); - atmDeno.atmDenominationDeposit(atmreq.getAmount(), atmreq.getAtmId()); - LOGGER.info("amount is added to your account"); - return "amount added"; - - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less than you want"); - } - } - else - { - LOGGER.error("amount is negative"); - throw new ManagedException("amount connot be negative"); - } - - } - else - { - LOGGER.error("no bank id exist"); - throw new ManagedException("no such bank id exist"); - } - } - else - { - LOGGER.error("no atm id exist"); - throw new ManagedException("no such atm id exist"); - } - - } - - // will withdraws monet atm - - @Transactional - @Override - public Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException { - final Optional atm = atmRepo.findById(withdraw.getAtmId()); - if (atm.isPresent()) { - final ATM atm1 = atm.get(); - BigDecimal amount = atm1.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(withdraw.getAmount()) == 1) { - final Account account =accountService.getAccountDetails(withdraw.getAccountId()); - BigDecimal accountAmount = account.getAmount(); - if (accountAmount.compareTo(withdraw.getAmount()) == 1) { - amount = amount.subtract(withdraw.getAmount()); - atm1.setAmount(amount); - accountAmount = accountAmount.subtract(withdraw.getAmount()); - account.setAmount(accountAmount); - accountService.createAccount(account); - atmRepo.save(atm1); - Transaction transaction = new Transaction(); - transaction.setAccount(account); - transaction.setAmount(account.getAmount()); - final Customer customer = customerService.getCustomerDetails(withdraw.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.save(transaction); - LOGGER.info("amount is deducted"); - return withdraw.getAccountId(); - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less thsn amount you want to withdraw"); - } - } - else - { LOGGER.error("atm amount is less"); - throw new ManagedException("atm does not have this much of amount"); - } - } - else - { LOGGER.error("-ve amount not possible "); - throw new ManagedException("negative amount cannot possible"); - } - } - else - { LOGGER.error("no atm id exist"); - throw new ManagedException("no such id of atm exist"); - } - } -} diff --git a/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java b/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java deleted file mode 100644 index b3dbada..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("accountService") -public class AccountServiceImpl implements IAccountService { - final Logger LOGGER = LoggerFactory.getLogger(AccountServiceImpl.class); - @Autowired - private AccountRepository accountRepository; - @Autowired - private ITransactionService trans; - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - @Autowired - private IBankDenominationService bankDenoService; - private BigDecimal balance; - - - // this will create account instance for customer - @Override - public Account createAccount(final Account account) throws ManagedException { - final Account acc = accountRepository.save(account); - if (acc != null) { - LOGGER.info("account created"); - return acc; - } else { - LOGGER.error("no account is created"); - throw new ManagedException("No account is created"); - } - } - //this will credit money to account - @Transactional - @Override - public Long depositMoney(final AccountTransaction account) throws ManagedException { - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - final Optional acc1 = accountRepository.findById(account.getAccountId()); - if (acc1.isPresent()) { - - final Account acc = acc1.get(); - balance = acc.getAmount(); - balance = balance.add(account.getAmount()); - acc.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - bankDenoService.bankDenominationDeposit(account.getAmount(),account.getBankId()); - - }else - { LOGGER.error("no bank id present"); - throw new ManagedException("no bank is present of given id"); - } - Transaction transaction = new Transaction(); - transaction.setAccount(acc); - transaction.setAmount(acc.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("credit"); - trans.createTransaction(transaction); - LOGGER.info("AMOUNT IS ADDED"); - return account.getCustomerId(); - } else { - LOGGER.error("no amount is deposited"); - throw new ManagedException("zero amount deposited"); - } - } - else - { - LOGGER.error("-ve amount is not possible"); - throw new ManagedException("negative amount is not possible"); - } - } - - //this will debit money from account - @Transactional - @Override - public Long withdrawlMoney(final AccountTransaction account) throws ManagedException { - // TODO Auto-generated method stub - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - Optional acc1 = accountRepository.findById(account.getAccountId()); - if (acc1.isPresent()) { - final Account account1 = acc1.get(); ; - balance = account1.getAmount(); - balance = balance.subtract(account.getAmount()); - account1.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - bankDenoService.bankDenominationWithdraw(account.getAmount(), account.getBankId()); - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - - Transaction transaction=new Transaction(); - transaction.setAccount(account1); - transaction.setAmount(account1.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - if(customer!=null) - { - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.createTransaction(transaction); - LOGGER.info("amount is deducted"); - return account.getCustomerId(); - } - else - { LOGGER.error("no customer exist"); - throw new ManagedException("No customer of such occunct exsit"); - } - }else - {LOGGER.error("no account exist"); - throw new ManagedException("No such account exist"); - } - - } else { - LOGGER.error("not enough amount to withdraw"); - throw new ManagedException("No amount withdraw"); - } - } - else - { - LOGGER.error("-ve value is not posssible"); - throw new ManagedException("negative amount is not possible"); - } - } - - - //It will give account details of perticular Id - @Override - public Account getAccountDetails(final Long id) throws ManagedException { - // TODO Auto-generated method stub - Account account = accountRepository.findById(id).get(); - if (account != null) { - LOGGER.info("account retrived"); - return account; - } else { - LOGGER.error("no such id exist"); - throw new ManagedException("no such element found"); - } - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java b/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java deleted file mode 100644 index 4839f4f..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.ATMDenoRepository; -import com.bank.repository.ATMRepository; -import com.bank.repository.DenominationRepository; - -@Service -public class AtmDenoServiceImpl implements IAtmDenoService{ - - - @Autowired - private IRefServcie refService; - - @Autowired - private DenominationHelper denominationHelper; - - @Autowired - private ATMDenoRepository atmdenoRepository; - @Autowired - private ATMRepository atmRepo; - @Autowired - private DenominationRepository bankDeno; - @Autowired - IBankService bankService; - - - // this will create denominations for atm - @Override - public void atmDenominationCreate(List list, Long atmId) throws ManagedException { - - for(BigDecimal denom: list ) - { - final ATMDenomination first = new ATMDenomination(atmId,new BigDecimal(denom.intValue()), 0); - atmdenoRepository.save(first); - - } - } - - //this method provide logic (when you add money to atm ) for denominations adjustments - @Override - public void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException { - // TODO Auto-generated method stub - - List newList=refService.returnAll(); - - List list = new ArrayList<>(); - for(RefMoney deno:newList) - { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - ATMDenomination atmDeno=new ATMDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count=pair.getValue(); - System.out.println("key value"+myValue); - Optional deno=atmdenoRepository.findById(myValue); - ATMDenomination denomination=deno.get(); - System.out.println("denomination"+denomination); - System.out.println("count value"+count); - ATM atm=atmRepo.findById(atmId).get(); - BankDenomination bank=bankDeno.findById(myValue).get(); - int newNum=bank.getNoOfDenomination()-count; - bank.setNoOfDenomination(newNum); - bankDeno.save(bank); - denomination.setATMId(atmId); - denomination.setNoofDenomination(denomination.getNoofDenomination()+count); - - atmdenoRepository.save(denomination); - } - } - } - - - - diff --git a/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java b/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java deleted file mode 100644 index 1c583f5..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.bank.service; - -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.bank.model.AuditLog; - -@Service -public class AuditServiceImpl { - - //generate audit log - public AuditLog generateAudit(final AuditLog audit) - { - final RestTemplate restTemplate=new RestTemplate(); - final String uri="http://localhost:8082/audit"; - System.out.println("audit obnject " + audit); - final AuditLog audii=restTemplate.postForObject(uri, audit, AuditLog.class); - return audii; - } -} - \ No newline at end of file diff --git a/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java b/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index 1d2acb9..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.DenominationRepository; - -@Service -public class BankDenominationServiceImpl implements IBankDenominationService { - @Autowired - private DenominationRepository denominationRepo; - @Autowired - private IBankService bankServcie; - @Autowired - private DenominationHelper denominationHelper; - @Autowired - private IRefServcie refService; - - - //create denomination for bank - @Override - public void bankDenominationCreate(List list, Long bankId) throws ManagedException { - - // to get values from database - for (BigDecimal denom : list) { - final BankDenomination first = new BankDenomination(new BigDecimal(denom.intValue()), 0, bankId); - denominationRepo.save(first); - - } - - } - - - //this will provide logic: when you withdraws money denominations will get adjusted accordingly - - @Override - public void bankDenominationWithdraw(BigDecimal amount, Long bankId) throws ManagedException { - List newList = refService.returnAll(); - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getcountDenomination(amount, list); - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - System.out.println("key value" + myValue); - Optional deno = denominationRepo.findById(myValue); - BankDenomination denomination = deno.get(); - System.out.println("denomination" + denomination); - System.out.println("count value" + count); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() - count); - denominationRepo.save(denomination); - - } - - } - - @Override - public void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException { - - List newList = refService.returnAll(); - - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - BankDenomination bankDeno = new BankDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - - Optional deno = denominationRepo.findById(myValue); - BankDenomination denomination = deno.get(); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() + count); - denominationRepo.save(denomination); - } - - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java b/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java deleted file mode 100644 index bb1f1c5..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.repository.BankRepository; - -@Service("bankService") -public class BankServiceImpl implements IBankService { - - final Logger LOGGER = LoggerFactory.getLogger(BankServiceImpl.class); - @Autowired - private BankRepository bankRepository; - @Autowired - private IBankDenominationService bankDenoService; - - - // create new bank instance - @Override - public Bank createBank(final Bank bank) throws ManagedException { - final Bank bank1 = bankRepository.save(bank); - if (bank1 != null) { - - return bank1; - } else { - LOGGER.error("No bank is added"); - throw new ManagedException("No Bank is Added"); - } - } - - - @Override - public List getBankDetails() throws ManagedException { - final List list = bankRepository.findAll(); - if (list.isEmpty()) { - LOGGER.error("No banks found"); - throw new ManagedException("No bank found"); - } else { - return list; - } - } - - @Override - public Optional getBankDetailsByID(final long ID) throws ManagedException { - // TODO Auto-generated method stub - final Optional bank = bankRepository.findById(ID); - if (bank.isPresent()) { - return bank; - } else { - LOGGER.error("no bank of such id exist"); - throw new ManagedException("No such bank found"); - } - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java b/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java deleted file mode 100644 index 7f516c9..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.bank.service; - -import java.sql.Timestamp; -import java.time.LocalDateTime; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.AuditLog; -import com.bank.model.Customer; -import com.bank.repository.CustomerRepository; - -enum EventName { - CUSTOMER, ACCOUNT, ATM, BANK -} - -enum EventType { - CREATED, UPDATED -} - -@Service("customerService") -public class CustomerServiceImpl implements ICustomerService, Cloneable { - final static Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class); - @Autowired - private CustomerRepository customerRepository; - @Autowired - AuditServiceImpl auditService; - - @Override - public Customer createCustomer(final Customer customer) throws ManagedException { - final Customer custom = customerRepository.save(customer); - if (custom != null) { - return custom; - } else { - LOGGER.error("No customer is added"); - throw new ManagedException("no customer is created"); - } - } - - - @Override - public Customer getCustomerDetails(final Long id) throws ManagedException { - - final Customer customer = customerRepository.findById(id).get(); - if (customer != null) { - return customer; - } else { - LOGGER.info("No customer of given id is exist"); - throw new ManagedException("no customer of such id exist"); - } - - } - - @Override - public Customer updateCustomer(final Long id, final String name, final String userId) - throws ManagedException, CloneNotSupportedException { - // TODO Auto-generated method stub - final Customer customer = customerRepository.findById(id).get(); - - Customer oldcustmer = customer.clone(); - - if (customer != null) { - customer.setCustomerName(name); - customer.setUserId(userId); - Customer cust = customerRepository.save(customer); - Timestamp time = Timestamp.valueOf(LocalDateTime.now()); - AuditLog audit = new AuditLog(EventName.CUSTOMER.toString(), EventType.UPDATED.toString(), time, - cust.getUserId(), oldcustmer, cust); - - AuditLog ob = auditService.generateAudit(audit); - return cust; - } else { - LOGGER.info("No customer is updated as id not exist"); - throw new ManagedException("no customer is updated"); - } - - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java b/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java deleted file mode 100644 index 8621dc3..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -@Component -public class DenominationHelper { - - public Map getDenominatioValues(final BigDecimal amount , final List list) throws ManagedException { - final Map newMap=new HashMap(); - Random random = new Random(); - BigDecimal remainder = amount; - if(amount.intValue()>=0) - { - for(int i=0;i<=list.size();i++) - { - Integer randomIndex = random.nextInt(list.size()); - BigDecimal randomElement = list.get(randomIndex); - if ( !(randomElement.compareTo(remainder) >0) ) { - Integer count=remainder.divide(randomElement).intValue(); - remainder= remainder.remainder( randomElement); - - newMap.put(randomElement,count); - - if (remainder.compareTo(BigDecimal.ZERO) ==0) { - break; - } - } - list.remove(randomIndex); - - } - if (remainder.compareTo(BigDecimal.ZERO) !=0) { - System.out.println("cant Proceed "); - return null ; - } - - } - return newMap; - } - - - - public Map getcountDenomination(BigDecimal amount, List list) throws ManagedException - { - Map newMap = new HashMap(); - - List selectedList = new ArrayList(); - for (BigDecimal denom : list) { - if (denom.compareTo(amount) <= 0) { - selectedList.add(denom); - } else { - throw new ManagedException("selected list is empty"); - } - } - for (int i = 0; i <= selectedList.size(); i++) { - BigDecimal maxDen = Collections.max(selectedList); - Integer count = amount.divide(maxDen).intValue(); - amount = amount.remainder(maxDen); - newMap.put(maxDen, count); - - if (amount.compareTo(BigDecimal.ZERO) == 0) { - break; - } - selectedList.remove(maxDen); - } - // get index of particular element - if (amount.compareTo(BigDecimal.ZERO) != 0) { - throw new ManagedException("amount cannot be withdrawn"); - } - return newMap; - } -} diff --git a/17BankInCapg/src/main/java/com/bank/service/IATMService.java b/17BankInCapg/src/main/java/com/bank/service/IATMService.java deleted file mode 100644 index 91f56b9..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/IATMService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; - -/** - * @author ram - */ -public interface IATMService { - /** - * method name : createATM return type : ATM object parameter :object of ATM - * description : this method will return a atm which is created - */ - ATM createATM(final ATM atm) throws ManagedException; - - /** - * method name : addMoneyFromBank return type : String parameter :object of - * ATMMoneyReq description : this method will return a string if money is added - * to atm - */ - String addMoneyFromBank(final AddMoneyReq atm) throws ManagedException; - - /** - * method name : withrawMoney return type : String parameter :object of - * WithdrawMoneyReq description : this method will return a string if - * successfully money withraw - */ - Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException; - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/IAccountService.java b/17BankInCapg/src/main/java/com/bank/service/IAccountService.java deleted file mode 100644 index d207310..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/IAccountService.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; - -public interface IAccountService { - /** - * method name : createAccount return type : Account object parameter :object of - * Account class description : this method will return a account which is - * created - */ - Account createAccount(final Account account) throws ManagedException; - - /** - * method name : depositMoney return type : String parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully amount is added and add to transaction list - */ - Long depositMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : withdrawlMoney return type : String object parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully withdraw and add to transaction list - */ - Long withdrawlMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : getAccountDetails return type : Account object parameter :Long - * id description : this method will return a account which is created of given - * id - */ - Account getAccountDetails(final Long id) throws ManagedException; - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java b/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java deleted file mode 100644 index 47657d8..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java +++ /dev/null @@ -1,15 +0,0 @@ - package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; - -public interface IAtmDenoService { - - - - - void atmDenominationCreate(List list,Long atmId)throws ManagedException; - void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException; -} diff --git a/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java b/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java deleted file mode 100644 index 124f9c5..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -import com.bank.Exception.ManagedException; - -public interface IBankDenominationService { - - - void bankDenominationWithdraw(BigDecimal amount,Long bankId) throws ManagedException; - void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException ; - void bankDenominationCreate(List list,Long bankId)throws ManagedException; - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/IBankService.java b/17BankInCapg/src/main/java/com/bank/service/IBankService.java deleted file mode 100644 index a464c98..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/IBankService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; - -public interface IBankService { - /* - * description : this method will return a bank which is created - */ - Bank createBank(final Bank bank) throws ManagedException; - - /* description : this method will return a list of all banks - */ - List getBankDetails() throws ManagedException; - - /* - * description : this method will return a bank of given id - */ - Optional getBankDetailsByID(final long Id) throws ManagedException; - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java b/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java deleted file mode 100644 index 8256c10..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Customer; - -/** - * @author ram - * - */ -public interface ICustomerService { - /** - * description : this method will return a customer which is - * created - */ - Customer createCustomer(final Customer customer) throws ManagedException; - - /** - * description : this method will return a customer of specified id - */ - Customer getCustomerDetails(final Long id) throws ManagedException; - /* - * description : this method will return a customer of specified id with updation - * @throws CloneNotSupportedException ,ManagedException - */ - Customer updateCustomer(final Long id,final String name, final String userId ) throws ManagedException, CloneNotSupportedException; -} diff --git a/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java b/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java deleted file mode 100644 index 85867ad..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -/** - * @author ram - * - */ -public interface IRefServcie { - - /** - * - * @param denomination - * @return - * @throws BankException - */ - - /** - * - * @return - * @throws ManagedException - */ - List returnAll() throws ManagedException; - void createDenomination(List list) throws ManagedException; - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java b/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java deleted file mode 100644 index 9e8c997..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; - -/** - * @author ram - * - */ -public interface ITransactionService { - /** - * method name : createTransaction return type : Transaction object parameter - * :Transaction description : this method will return a transaction which is - * created - */ - Transaction createTransaction(final Transaction trans) throws ManagedException; - - /** - * method name : generateTransactionReport return type : List - * Object description : this method will return a list which of transactions - */ - List generateTransactionReport(Long accountId) throws ManagedException; - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java b/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java deleted file mode 100644 index 8a4a66f..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; -import com.bank.repository.RefMoneyRepository; -@Service -public class RefServcieImpl implements IRefServcie { - -@Autowired -private RefMoneyRepository refRepo; - @Override - public void createDenomination(List list) throws ManagedException{ - for(BigDecimal denomination: list ) - { - if(!refRepo.findById(denomination).isPresent()) - { - RefMoney refMoney=new RefMoney(); - refMoney.setDenomination(denomination); - refRepo.save(refMoney); - //return true; - } - else - { - throw new ManagedException("Denomination already exist!!!!"); - } - } - } - - @Override - public List returnAll() throws ManagedException { - - List list=refRepo.findAll(); - if(list.isEmpty()) - { - throw new ManagedException("no denomination found"); - } - else - { - return list; - } - } - -} diff --git a/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java b/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 213e1ea..0000000 --- a/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.bank.service; - -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; -import com.bank.repository.TransactionRepository; -@Service -public class TransactionServiceImpl implements ITransactionService{ - final Logger LOGGER = LoggerFactory.getLogger(TransactionServiceImpl.class); - @Autowired - private TransactionRepository transact; - - @Override - public Transaction createTransaction(final Transaction trans) throws ManagedException { - - final Transaction newtransaction =transact.save(trans); - if(newtransaction!=null) - { - return newtransaction; - } - else - { - throw new ManagedException("no transaction has been created"); - } - } - - @Override - public List generateTransactionReport(Long accountId) throws ManagedException { - // TODO Auto-generated method stub - System.out.println(">>>>>>>>"+accountId); - List transopt=transact.findAllByAccountId(accountId); - System.out.println(">>>>>>>>"+transopt); - - return transopt; - } - -} diff --git a/17BankInCapg/src/main/resources/application.properties b/17BankInCapg/src/main/resources/application.properties deleted file mode 100644 index 6ebbc95..0000000 --- a/17BankInCapg/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/bankapp?useSSL=false -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true \ No newline at end of file diff --git a/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java b/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java deleted file mode 100644 index 15bba78..0000000 --- a/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.bank.testcases; - - - - - - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Optional; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -import com.bank.Exception.ManagedException; -import com.bank.controller.CustomerController; -import com.bank.dto.ATMReq; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.service.ATMServiceImpl; -import com.bank.service.AccountServiceImpl; -import com.bank.service.BankServiceImpl; -import com.bank.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -@SpringBootConfiguration -@ComponentScan("application.properties") -public class AllTestCases { - - @Autowired - CustomerRepository customerRepository; - - @Autowired - CustomerServiceImpl customerServiceImpl; - - @Autowired - BankRepository bankRepository; - - @Autowired - BankServiceImpl bankServiceImpl; - - @Autowired - AccountRepository accountRepository; - - @Autowired - AccountServiceImpl accountServiceImpl; - - @Autowired - ATMRepository atmRepository; - - @Autowired - ATMServiceImpl atmServiceImpl; - - - @Test - public void createBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - when(bankRepository.save(bank)).thenReturn(bank); - // System.out.println(bank); - assertThat(bankServiceImpl.createBank(bank), is(notNullValue())); - } - - @Test - public void testAddBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - bankServiceImpl.createBank(bank); - - List departments = bankServiceImpl.getBankDetails(); - Assert.assertEquals(1, departments.size()); - } - - @Test - public void testAddCustomer() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - List employees = (List) customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(1, employees.size()); - } - - - @Test - public void testAddCustomerName() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getCustomerName(), employees.getCustomerName()); - } - RestTemplate restTemplate = new RestTemplate(); - @Autowired - CustomerController customerController; - - - - @Test - public void customerCreateRestTemplateTest() { - Customer customer = new Customer(); - customer.setCustomerName("Lokesh"); - customer.setPin(442001L); - - final String uri = "http://localhost:8080/customer/createCustomer"; - Optional ob = bankRepository.findById(1L); - Bank obj = ob.get(); - - CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest(customer,1L); - String result = restTemplate.postForObject(uri, createCustomerRequest, String.class); - - //System.out.println(result); - assertEquals(result, customerController.createCustomer(createCustomerRequest)); - } - - - - @Test - public void viewCustByRestTemplateTest() { - - final String uri = "http://localhost:8080/getCustomer"; - - RestTemplate restTemplate = new RestTemplate(); - String result = restTemplate.getForObject(uri, String.class); - System.out.println(result); - assertEquals(result, customerController.getCustomer(1L)); - } - - - - @Test - public void testAddCustomerpin() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getPin(), employees.getPin()); - } - - - @Test - public void testAddAccount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - List information = (List) accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(1, information.size()); - } - - @Test - public void testAddAccountAmount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAmount(), information.getAmount()); - } - - @Test - public void testAddAccountId() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAccountId(), information.getAccountId()); - } - - - @Test - public void createAtm() throws ManagedException { - Bank bank = new Bank(1L,new BigDecimal(1200)); - - Optional bnk = Optional.of(bank); - - ATM atm = new ATM(1L,new BigDecimal(5000), 1L); - - //ATMReq req = new ATMReq(1L,atm); - - - when(bankRepository.findById(Mockito.any(Long.class))).thenReturn(bnk); - when(atmRepository.save(atm)).thenReturn(atm); - assertThat(atmServiceImpl.createATM(atm), is(notNullValue())); - - } - - -} \ No newline at end of file diff --git a/1Day1 Programs/ContainsDuplicateProgram3.java b/1Day1 Programs/ContainsDuplicateProgram3.java deleted file mode 100644 index 46e8389..0000000 --- a/1Day1 Programs/ContainsDuplicateProgram3.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.training.java; - -/************************************************************************************ - * Program Name: Contains Duplicate - * Description : In a word if there is 2 or more than 2 occurance of letter then output - * must be true or else false. - * Programmer Name: Ram Dafale - * DateOfRelease: 16-April-2018 - ***********************************************************************************/ - -public class ContainsDuplicate { - - public static void main(String[] args) { - String s = "abcdefga"; - System.out.println(s + " " + check(s)); //Calling ther method - s = "abcdefgh"; - System.out.println(s + " " + check(s)); //Calling ther method - s = "abcdefdh"; - System.out.println(s + " " + check(s)); //Calling ther metho - } - - - - /************************************************************************************ - *Method Name: check - *Description: it compare character by character in a given string and if occurance of - * letter is found then return boolean true else false. - ***********************************************************************************/ - - public static boolean check(String s) { - for (int i = 0; i < (s.length() - 1); i++) { - for (int j = i + 1; j < s.length(); j++) { - if (s.charAt(i) == s.charAt(j)) { - return true; // It means - } - } - } - return false; - } - - - } -/********** -Output: - abcdefga true - abcdefgh false - abcdefdh true -**********/ - - diff --git a/1Day1 Programs/FileIOProgram4.java b/1Day1 Programs/FileIOProgram4.java deleted file mode 100644 index 635b341..0000000 --- a/1Day1 Programs/FileIOProgram4.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.training.java; - -import java.io.File; - -//*********************************************************************** -// Program name : FIleIO -// Program Description : Reading a file from local disk and making changes in file. -// reflect those changes in new file. -//*********************************************************************** - -// importing required library file - -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FilterOutputStream; -import java.io.IOException; - -public class FileIO { - - public static void main(String[] args) { - - - - /********************************************************************************** - * Description :It uses class File to create a new file and uses a FileInputStream - * to read a byte from hello file till end of file and print the content - * into console - * ********************************************************************************/ - - File file = new File("./hello.txt"); - FileInputStream fis = null; - - try { - fis = new FileInputStream(file); - - - int content; - while ((content = fis.read()) != -1) { - // convert to char and display it - System.out.print((char) content); - } - - - - - /********************************************************************************** - * Description :It uses class File to create a new file and uses a FileOutputStream - * to write a content. - * - * ********************************************************************************/ - - - File data = new File("./hello.txt"); - FileOutputStream file2 = new FileOutputStream(data); - FilterOutputStream filter = new FilterOutputStream(file2); - String s="Welcome to java."; - byte b[]=s.getBytes(); - filter.write(b); - filter.flush(); - filter.close(); - file2.close(); - System.out.println("Success..."); - - - - - } catch (IOException e) { - e.printStackTrace(); // It tells Specified reason of exception. - - } finally { - try { - if (fis != null) - fis.close(); - } catch (IOException ex) { - ex.printStackTrace(); - } - } - - } -} \ No newline at end of file diff --git a/1Day1 Programs/HelloWorld.java b/1Day1 Programs/HelloWorld.java deleted file mode 100644 index 7eedcae..0000000 --- a/1Day1 Programs/HelloWorld.java +++ /dev/null @@ -1,10 +0,0 @@ -//package com.training.java; -// -//public class HelloWorld { -// -// public static void main(String[] args) { -// // this code is printing Hello world -//System.out.println("Hello World"); -// } -// -//} diff --git a/1Day1 Programs/PalindromeNumberAndSortProgram5.java b/1Day1 Programs/PalindromeNumberAndSortProgram5.java deleted file mode 100644 index 773665f..0000000 --- a/1Day1 Programs/PalindromeNumberAndSortProgram5.java +++ /dev/null @@ -1,52 +0,0 @@ -package mypackage; - -import java.util.ArrayList; - - -import java.util.Iterator; -import java.util.List; -import java.util.Scanner; - -public class PalindromeSort { - public static void main(String[] args) { - - System.out.println("enter string"); - - String[] array = new String[5]; - Scanner sc = new Scanner(System.in); - for (int i = 0; i < array.length; i++) { - array[i] = sc.nextLine(); - - } - - for (String string : array) { - StringBuilder input = new StringBuilder(); - input.append(string); - StringBuilder input1 = input.reverse(); - - if (string.equals(input1.toString())) { - List list = new ArrayList(); - list.add(string); - System.out.println(list); - Iterator iterator = list.iterator(); - while (iterator.hasNext()) { - - String[] newarray = list.toArray(new String[0]); - for (int i = 0; i > newarray.length; i++) { - int count1 = newarray[i].length(); - int count2 = newarray[i + 1].length(); - if (count1 > count2) { - System.out.println(newarray[i]); - } else { - System.out.println(newarray[i + 1]); - } - } - sc.close(); - - } - } - - } - - } -} diff --git a/1Day1 Programs/PalindromeNumberProgram1.java b/1Day1 Programs/PalindromeNumberProgram1.java deleted file mode 100644 index aa50186..0000000 --- a/1Day1 Programs/PalindromeNumberProgram1.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.training.java; -/********************************************************************************* - * Program name : Check if integer is palindrome or not. - * Program Description : It check if given number is read same from left and right. - * eg. 121, 131; - * Programmer Name: Ram Dafale - * DateOfRelease: 16-April-2018 - *********************************************************************************/ - -//Library to take input from user in console -import java.util.Scanner; - - -public class PalindromeNumber { - - - /************************************************************************************ - *Method Name: main - *Description: It takes input from user. then it breaks the number by getting remainder - * then it adds that remainder to sum varibale. and then divide the number. - * this process repeats till we get same number as user specified. - ************************************************************************************/ - public static void main(String[] args) { - - int num, temp, sum = 0,x; - // sum varibale to - // try block to monitor exception and to avoid the wrong input from user - try - { - // take input from user and store in a variable - Scanner inputNumber = new Scanner(System.in); - System.out.print("Enter any number:"); - num = inputNumber.nextInt(); - // temporary variable to store user input - temp = num; - // loop for checking the number greater than 0 - while(num > 0) - { - - x = num % 10; - sum = sum * 10 + x; - num = num / 10; - } - // comparing given integer with calculated integer - // if sum and temp are equal then given number is palindrome - if(sum == temp) - { - System.out.println("Given number "+temp+" is Palindrome"); - } - else - { - System.out.println("Given number "+temp+" is Not Palindrome"); - } - } - // catch block to catch exception if any and show appropriate response to user - catch(Exception e) - { - System.out.print("Enter only Number"); - - } - - - } -} - -/******************************************************************** -output: -Enter any number:131 -Given number 131 is Palindrome - -**********************************************************************/ - - diff --git a/1Day1 Programs/ReverseStringProgram2.java b/1Day1 Programs/ReverseStringProgram2.java deleted file mode 100644 index 7da9795..0000000 --- a/1Day1 Programs/ReverseStringProgram2.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.training.java; - -/************************************************************************************ - * Program Name: Reverse String - * Description : Check if more than - * must be true or else false. - * Programmer Name: Ram Dafale - * DateOfRelease: 16-April-2018 - ***********************************************************************************/ - - - - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.Scanner; - -public class ReverseString { - - public static void main(String[] args) throws IOException { - - BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); - String input = br.readLine(); - String[] words = input.split(" "); // logic uses space as a delimter to separate words. - String reverse = ""; - for (int i = 0; i < words.length; i++) - { - for (int j = words[i].length() - 1; j >= 0; j--) - { - reverse += words[i].charAt(j); - } - System.out.print(reverse + " "); - reverse = ""; - } - } - } - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/2Day2apr17/LambdaExpressionDay2.java b/2Day2apr17/LambdaExpressionDay2.java deleted file mode 100644 index 6086e8f..0000000 --- a/2Day2apr17/LambdaExpressionDay2.java +++ /dev/null @@ -1,118 +0,0 @@ - -/******************************************************************************************************************* - * Program Name: Lambda Expression - * Program Description : Write a lambda expression for finding a palindrome of following - * 1->IsOdd - * 2->IsPrime - * 3->IsPalindrome - * - *Programmer Name: Ram Dafale - *Release Date: 17-April-2018 - ********************************************************************************************************************/ - -package com.tarining.apr17; - -/******************************************************************************************************************* - * Class Name: LambdaExp Program Description : This class include the all - * Functional interface required. : Declaration of all Functional interfaces. - * - * Programmer Name: Ram Dafale Release Date: 17-April-2018 - ********************************************************************************************************************/ - -public class LambdaExp { - - // Functional Interface - interface IsOdd { - public boolean isOdd(int number); - } - - // Functional Interface - interface IsPrime { - public boolean isPrime(int number); - } - - // Functional Interface - interface isPalindrome { - public boolean isPalindrome(int number, int flag); - } - - /******************************************************************************************************************* - * Method Name: LambdaExp Program Description : Main method is consists of 3 - * different logic for 3 activities of the program. 1. IsOdd method take 1 - * parameter and check weather it is odd or not. 2. IsPrime method take 1 - * parameter and check weather it is prime or not. 3. isPalindrome method take 1 - * parameter and check weather it is palindrome or not. - ********************************************************************************************************************/ - - public static void main(String[] args) { - // Taking input - int input = 121; - - // lambda expression to check if a number is even/odd. - - /******************************************************************************************************************* - * Method Name: IsOdd() Program Description : 1. IsOdd method take 1 parameter - * and check weather it is odd or not. - ********************************************************************************************************************/ - IsOdd check1 = (number) -> { - if (input % 2 == 0) - return false; - else - return true; - }; - System.out.println("No is odd : " + check1.isOdd(input)); - - /******************************************************************************************************************* - * Method Name: IsPrime() Program Description : 2. IsPrime() method take 1 - * parameter and check weather it is prime or not. - ********************************************************************************************************************/ - - IsPrime prime1 = (number) -> { - for (int i = 2; i <= input / 2; i++) { - if (input % i == 0) - return false; - } - return true; - }; - System.out.println("No is prime : " + prime1.isPrime(input)); - - /******************************************************************************************************************* - * Method Name: isPalindrome() Program Description : 3. isPalindrome() method - * take 1 parameter and check weather it is palindrome or not. - ********************************************************************************************************************/ - - // lambda expression to check if a number is palindrome. - - isPalindrome palindrome1 = (number, flag) -> { - int no1 = number; - int remainder = 0, sum = 0; - while (number > 0) { - remainder = number % 10; - number = number / 10; - flag = flag * 10 + remainder; - sum = flag; - } - System.out.println(sum); - if (sum == no1) - return true; - else - return false; - - }; - int flag = 0; - System.out.println("No is palindrome : " + palindrome1.isPalindrome(input, flag)); - } - -} - -/******************************************** - * Output: - * No is odd : true -No is prime : false -121 -No is palindrome : true - - */ - - - diff --git a/2Day2apr17/Person.java b/2Day2apr17/Person.java deleted file mode 100644 index fba897d..0000000 --- a/2Day2apr17/Person.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.tarining.apr17; - -/************************************************************************************************************** - * Program: To create a phone directory. - * Description: Program is to create a phone directory which includes person's 3 credentials:- - * 1) First Name - * 2) Last Name - * 3) Phone No. - * Then perfom operations :- - * 1) Enter the details. - * 2) Remove the specific detail. - * 3) Search a specific detail by First Name. - * 4) Sort by First Name. - *************************************************************************************************************/ -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Scanner; - -class Details { - - private String fname, lname; - private int number; - private static int id = 1; - - public Details(String fname, String lname, int number) { - this.fname = fname; - this.lname = lname; - this.number = number; - - } - - public String getFname() { - return fname; - } - - public String getLname() { - return lname; - } - - public int getNumber() { - return number; - } - - public int getId() { - return id++; - } - -} - - -class Sortbyname implements Comparator -{ - // setting record in Ascending order - public int compare(Details a, Details b) - { - return a.firstname.compareTo(b.firstname); - } -} - - - - - -public class Person { - // public Person(String fname, String lname, int number) { - // super(fname, lname, number); - - // } - - public static void main(String args[]) { - int choice; - List
list = new ArrayList<>(); - while (true) { - System.out.println("Enter the choice to do"); - - System.out.println("1:Add NEw data of Person \n " + "2.Remove data from collection \n " - + "3.Search person by name \n " + "4.Display All records \\n " + - "5.Search person by name "); - - Scanner input1 = new Scanner(System.in); - choice = input1.nextInt(); - - switch (choice) { - - // Enter the details from user. - case 1: { - System.out.println("ENter the details"); - - Scanner input2 = new Scanner(System.in); - String first = input2.next(); - String last = input2.next(); - int num = input2.nextInt(); - - // break; - - Details d1 = new Details(first, last, num); - - list.add(d1); - System.out.println("Record added successfully"); - break; - - } - - // Remove a specific detail by taking input as an ID - case 2: { - System.out.println("Remove the details of a person"); - Scanner sc1 = new Scanner(System.in); - int RemoveById = sc1.nextInt(); - list.remove(RemoveById); - System.out.println("Record deleted successfully"); - break; - - } - - // Search phone number by first name. - case 3: { - System.out.println("Search the details of a person by name"); - Scanner sc1 = new Scanner(System.in); - String SearchByName = sc1.next(); - Iterator
itr = list.iterator(); - String isFound = null; - while (itr.hasNext()) { - Details d1 = itr.next(); - isFound = d1.getFname(); - if (isFound.equalsIgnoreCase(SearchByName)) { - // System.out.println("Record found/n"); - System.out - .println(d1.getFname() + " " + d1.getLname() + " " + d1.getNumber() + " " + d1.getId()); - } else - System.out.println("Record not found"); - } - break; - } - - case 4: { - System.out.println("Display all the details"); - Iterator
itr = list.iterator(); - while (itr.hasNext()) { - Details d1 = itr.next(); - System.out.println(d1.getFname() + " " + d1.getLname() + " " + d1.getNumber() + " " + d1.getId()); - } - - } - - case 5: - System.out.println("Sorted list is =>> "); - if(list.size()>0) - { - Collections.sort(list, new Sortbyname()); - - - for (int i1=0; i1 0) { - bool = true; - } else { - bool = false; - } - } - return bool; - } - -} - diff --git a/3PMD junit of DAY1 and DAY2/FileIoRefactoring b/3PMD junit of DAY1 and DAY2/FileIoRefactoring deleted file mode 100644 index 6f2ac5b..0000000 --- a/3PMD junit of DAY1 and DAY2/FileIoRefactoring +++ /dev/null @@ -1,61 +0,0 @@ -package com.cg.demo; - -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; - - - - -class myclass -{ - - public void Readmyfile() throws IOException - { - FileReader fr = null; - try { - fr = new FileReader("./hello.txt"); - } catch (FileNotFoundException e) { - - e.printStackTrace(); - } - int i; - while((i=fr.read())!=-1) - System.out.print((char)i); - fr.close(); -} - - public void writemyfile() throws IOException - { - try{ - FileWriter fw=new FileWriter("./hello.txt"); - fw.write("Welcome to javaTpoint."); - fw.close(); - }catch(Exception e){System.out.println(e);} - System.out.println("Success..."); -} - - - - - -public class fileio { - -} - public static void main(String args[]) { - - - myclass m = new myclass(); - try { - m.Readmyfile(); - m.writemyfile(); - } catch (IOException e) { - - e.printStackTrace(); - } - - - } -} - diff --git a/3PMD junit of DAY1 and DAY2/JUnit Palindrome b/3PMD junit of DAY1 and DAY2/JUnit Palindrome deleted file mode 100644 index 1b732f5..0000000 --- a/3PMD junit of DAY1 and DAY2/JUnit Palindrome +++ /dev/null @@ -1,88 +0,0 @@ -package mavenjunit; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import srcpack.Palindrome; - - -public class PalindromeTest { - -@Test -public void testpalindrone() - -{ -// PalindromeTest test = new PalindromeTest(); // Palindrome is tested - -// assert statements -assertEquals("true", Palindrome.isPalindrome(121)); -assertEquals("false", Palindrome.isPalindrome(456),false); -assertEquals("false", Palindrome.isPalindrome(-121),false); -assertEquals("false", Palindrome.isPalindrome(-456), false); - -} - - -} - - - - - - - -package srcpack; - - - -/*Program name : Pallindrome - * Program Description : Determine whether an integer is a palindrome. An integer is a - * palindrome when it reads the same backward as forward. - * Date created : 16-April-2018 - */ - -import java.util.*; -import java.util.logging.Logger; - - - -public class Palindrome { - -public static void main(String[] args) { - final Scanner read=new Scanner(System.in); - final Logger lps=Logger.getLogger(Palindrome.class.getName()); -int number; - -// lps.info("Enter the number \t"); -number=read.nextInt(); -if(isPalindrome(number)) -lps.info(number + " is a Palindrome Number."); - else - lps.info(number + " is not a Palindrome Number."); - -} -//function to check number is Palindrome or not - public static boolean isPalindrome(int num) - { - int rem,sum=0,temp; - temp=num; - while(num>0) - { - rem=num%10; //getting remainder - sum=sum*10 +rem; - num=num/10; - } - if(temp==sum) - { - - return true; - - } - else - { - return false; - } - } - - } diff --git a/3PMD junit of DAY1 and DAY2/Palindrome.java b/3PMD junit of DAY1 and DAY2/Palindrome.java deleted file mode 100644 index db83d65..0000000 --- a/3PMD junit of DAY1 and DAY2/Palindrome.java +++ /dev/null @@ -1,114 +0,0 @@ - -// Commenting like java docs - -/*Program Name: Lambda Expression - * Program Description : Write a lambda expression for finding a - * palindrome of following IsOdd,IsPrime,IsPalindrome - *Programmer Name: Ram Dafale - *Release Date: 17-April-2018 -*/ - -package palindromepmd; - -/* - * Class Name: LambdaExp Program Description : This class include the all - * Functional interface required. : Declaration of all Functional interfaces. - * - * Programmer Name: Ram Dafale Release Date: 17-April-2018 - */ -import java.util.logging.Logger; - -public class LambdaExp { - - @FunctionalInterface - interface IsOdd { - public boolean isOdd(int number); - } - - @FunctionalInterface - interface IsPrime { - public boolean isPrime(int number); - } - - @FunctionalInterface - interface isPalindrome { - public boolean isPalindrome(int number, int flag); - } - - /* - * Method Name: LambdaExp Program Description : Main method is consists of 3 - * different logic for 3 activities of the program. 1. IsOdd method take 1 - * parameter and check weather it is odd or not. 2. IsPrime method take 1 - * parameter and check weather it is prime or not. 3. isPalindrome method take 1 - * parameter and check weather it is palindrome or not. - */ - - // removed unnecessary String args from main - public static void main() { - - final Logger printf = Logger.getLogger(LambdaExp.class.getName()); - - // Taking input - // declaring local variable final because it is not going to change - - final int input = 121; - - // lambda expression to check if a number is even/odd. - - /* - * Method Name: IsOdd() Program Description : 1. IsOdd method take 1 parameter - * and check weather it is odd or not. - */ - IsOdd check1 = (number) -> { - if (input % 2 == 0) - return false; - else - return true; - }; - printf.info("No is odd : " + check1.isOdd(input)); - - /******************************************************************************************************************* - * Method Name: IsPrime() Program Description : 2. IsPrime() method take 1 - * parameter and check weather it is prime or not. - ********************************************************************************************************************/ - - IsPrime prime1 = (number) -> { - for (int i = 2; i <= input / 2; i++) { - if (input % i == 0) - return false; - } - return true; - }; - printf.info("No is prime : " + prime1.isPrime(input)); - - /* - * Method Name: isPalindrome() Program Description : 3. isPalindrome() method - * take 1 parameter and check weather it is palindrome or not. - */ - - isPalindrome palindrome1 = (number, flag) -> { - // write a every new variable into new line - int no1 = number; - int remainder = 0; - int sum = 0; - while (number > 0) { - remainder = number % 10; - number = number / 10; - flag = flag * 10 + remainder; - sum = flag; - } - // Using Logger - printf.info(sum); - if (sum == no1) - return true; - else - return false; - - }; - int flag = 0; - - printf.info("No is palindrome : " + palindrome1.isPalindrome(input, flag)); - - } - -} diff --git a/3PMD junit of DAY1 and DAY2/ReverseStringDone b/3PMD junit of DAY1 and DAY2/ReverseStringDone deleted file mode 100644 index cde6454..0000000 --- a/3PMD junit of DAY1 and DAY2/ReverseStringDone +++ /dev/null @@ -1,125 +0,0 @@ - - -// junit test case -import static org.junit.Assert.assertEquals; - - -import org.junit.Test; -public class StringRevTest { -// private static StringReverse srrv; -@Test -public void teststringreverse() - -{ -StringReverse srt = new StringReverse(); // Palindrome is tested - -// assert statements -assertEquals("true", srt.isReverse("Hello World"),true); - - -assertEquals("false", srt.isReverse("Hello World"),true); - -} - -} - ------------------------------------------------------------------------------------------------------------------- -//Program of String arrangement - - - -/******************************************************************************************************************* - * Program Name: String Reorganizing - * Program Description : Take a word and make sure that no two letter occuur adjacent to one another. - * - *Programmer Name: Ram Dafale - *Release Date: 17-April-2018 - ********************************************************************************************************************/ - - -package com.cg; - - -/* - * Class Name: ReorganizeString Program Description : - * Description: It takes input from user and - * - */ - - -import java.util.Scanner; - - -class myclass -{ - - -public void MyMethod() -{ - System.out.println("Enter a String:"); - - Scanner scan = new Scanner(System.in); - int cnt = 0; - String str = ""; - String string = scan.next(); - char arr[] = string.toCharArray(); - for (int input = 0; input < arr.length - 1; input++) { - if (arr[input] != arr[input + 1]) { - System.out.println(string); - } - break; - } - - for (int input = 0; input < arr.length - 1; input++) { - - if (arr[input] == arr[input + 1]) { - - cnt++; - continue; - } else { - - char temp = arr[input]; - arr[input] = arr[input + 1]; - arr[input + 1] = temp; - str = String.valueOf(arr); - } - } - if (cnt != 3) { - // System.out.println(str.length()); - for (int j = 0; j < str.length() - 1; j++) { - - if (str.charAt(j) == str.charAt(j + 1)) { - System.out.println("null"); - } else { - System.out.println("String is" + str); - break; - } - - } - - } else { - System.out.println(str); - } - scan.close(); - } - -} - - - - -public class CorrectionInReorganizeString { - - public static void main(String[] args) { - - myclass myob = new myclass(); - myob.MyMethod(); -} -} - - - - - - - diff --git a/4Day4-19-April/.eclipse-pmd b/4Day4-19-April/.eclipse-pmd deleted file mode 100644 index 917288e..0000000 --- a/4Day4-19-April/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/4Day4-19-April/.settings/org.eclipse.jdt.core.prefs b/4Day4-19-April/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 3a21537..0000000 --- a/4Day4-19-April/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,11 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/4Day4-19-April/bin/CustomException.class b/4Day4-19-April/bin/CustomException.class deleted file mode 100644 index e72236cd7e5200538e5913947ee5ecdbe733ede7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmZuv+fEZv6kVqs7+PDPEmSBM3yQX&R1ife-~}ORQqiQQ3Gr!YCuMLt(@akRKfu2* zd;u@=07eph_oIyKOe-Mra?YN8_N>d^``7R9KL9LXT}MEmZ>`moZhifrVm74ZIyy9g z{#|3w$k~Qd%e~#+H7in}d)aabD@Ro^zf_r|tu z3dDijD2#b5=y)WM@YR#x(r*zwRt?k}3dweqqQwZF z;u&*}c_0f83Aq>r1(R3R%WPn#;BSiI)!4_xHT_}@9aj0+Hh#HfY9W-kxz0V$g($f# zuVQXkYP$xmEYPfyjR_7j$n6GC{)ld#I=^zf1@EruQ}ldg5I~rxdIpAZgJ+~&z&pyX zkXi^<^)uG^67yjij04O}roJG0hS*j-af-p8BZr8k4iQbIMzrcT4DB3gN306^97)Om zr=wwtm{}w-!}jHT&SV=6DU7g&xEN(5Fvgfny)o(-$F2W#d?vQWn(P_UTgR9@MW%R+ znRxC5b2BG+vZ9VvW=6*-=LAa^mQyqhERuc+3FI+^Wzwx8gBQM}={7J{m;*E8c+MAY W9$WB|;sUIW;1wg);WgF-@cIv|O5&ja diff --git a/4Day4-19-April/bin/InputFormatException.class b/4Day4-19-April/bin/InputFormatException.class deleted file mode 100644 index f94391a691a7292460a1aa129aed32da429e8297..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmZvW&q~8U5XQfWG0|A9)|j(L|A4)CtMpP@5Tch#@7uV?Z&K3aKM~=tI)wA6YFt=Zu{3UlZTTpHbqXB diff --git a/4Day4-19-April/bin/printArrayOfIntString.class b/4Day4-19-April/bin/printArrayOfIntString.class deleted file mode 100644 index 5ac84a7710159ced2c454552a80508a2ddb9fc67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1875 zcmah}T~`}b6x}y7$xXtvd^MER(5A(<0ScjoV#}8zf~KaWHb|w^k0A^=HB4|aVTr!- zKU{s{**?%NUGxX|KYVp9|A4sf%>cp0(yW!aU+12)_de&`-~aygEr3z1NkjxvTfXZB zGrn){EUXv2pcHVuAz=!%y|B0Ke8u)Q@(ZgkoN^!#n{+)lm=-W{eMYJ;Mzi6*k9D$BvwQN_GY~NMuaMKLFb!!3_i)RL(pyN&3^#rrCK8b)Al!5lAUK191mF{Ydmbo(p+<_)tJu?ac&EU!qI|CnM|-t zSsR*g7UKrnj9i;T9H}eN(y-K>C~&S6*yZmY+FQC~BxWUw0*R8l;n_jmC*YpRx$&kn zh2*AlD~ofa7{?-0f4!Dfm9=EyDZU^CtqoH=c}D#-qdHRRxDA?$k)3i4&s0fLy`-yJ zD8zh9yU+y{2+LkQ1t-0HeB5>Vec0JLdLs<-ka*4*rE1+TJM*r3PA+K*I$+atHKZKl zD$Bs&(*}N-Sj701T;(|mj?wig&f?tr z={K}3ze2}rbQfRYosKK}xH_?XrI-K! diff --git a/4Day4-19-April/src/CustomException.java b/4Day4-19-April/src/CustomException.java deleted file mode 100644 index b9a1481..0000000 --- a/4Day4-19-April/src/CustomException.java +++ /dev/null @@ -1,66 +0,0 @@ -import java.util.Scanner; - -/** - * - */ - - - - -/** - * @author trainee - * - */ - - -class InputFormatException extends Exception -{ - public InputFormatException(String Message) - { - super(Message); - - } -} - -public class CustomException { - -/** -* @param args -* @return - * @throws InputFormatException -*/ -public static int power(int numrs,int pows) throws InputFormatException //throws InputFormatException -{ - - if (numrs < 0) - { - throw new InputFormatException("Negative value not allowed"); - - } - -if (pows > 0 && numrs > 0 ) -{ - return numrs * power(numrs, pows - 1); -} - else - { - return 1; - } - - // else { - // throw new InputFormatException("Negative value not allowed"); - // } -} -public static void main(String[] args) throws InputFormatException { -Scanner read=new Scanner(System.in); -int numb1; -int numb2; -System.out.println("Enter two numbers\t"); -numb1=read.nextInt(); -numb2=read.nextInt(); -//long rest=; -System.out.println(power(numb1,numb2)); - -} - -} \ No newline at end of file diff --git a/4Day4-19-April/src/JUNITDay4PrintArray b/4Day4-19-April/src/JUNITDay4PrintArray deleted file mode 100644 index 746a0f8..0000000 --- a/4Day4-19-April/src/JUNITDay4PrintArray +++ /dev/null @@ -1,38 +0,0 @@ -package mavenjunit; - -import static org.junit.Assert.assertEquals; - -import java.util.Arrays; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import srcpack.printArrayOfIntString; - - -public class PrintArray { - - - @Before - public static String[] initObjects() { - String stringObject[] = {"Naruto","dsd"}; - return stringObject; - } - - - @Test - public void test() { - - ; - - assertEquals(true,printArrayOfIntString.printarray(PrintArray.initObjects())); - - - //assertEquals(false, printArrays.printarray()); - - - - } - -} diff --git a/4Day4-19-April/src/JunitDa4EXception b/4Day4-19-April/src/JunitDa4EXception deleted file mode 100644 index d16301f..0000000 --- a/4Day4-19-April/src/JunitDa4EXception +++ /dev/null @@ -1,39 +0,0 @@ -package mavenjunit; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - - -import org.junit.Test; - -import srcpack.CustomException; -//import srcpack.InputFormatException; -// import srcpack.InputFormatException; - -public class JunitForException { - - - CustomException persist =new CustomException(); - - - @Test - public void exceptioncheck() - { - - - - - assertEquals("true",8,persist.power(2,3)); - - assertEquals("true",persist.power(0,0)); - - - -// @Test -// public void testEcxeption() throws IOException { - - // CustomException test = new CustomException(); - // assertEquals(false, test.power(-1, -2)); - - } -} diff --git a/4Day4-19-April/src/printArrayOfIntString.java b/4Day4-19-April/src/printArrayOfIntString.java deleted file mode 100644 index 517ac26..0000000 --- a/4Day4-19-April/src/printArrayOfIntString.java +++ /dev/null @@ -1,57 +0,0 @@ -/* -* -* Program name : Print Array Of Integer & String -* Program Description : Let's say you have an integer array and a string array. -* You have to write a single method -* printarray that can print all the elements of both arrays. -* The method should be able to -* accept both integer and string arrays. -* Date : 19-April-2018 -*/ - -import java.util.Scanner; - -/* - * @author ram dafale - * Generic method printarray is printing integer - * array list and string array list together. - */ -public class printArrayOfIntString { - - /** - * @param args - */ - public static void main(String[] args) { - final Scanner read = new Scanner(System.in); - int range1; - int range2; - int inti; - int stringi; - - System.out.println("Enter number of elements for integer array\t"); - range1 = read.nextInt(); - Integer intArr[] = new Integer[range1]; - for (inti = 0; inti < range1; inti++) { - intArr[inti] = read.nextInt(); - } - System.out.println("Enter number of elements for string array\t"); - range2 = read.nextInt(); - String[] stringArray = new String[range2]; - for (stringi = 0; stringi < range2; stringi++) { - stringArray[stringi] = read.nextLine(); - } - System.out.println("-----------------------------------"); - printarray(intArr); // pass an Integer array - printarray(stringArray); // pass a String array - read.close(); - } - - public static void printarray(E[] inputArray) { - // display array elements - for (E element : inputArray) - System.out.printf("%s ", element); - - System.out.println(); - - } -} diff --git a/5Bank Application/BankAppJunit.java b/5Bank Application/BankAppJunit.java deleted file mode 100644 index 817af25..0000000 --- a/5Bank Application/BankAppJunit.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Program Name: Test cases for abnk application using JUNIT - * @author Ram Dafale - * DateOF Completion : 4/42/2018 - */ - - - -package BankApplicationWIthMaven.BankApplicationAI; - - - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import bankapplication.Customer; - - - - -/* - * class Name: BankAppJunit - * Description : this class contains various test cases for bank application - * 1. Null values are not allowed in Name - * 2. Null values are not allowed in lASTnaME - * 3. Null values are not allowed in MOBILE NUMBER - * 4. checking if deposit method running or not - * 5. checking if withdraw method running or not - * 6. checking if addInterest method running or not - */ -public class BankAppJunit { - - - //Creating a customer class object - Customer cust = new Customer("ram", "dafale", "wardha", 97546545, "ramdafale@gmail.com"); - - - // 1. Null values are not allowed in Name - @Test - public void checknullInFirstName() - { - String str= null; - assertNotEquals("null not allowed ",str,cust.getFname()); - } - - - - @Test - public void checknullInLastName() - { - String str1= null; - assertNotEquals("null not allowed ",str1,cust.getLname()); - } - - - @Test - public void checknullInMobile() - { - String str2= null; - assertNotEquals("null not allowed ",str2,cust.getNumber()); - } - - - @Test - public void testWithdraw(){ - double balance =2000; - int amount = 1000; - assertTrue( (balance = balance - amount) == 1000); - } - - - - - @Test - public void testDeposit(){ - double balance = 0; - int amount = 1000; - - } - - - - @Test - public void addInterest() { - int balance=100; - double interestRate=0.087; - - assertFalse( ( balance = (int) (interestRate * balance + balance)) == 1000); ; - - } - - - - - -} - - - - - - - - - - diff --git a/5Bank Application/pom.xml b/5Bank Application/pom.xml deleted file mode 100644 index 0e78f6b..0000000 --- a/5Bank Application/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - 4.0.0 - - bank - bank11 - 0.0.1-SNAPSHOT - jar - - bank11 - http://maven.apache.org - - - UTF-8 - - - - - junit - junit - 3.8.1 - test - - - diff --git a/5Bank Application/src/main/java/bank/bank11/App.java b/5Bank Application/src/main/java/bank/bank11/App.java deleted file mode 100644 index 49bccc0..0000000 --- a/5Bank Application/src/main/java/bank/bank11/App.java +++ /dev/null @@ -1,220 +0,0 @@ -package bank.bank11; - -class Bank { - static String name = "My Bank"; - - public void bankName() { - - System.out.println(name); - - } - -} - -class Customer { - String fname = null; - String lname = null; - String address = null; - long number; - String email; - - /** - * @param fname - * @param lname - * @param address - * @param number - * @param email - */ - public Customer(String fname, String lname, String address, long number, String email) { - this.fname = fname; - this.lname = lname; - this.address = address; - this.number = number; - this.email = email; - } - - /** - * @return the fname - */ - public String getFname() { - return fname; - } - - /** - * @param fname - * the fname to set - */ - public void setFname(String fname) { - this.fname = fname; - } - - /** - * @return the lname - */ - public String getLname() { - return lname; - } - - /** - * @param lname - * the lname to set - */ - public void setLname(String lname) { - this.lname = lname; - } - - /** - * @return the address - */ - public String getAddress() { - return address; - } - - /** - * @param address - * the address to set - */ - public void setAddress(String address) { - this.address = address; - } - - /** - * @return the number - */ - public long getNumber() { - return number; - } - - /** - * @param number - * the number to set - */ - public void setNumber(long number) { - this.number = number; - } - - /** - * @return the email - */ - public String getEmail() { - return email; - } - - /** - * @param email - * the email to set - */ - public void setEmail(String email) { - this.email = email; - } - -} - -abstract class Account { - Customer customer; - static int id = 0; - double balance = 0; - int accountNumber; - - /** - * @param balance - */ - public Account(double balance,Customer customer) { - // super(fname, lname, address, number, email); - this.balance = balance; - // this.accountNumber = account; - accountNumber = ++id; - this.customer=customer; - } - - /** - * @return the balance - */ - public double getBalance() { - return balance; - } - - /** - * @param balance - * the balance to set - */ - public void setBalance(double balance) { - this.balance = balance; - } - - /** - * @return the accountNumber - */ - public int getAccountNumber() { - return accountNumber; - } - - /* - * public abstract void calcsal(double a); public void disp() { - * - * System.out.println("Id"+ id+"Salary"+balance); - * - * } - */ - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Account [balance=" + balance + ", accountNumber=" + accountNumber + "]"; - } - -} - -class savingAccount extends Account { -Customer customer; - /** - * @param balance - * @param accountNumber - */ - public savingAccount(double balance,Customer customer) { - super(balance,customer); - this.customer=customer; - // TODO Auto-generated constructor stub - } - - public void Deposit(int amount) { - balance = balance + amount; - } - - public void Withdraw(int amount) { - if (balance - amount > 0) { - balance = balance - amount; - } else { - System.out.println("Not enough balance to withdraw " + amount); - } - } - - public void Disp() { - System.out.println(" \n Account no:" + accountNumber + "\n Balance:" + balance+" \n Name:"+customer.getFname()+" \n Surname:"+customer.getLname()); - } - -} - -public class App extends Bank { - - public static void main(String[] args) { - System.out.println("Welcome To" + name); - - Customer cust1=new Customer("ram","dafale","at wardha", 976651934, "ramdafale@gmail.com"); - Account Arr[] = new savingAccount[100]; - Arr[0] = new savingAccount(1000,cust1); - // Arr[1] = new savingAccount(5000); - - ((savingAccount) Arr[0]).Disp(); - ((savingAccount) Arr[0]).Deposit(1000); - ((savingAccount) Arr[0]).Disp(); - ((savingAccount) Arr[0]).Withdraw(1000); - ((savingAccount) Arr[0]).Disp(); - // ((savingAccount) Arr[1]).Disp(); - - } -} diff --git a/5Bank Application/src/main/java/bankapplication/Account.java b/5Bank Application/src/main/java/bankapplication/Account.java deleted file mode 100644 index 6137776..0000000 --- a/5Bank Application/src/main/java/bankapplication/Account.java +++ /dev/null @@ -1,68 +0,0 @@ -/** - * - */ -package bankapplication; - -/** - * @author trainee - * - */ - -abstract class Account { - Customer customer; - static int id = 0; - double balance = 0; - int accountNumber; - - /** - * @param balance - */ - public Account(double balance,Customer customer) { - // super(fname, lname, address, number, email); - this.balance = balance; - // this.accountNumber = account; - accountNumber = ++id; - this.customer=customer; - } - - /** - * @return the balance - */ - public double getBalance() { - return balance; - } - - /** - * @param balance - * the balance to set - */ - public void setBalance(double balance) { - this.balance = balance; - } - - /** - * @return the accountNumber - */ - public int getAccountNumber() { - return accountNumber; - } - - /* - * public abstract void calcsal(double a); public void disp() { - * - * System.out.println("Id"+ id+"Salary"+balance); - * - * } - */ - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Account [balance=" + balance + ", accountNumber=" + accountNumber + "]"; - } - -} \ No newline at end of file diff --git a/5Bank Application/src/main/java/bankapplication/Apps.java b/5Bank Application/src/main/java/bankapplication/Apps.java deleted file mode 100644 index a3fbfaa..0000000 --- a/5Bank Application/src/main/java/bankapplication/Apps.java +++ /dev/null @@ -1,120 +0,0 @@ -/* Program Name : Create Banking application in core java using concepts like collections and oops. - * Description: In Saving Account class and Current Account class there are methods withdraw and deposit amount. - * Author : Ram Dafale - * Date of Completion: 23/4/2018 - */ - -package bankapplication; - -/* - * Description: required librabry classes. - */ - -import java.util.HashMap; -import java.util.Map; - -/* - * class Name : Apps - * Description: In Saving Account class and Current Account class there are methods withdraw and deposit amount. - */ -public class Apps extends Bank { - - public static void main(String[] args) { - - /* - * using log4j - */ - final Logger LOGGER = Logger.getLogger(Apps.class.getName()); - - LOGGER.info("Welcome To" + name); - // Creating New account for customer - Customer cust1 = new Customer("ram", "dafale", "at wardha", 976651934, "ramdafale@gmail.com"); - // We can use ArrayList too - savingAccount Arr[] = new savingAccount[5]; - - Arr[0] = new savingAccount(1000, cust1); - - Arr[0].Disp(); - double depAmnt = Arr[0].Deposit(1000); - Arr[0].Disp(); - double withdAmnt = Arr[0].Withdraw(1000); - //System.out.println(" Balance after adding interest rate is :"); - Arr[0].addInterest(); - Arr[0].Disp(); - // Creating another account for customer - Customer cust2 = new Customer("shyam", "dafale", "at Delhi", 97665454, "shyamdafale@gmail.com"); - - Arr[1] = new savingAccount(5000, cust2); - - Arr[1].Disp(); - Arr[1].Deposit(1000); - Arr[1].Disp(); - Arr[1].Withdraw(700); - //System.out.println(" Balance after adding interest rate is :"); - Arr[1].addInterest(); - Arr[1].Disp(); - - // Code for printing the statement of each customer - - Map hm = new HashMap(); - hm.put(1, Arr[0]); - hm.put(2, Arr[1]); - - for (Map.Entry entry : hm.entrySet()) { - int key = entry.getKey(); - Account b = entry.getValue(); - LOGGER.info(key + " Mini Statement of :"); - LOGGER.info("AccountNo:" + b.getAccountNumber() + "Account Balance: " + b.getBalance() - + "Deposit Amt " + depAmnt + "Withdraw Amt:" + withdAmnt); - - } - } -} - - -//Output - -/* - Welcome To-------Indian Bank------ - - Account no:1 - Balance:1000.0 - Name:ram - Surname:dafale - - Account no:1 - Balance:2000.0 - Name:ram - Surname:dafale -Mon Apr 23 19:20:22 IST 2018 - Balance after adding interest rate is : -Salary After adding interest rate is :1070.0 - - Account no:1 - Balance:1070.0 - Name:ram - Surname:dafale - - Account no:2 - Balance:5000.0 - Name:shyam - Surname:dafale - - Account no:2 - Balance:6000.0 - Name:shyam - Surname:dafale -Mon Apr 23 19:20:22 IST 2018 - Balance after adding interest rate is : -Salary After adding interest rate is :5671.0 - - Account no:2 - Balance:5671.0 - Name:shyam - Surname:dafale -1 Mini Statement of : -AccountNo:1Account Balance: 1070.0Deposit Amt 2000.0Withdraw Amt:1000.0 -2 Mini Statement of : -AccountNo:2Account Balance: 5671.0Deposit Amt 2000.0Withdraw Amt:1000.0 - - */ diff --git a/5Bank Application/src/main/java/bankapplication/Bank.java b/5Bank Application/src/main/java/bankapplication/Bank.java deleted file mode 100644 index 67865d4..0000000 --- a/5Bank Application/src/main/java/bankapplication/Bank.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * - */ -package bankapplication; - -/** - * @author trainee - * - */ -class Bank { - static String name = "-------Indian Bank------"; - - public void bankName() { - - LOGGER.info(name); - - } - -} diff --git a/5Bank Application/src/main/java/bankapplication/Customer.java b/5Bank Application/src/main/java/bankapplication/Customer.java deleted file mode 100644 index d94ca7d..0000000 --- a/5Bank Application/src/main/java/bankapplication/Customer.java +++ /dev/null @@ -1,110 +0,0 @@ -/** - * - */ -package bankapplication; - -/** - * @author trainee Desc: class Customer has all required fields like firstname - * ,lastname etc. this class is sending all field values to the Account - * class - */ - -class Customer { - - private String fname = null; - private String lname = null; - private String address = null; - private long number; - private String email; - - /** - * @param fname - * @param lname - * @param address - * @param number - * @param email - */ - public Customer(String fname, String lname, String address, long number, String email) { - this.fname = fname; - this.lname = lname; - this.address = address; - this.number = number; - this.email = email; - } - - /** - * @return the fname - */ - public String getFname() { - return fname; - } - - /** - * @param fname - * the fname to set - */ - public void setFname(String fname) { - this.fname = fname; - } - - /** - * @return the lname - */ - public String getLname() { - return lname; - } - - /** - * @param lname - * the lname to set - */ - public void setLname(String lname) { - this.lname = lname; - } - - /** - * @return the address - */ - public String getAddress() { - return address; - } - - /** - * @param address - * the address to set - */ - public void setAddress(String address) { - this.address = address; - } - - /** - * @return the number - */ - public long getNumber() { - return number; - } - - /** - * @param number - * the number to set - */ - public void setNumber(long number) { - this.number = number; - } - - /** - * @return the email - */ - public String getEmail() { - return email; - } - - /** - * @param email - * the email to set - */ - public void setEmail(String email) { - this.email = email; - } - -} diff --git a/5Bank Application/src/main/java/bankapplication/currentAccount.java b/5Bank Application/src/main/java/bankapplication/currentAccount.java deleted file mode 100644 index 0c7b8a3..0000000 --- a/5Bank Application/src/main/java/bankapplication/currentAccount.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * - */ -package bankapplication; - -/** - * @author ram dafale This class create a current account and perform basic - * deposit and witrdraw operations. - */ -class currentAccount extends Account { - Customer customer; - double interestRate = 0.08; - - public currentAccount(double balance, Customer customer) { - super(balance, customer); - this.customer = customer; - // TODO Auto-generated constructor stub - } - - /** - * @param amount - */ - public double Deposit(int amount) { - return balance = balance + amount; - } - - /** - * @param amount - */ - public void Withdraw(int amount) { - - if (amount < 0) { - - } - balance = balance - amount; - - } - - public void addInterest() { - - balance = interestRate * balance + balance; - LOGGER.info("Salary After adding interest rate is :" + balance); - - } - -} diff --git a/5Bank Application/src/main/java/bankapplication/savingAccount.java b/5Bank Application/src/main/java/bankapplication/savingAccount.java deleted file mode 100644 index 76a7717..0000000 --- a/5Bank Application/src/main/java/bankapplication/savingAccount.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * - */ -package bankapplication; - -/** - * @author trainee - * @class Account -> this class is abstract class which is then inherited by SavingAccount and currentAccount - * - */ - -abstract class Account { -final private Customer customer; -static int id = 0; -protected double balance = 0; // because this field is associated with Saving and FlexibleSaving -public final int accountNumber; - - /** - * @param balance - */ - public Account(final double balance, final Customer customer) { - // super(fname, lname, address, number, email); - this.balance = balance; - // this.accountNumber = account; - accountNumber = ++id; - this.customer=customer; - } - - /** - * @return the balance - */ - public double getBalance() { - return balance; - } - - /** - * @param balance - * the balance to set - */ - public void setBalance(final double balance) { - this.balance = balance; - } - - /** - * @return the accountNumber - */ - public int getAccountNumber() { - return accountNumber; - } - - - - @Override - public String toString() { - return "Account [balance=" + balance + ", accountNumber=" + accountNumber + "]"; - } - -} diff --git a/5Bank Application/src/main/java/bankapplication/statement.java b/5Bank Application/src/main/java/bankapplication/statement.java deleted file mode 100644 index 817af25..0000000 --- a/5Bank Application/src/main/java/bankapplication/statement.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Program Name: Test cases for abnk application using JUNIT - * @author Ram Dafale - * DateOF Completion : 4/42/2018 - */ - - - -package BankApplicationWIthMaven.BankApplicationAI; - - - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import bankapplication.Customer; - - - - -/* - * class Name: BankAppJunit - * Description : this class contains various test cases for bank application - * 1. Null values are not allowed in Name - * 2. Null values are not allowed in lASTnaME - * 3. Null values are not allowed in MOBILE NUMBER - * 4. checking if deposit method running or not - * 5. checking if withdraw method running or not - * 6. checking if addInterest method running or not - */ -public class BankAppJunit { - - - //Creating a customer class object - Customer cust = new Customer("ram", "dafale", "wardha", 97546545, "ramdafale@gmail.com"); - - - // 1. Null values are not allowed in Name - @Test - public void checknullInFirstName() - { - String str= null; - assertNotEquals("null not allowed ",str,cust.getFname()); - } - - - - @Test - public void checknullInLastName() - { - String str1= null; - assertNotEquals("null not allowed ",str1,cust.getLname()); - } - - - @Test - public void checknullInMobile() - { - String str2= null; - assertNotEquals("null not allowed ",str2,cust.getNumber()); - } - - - @Test - public void testWithdraw(){ - double balance =2000; - int amount = 1000; - assertTrue( (balance = balance - amount) == 1000); - } - - - - - @Test - public void testDeposit(){ - double balance = 0; - int amount = 1000; - - } - - - - @Test - public void addInterest() { - int balance=100; - double interestRate=0.087; - - assertFalse( ( balance = (int) (interestRate * balance + balance)) == 1000); ; - - } - - - - - -} - - - - - - - - - - diff --git a/5Bank Application/src/test/java/BankApplicationWIthMaven/BankApplicationAI/BankAppJunit.java b/5Bank Application/src/test/java/BankApplicationWIthMaven/BankApplicationAI/BankAppJunit.java deleted file mode 100644 index 5f52fab..0000000 --- a/5Bank Application/src/test/java/BankApplicationWIthMaven/BankApplicationAI/BankAppJunit.java +++ /dev/null @@ -1,14 +0,0 @@ -/** - * - */ -package BankApplicationWIthMaven.BankApplicationAI; - -import junit.framework.TestCase; - -/** - * @author trainee - * - */ -public class BankAppJunit extends TestCase { - -} diff --git a/5Bank Application/src/test/java/bank/bank11/AppTest.java b/5Bank Application/src/test/java/bank/bank11/AppTest.java deleted file mode 100644 index bae21cb..0000000 --- a/5Bank Application/src/test/java/bank/bank11/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package bank.bank11; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -} diff --git a/5Bank Application/target/classes/META-INF/MANIFEST.MF b/5Bank Application/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index c8c47a7..0000000 --- a/5Bank Application/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: Ram -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/5Bank Application/target/classes/META-INF/maven/bank/bank11/pom.properties b/5Bank Application/target/classes/META-INF/maven/bank/bank11/pom.properties deleted file mode 100644 index a713885..0000000 --- a/5Bank Application/target/classes/META-INF/maven/bank/bank11/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Sun Apr 22 12:23:40 IST 2018 -version=0.0.1-SNAPSHOT -groupId=bank -m2e.projectName=bank11 -m2e.projectLocation=C\:\\Users\\Ram\\Documents\\workspace-sts-3.9.4.RELEASE\\bank11 -artifactId=bank11 diff --git a/5Bank Application/target/classes/META-INF/maven/bank/bank11/pom.xml b/5Bank Application/target/classes/META-INF/maven/bank/bank11/pom.xml deleted file mode 100644 index 0e78f6b..0000000 --- a/5Bank Application/target/classes/META-INF/maven/bank/bank11/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - 4.0.0 - - bank - bank11 - 0.0.1-SNAPSHOT - jar - - bank11 - http://maven.apache.org - - - UTF-8 - - - - - junit - junit - 3.8.1 - test - - - diff --git a/5Bank Application/target/classes/bank/bank11/Account.class b/5Bank Application/target/classes/bank/bank11/Account.class deleted file mode 100644 index ffc86068a37d02b5963d30fd01a1a03bfecdadac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 zcmaJ<+fEZv6kUgw=}-p>9$d_Fhl zIOVz@L=YC}-n5_DxsvT~A+PrlEu_O>F+AMZl zdW!;`b`$!3eXA(z&1t9P`Cc$95K3oO1;PvEb+-fLwGe?R5G#1T+f0987fZy67s`%Z zTD7a5^mWjf)-c2A#p5+)R-*`Ez(OxNCBaDx9f(S6*un{z(i*kU4udL!CtgjU{{WJn z3Y&{=xWW8xThz_QqP3P#IK3!)>1LWP+U=LgoQWBfSAweNZwU0IGll&LH=|P#qy+{K zhv(~FY2B@w$O`mm+{8mY-kB&;7?;gWPM7O#j4_3U12ETatL`f5e=!cqH>@EF^J(170cDtB!lmlTW~$ zt5hcCe8LHCEyQ;m=AWzMY07uQ8*;ts=5l!(JS}uGzl&ayxBRt-z9II7MjLu~8Y)~v zTtz^y7k#>&{;a{NK$0 diff --git a/5Bank Application/target/classes/bank/bank11/App.class b/5Bank Application/target/classes/bank/bank11/App.class deleted file mode 100644 index 3bb79740eb87222e3fde2b5c2b8a182aec934338..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1274 zcmZuxT~iWK7=Dg`yU>=3h#!5?H;6)5IVF;UWNK&@hT}M09AU$)WtUkNo&G?#{e%8P zUcgLFP1nve)l611{egZ()4K~51~+@odB4u{Jm-D);MbdX0Ak1q=wj&E;@Y#Q^@+uz z$#PkMlcBfOm?9rT_q3uZ=4}Q?FqC6(&gli&0|(p^TkV{moJy9sqA~b`o0+G4heuVe6{A_xP_$w^lyjpG{Q|rM zuEqPjV#*~6J`4~ry=pQHG?EoPx=NWQ<;%Pj7cj^$*pg_MO;r`OAR8iv89eKMCb&u@Re*uxz=+b;aB+7<`v}+$d5@_jhPp z23MYBB|-h20g%#3!yxzO5r2~m4TUGGSB<d9b~J$W73dtL zmC@=NtwVfGn=TRpwi`IWG1^Ow09udJ$&C}}X(k^+w2M~u(7O-+hIgorkv*KQ;am-u zY6$Hkvf;hzo$y}wVbXiEj;Ty<;Vlx&V~%|!Hhh=~*OAPQIVRpCQA4`1>2v(7;ch46 zy}!nPP)BXRA25WE2;&p|r#@o_U$B5ftl=vj;~Nxwhk+k9oj?OJR&bx_geh(n4~S3< PDLh1$1YneB3GwJRa4<37 diff --git a/5Bank Application/target/classes/bank/bank11/Bank.class b/5Bank Application/target/classes/bank/bank11/Bank.class deleted file mode 100644 index 65ed060b5a48cf32fcb2110bc427a6c840eead46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 594 zcmZWl+fKqj5IswQUaW%P{fd_u^udNV6NrhL_=ISJ;eA^hT5JRY>ITf5^rF+)1w zzROUk|CX9@B!YI8L902Q2t<6&pp=hW)O-~_xEkgd)SE#`%IaX4H<3Y>Ay*fH+vxkY z8{Ko;OH@OLdo3Obc^`w>TB2z{LBT{G8tKN5q9=!#omvhdu?7vPV-@Qv)~0MU2ff(! zO>AJ3h79}UXnABsgw`GTh{=u1{i=a&?5fydC?-y)%O*g$qX-~W8c2A`mvFUYMKVfnglqr;{^fTymJEADRY{7Vi`9fI=3-X@eY2*@w4!Msp z$D$}%nUi-c&Qg?wVvZV6#1b{q)D!Xe=G*v?6f;4aea;M3bu6429lD7D-jG9PH zyzmG3qm1vIvjwwk6EAkooHKJ~pLyr}{`2z}fEu>*m{2G+{ph17rdIQIF9yS2H|Xb) zRhT*RKlxtAkJ{d0^DHIZ{?f)!nKn?YYe z?K2#7{jkHs7hx0*>k19$W|jXr*}s`oJyFQ+_F6#^8O+$QF{_YqswV{~%-hJp5^upq z-gtLxOd4;=Mgc{M-nB6WOJTYZM!|t5KlYm)-EQyH@0|GkQ1wFd7KVXN`k!P?_P}o5xqo#C#fLiB*WLyH`ph_$6%A;zd z(JX#WjOI-$h>P|3a-Fl6>054vFD?o4mLTuOfXHhRkd0JDmXnIKQb9J;75V4Un>W%S QNOuf~JXQhO(ye=c0VDs&I{*Lx diff --git a/5Bank Application/target/classes/bank/bank11/savingAccount.class b/5Bank Application/target/classes/bank/bank11/savingAccount.class deleted file mode 100644 index 50acdd7cf2c69647ff4f99bf1f26fee903038801..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1373 zcmaJ=-BS`#6#rc$cf}1A6C*9xz61)9z7w;Q&9aD08X6xL*ugE>WtLr?{(}C5-g@o1 zQk-nErkQ%^k7_!1Srn7$fy+Jjp7Z-Sd+zT)yL$jqSQX%7h!j=hRgy2MRI;IN=tgCs zR5BgI7T{+X?!5Lc7{rp(u+5rgF@&?785!?9&Coli8@fHua4M>F&xsWn{28;X1<-?j z2?E4EFdUa~4805kS>4cbPOYd}&(&g8V+duSjZ?i9Wgo>JL1g&^u>#MCNr>YT_fW5EMwwxp+#N~w zc+OxGHRQol|(U|h#oDW+!U?~xI**L#h`?1T$oVjo~s6RRnZ%D>Pa+K5OIqk zCIi2LN91m@J5MuZQrEZ`yaq1#wXc;vRLqS;FZ<%`HN^iy%(v3Ts(=OjFBXJz>* zS<0J^RnnGpKE>ify*|y`2$>quLvNAMk4BzWKkexm(Ar1QD#d>Km*P{29R%WuZAc#| z_8~}X(5?MMbzA6169aT6yJr#xF+>qn@~L+5-A6^Y~Jf$1N$T*ghVfVAJOp;Q*jrt5`6m(LmqmC(BC8S5o2F4xfVLNg9~F# zM4PzW#LNM0m>__!Bz+H~_(tI0F@ql+5>opTQfN!KjvJmS%WWc{w25vK5y`ntT%oxp t=DD;c7D7sEFEz15yU^qP@CohyRn=<7Ph{}RRU#1^ad=7?Rw(k}*quhBf6++;qA3U=E_d@g6$O5rfq8?`#!W6g1=@GZZbyv-|OU zYzIR=cF9Ax{0VnQJa9yw9!k-p6Oyg92CBo5j|ibpJfi*IV1`^6I}sIYM$=kH-%(Iv zsIMyxM5hWJ6+v8ODF0rq=khR2Hd6!wT@yprXpU4c>}l9XgFz*U9Yn(*CIZR075AVH z{5Y7{*N)g&OKp8|BG+} R38zV$wi2ZX3 - - - - - - diff --git a/6SpringBank/.eclipse-pmd b/6SpringBank/.eclipse-pmd deleted file mode 100644 index 917288e..0000000 --- a/6SpringBank/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/6SpringBank/.settings/org.eclipse.core.resources.prefs b/6SpringBank/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/6SpringBank/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/6SpringBank/.settings/org.eclipse.jdt.core.prefs b/6SpringBank/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 5df8182..0000000 --- a/6SpringBank/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,421 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.doc.comment.support=enabled -org.eclipse.jdt.core.compiler.problem.APILeak=warning -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore -org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled -org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public -org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public -org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag -org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled -org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled -org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.5 -org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=false -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_module_statements=16 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0 -org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=true -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=100 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=false -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false -org.eclipse.jdt.core.formatter.indentation.size=2 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=100 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines -org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=2 -org.eclipse.jdt.core.formatter.use_on_off_tags=false -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/6SpringBank/.settings/org.eclipse.jdt.ui.prefs b/6SpringBank/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 1deb939..0000000 --- a/6SpringBank/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,61 +0,0 @@ -cleanup.add_default_serial_version_id=true -cleanup.add_generated_serial_version_id=false -cleanup.add_missing_annotations=true -cleanup.add_missing_deprecated_annotations=true -cleanup.add_missing_methods=false -cleanup.add_missing_nls_tags=false -cleanup.add_missing_override_annotations=true -cleanup.add_missing_override_annotations_interface_methods=true -cleanup.add_serial_version_id=false -cleanup.always_use_blocks=true -cleanup.always_use_parentheses_in_expressions=false -cleanup.always_use_this_for_non_static_field_access=false -cleanup.always_use_this_for_non_static_method_access=false -cleanup.convert_functional_interfaces=false -cleanup.convert_to_enhanced_for_loop=false -cleanup.correct_indentation=false -cleanup.format_source_code=false -cleanup.format_source_code_changes_only=false -cleanup.insert_inferred_type_arguments=false -cleanup.make_local_variable_final=true -cleanup.make_parameters_final=false -cleanup.make_private_fields_final=true -cleanup.make_type_abstract_if_missing_method=false -cleanup.make_variable_declarations_final=false -cleanup.never_use_blocks=false -cleanup.never_use_parentheses_in_expressions=true -cleanup.organize_imports=true -cleanup.qualify_static_field_accesses_with_declaring_class=false -cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true -cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true -cleanup.qualify_static_member_accesses_with_declaring_class=true -cleanup.qualify_static_method_accesses_with_declaring_class=false -cleanup.remove_private_constructors=true -cleanup.remove_redundant_type_arguments=false -cleanup.remove_trailing_whitespaces=false -cleanup.remove_trailing_whitespaces_all=true -cleanup.remove_trailing_whitespaces_ignore_empty=false -cleanup.remove_unnecessary_casts=true -cleanup.remove_unnecessary_nls_tags=true -cleanup.remove_unused_imports=true -cleanup.remove_unused_local_variables=false -cleanup.remove_unused_private_fields=true -cleanup.remove_unused_private_members=false -cleanup.remove_unused_private_methods=true -cleanup.remove_unused_private_types=true -cleanup.sort_members=false -cleanup.sort_members_all=false -cleanup.use_anonymous_class_creation=false -cleanup.use_blocks=true -cleanup.use_blocks_only_for_return_and_throw=false -cleanup.use_lambda=true -cleanup.use_parentheses_in_expressions=false -cleanup.use_this_for_non_static_field_access=false -cleanup.use_this_for_non_static_field_access_only_if_necessary=true -cleanup.use_this_for_non_static_method_access=false -cleanup.use_this_for_non_static_method_access_only_if_necessary=true -cleanup_profile=_eclipse-cs HelloSpring2 -cleanup_settings_version=2 -eclipse.preferences.version=1 -formatter_profile=_eclipse-cs HelloSpring2 -formatter_settings_version=13 diff --git a/6SpringBank/.settings/org.eclipse.m2e.core.prefs b/6SpringBank/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/6SpringBank/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/6SpringBank/log4j.properties b/6SpringBank/log4j.properties deleted file mode 100644 index 8ce52e6..0000000 --- a/6SpringBank/log4j.properties +++ /dev/null @@ -1,8 +0,0 @@ -log4j.rootLogger=ERROR,stdout -log4j.logger.com.endeca=INFO -# Logger for crawl metrics -log4j.logger.com.endeca.itl.web.metrics=INFO - -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n \ No newline at end of file diff --git a/6SpringBank/pom.xml b/6SpringBank/pom.xml deleted file mode 100644 index 4b81537..0000000 --- a/6SpringBank/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - 4.0.0 - - HelloSpring - HelloSpring1 - 0.0.1-SNAPSHOT - jar - - HelloSpring1 - http://maven.apache.org - - - UTF-8 - - - - - - - junit - junit - 4.12 - test - - - - - log4j - log4j - 1.2.17 - - - - org.springframework - spring-core - 4.3.5.RELEASE - - - - org.springframework - spring-beans - 4.3.5.RELEASE - - - org.springframework - spring-context - 4.3.5.RELEASE - - - - - - diff --git a/6SpringBank/src/main/java/controller/App.java b/6SpringBank/src/main/java/controller/App.java deleted file mode 100644 index ca2af5c..0000000 --- a/6SpringBank/src/main/java/controller/App.java +++ /dev/null @@ -1,100 +0,0 @@ -package controller; - -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -import model.Bank; -import model.Customer; -import model.SavingAccountM; -import repository.SavingAccountImpl; - -public class App extends Bank { - - /* - * Returns nothing - */ - public static void main(final String[] args) { - - final Logger logMe = Logger.getLogger(App.class.getName()); - - final ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); - - Bank bank = ctx.getBean("bank", Bank.class); - - List banklist = new ArrayList(); - System.out.println(); - service.IBankService bankService = ctx.getBean("bankService", service.BankServiceImpl.class); - banklist = bankService.addBank(bank); - - - - final Customer customer1 = ctx.getBean(Customer.class); - - final SavingAccountM mySaving = (SavingAccountM) ctx.getBean("savingAccount1"); - - - SavingAccountImpl savingImpl = new SavingAccountImpl(); - - System.out.println(savingImpl.Deposit(36)); - - System.out.println(savingImpl.Withdraw(99)); - - - - final List listSavingAccount = new ArrayList(); - - listSavingAccount.add(mySaving); - - for (final SavingAccountM item : listSavingAccount) { - logMe.info("retrieved element: " + item); - } - - - - - - mySaving.getAccountNumber(); - mySaving.getBalance(); - mySaving.getCustomer(); - mySaving.getInterestRate(); - - logMe.info("Welcome To Bank : " + customer1.getFname()); - logMe.info("Your balance is: " + mySaving.getBalance()); - - - - - - logMe.info("Update my Account"); - - customer1.setEmail("newEmailID@example.com"); - - logMe.info("After Update "); - System.out.println(customer1.getEmail()); - - - - if (listSavingAccount.contains(mySaving)) { - logMe.info("Account found"); - } else { - logMe.info("Account not found"); - } - - - - //Remove my account - listSavingAccount.remove(mySaving); - - if (listSavingAccount.contains(mySaving)) { - logMe.info("Account found"); - } else { - logMe.info("Account not found"); - } - - } - -} diff --git a/6SpringBank/src/main/java/controller/BankController.java b/6SpringBank/src/main/java/controller/BankController.java deleted file mode 100644 index 502f11c..0000000 --- a/6SpringBank/src/main/java/controller/BankController.java +++ /dev/null @@ -1,89 +0,0 @@ -package controller; - -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Logger; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -import model.Bank; -import model.Customer; -import model.SavingAccountCollection; -import model.SavingAccountM; - -public class BankController { - - /* - * Returns nothing - */ - public static void main(final String[] args) { - - final Logger logMe = Logger.getLogger(BankController.class.getName()); - - final ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); - - Bank bank = ctx.getBean("bank", Bank.class); - - List banklist = new ArrayList(); - System.out.println(); - service.IBankService bankService = ctx.getBean("bankService", service.BankServiceImpl.class); - banklist = bankService.addBank(bank); - - final Customer customer1 = ctx.getBean("customer1", Customer.class); - - final SavingAccountM mySaving = (SavingAccountM) ctx.getBean("savingAccount1"); - - SavingAccountCollection jc=(SavingAccountCollection)ctx.getBean("savingsaccountcollection",SavingAccountCollection.class); - - System.out.println(jc.getAddressList()); - - service.SavingAccountImpl savingImpl = new service.SavingAccountImpl(); - - System.out.println(savingImpl.Deposit(36)); - - System.out.println(savingImpl.Withdraw(99)); - - // System.out.println(savingImpl.()); - - final List listSavingAccount = new ArrayList(); - - listSavingAccount.add(mySaving); - - for (final SavingAccountM item : listSavingAccount) { - logMe.info("retrieved element: " + item); - } - - mySaving.getAccountNumber(); - mySaving.getBalance(); - mySaving.getCustomer(); - mySaving.getInterestRate(); - - logMe.info("Welcome To Bank : " + customer1.getFname()); - logMe.info("Your balance is: " + mySaving.getBalance()); - - logMe.info("Update my Account"); - - customer1.setEmail("newEmailID@example.com"); - - logMe.info("After Update "); - System.out.println(customer1.getEmail()); - - if (listSavingAccount.contains(mySaving)) { - logMe.info("Account found"); - } else { - logMe.info("Account not found"); - } - - // Remove my account - listSavingAccount.remove(mySaving); - - if (listSavingAccount.contains(mySaving)) { - logMe.info("Account found"); - } else { - logMe.info("Account not found"); - } - - } - -} diff --git a/6SpringBank/src/main/java/model/Bank.java b/6SpringBank/src/main/java/model/Bank.java deleted file mode 100644 index 167334f..0000000 --- a/6SpringBank/src/main/java/model/Bank.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * - */ -package model; - -import java.util.logging.Logger; - - - -/** - * @author trainee - * - */ - -public class Bank { - - private String name; - - public Bank() { - // TODO Auto-generated constructor stub - } - - public Bank(String name) { - super(); - this.name = name; - } - - public String getName() { - return name; - } - -} - -/* - * public class Bank { static String name = "-------Indian Bank------"; - * - * public void bankName() { - * - * final Logger LOGGER = Logger.getLogger(Apps.class.getName()); LOGGER.info(name); - * - * } - * - * } - */ \ No newline at end of file diff --git a/6SpringBank/src/main/java/model/CurrentAccountM.java b/6SpringBank/src/main/java/model/CurrentAccountM.java deleted file mode 100644 index c802989..0000000 --- a/6SpringBank/src/main/java/model/CurrentAccountM.java +++ /dev/null @@ -1,109 +0,0 @@ -/** - * - */ -package model; - -/** - * @author trainee - * - */ -public class CurrentAccountM { - Customer customer; - double interestRate = 0.08; - double balance; - - static int id = 100; - - int accountNumber; - - /** - * @param customer - * @param interestRate - * @param balance - * @param accountNumber - */ - public CurrentAccountM(final Customer customer, final double interestRate, final double balance, - final int accountNumber) { - super(); - this.customer = customer; - this.interestRate = interestRate; - this.balance = balance; - this.accountNumber = accountNumber; - } - - public CurrentAccountM() { - - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @return the interestRate - */ - public double getInterestRate() { - return interestRate; - } - - /** - * @param interestRate - * the interestRate to set - */ - public void setInterestRate(final double interestRate) { - this.interestRate = interestRate; - } - - /** - * @return the balance - */ - public double getBalance() { - return balance; - } - - /** - * @param balance - * the balance to set - */ - public void setBalance(final double balance) { - this.balance = balance; - } - - /** - * @return the accountNumber - */ - public int getAccountNumber() { - return accountNumber; - } - - /** - * @param accountNumber - * the accountNumber to set - */ - public void setAccountNumber(final int accountNumber) { - this.accountNumber = accountNumber; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "CurrentAccountM customer=" + customer + ", interestRate=" + interestRate + ", balance=" - + balance + ", accountNumber=" + accountNumber + ""; - } - -} diff --git a/6SpringBank/src/main/java/model/Customer.java b/6SpringBank/src/main/java/model/Customer.java deleted file mode 100644 index 1df9e98..0000000 --- a/6SpringBank/src/main/java/model/Customer.java +++ /dev/null @@ -1,120 +0,0 @@ -package model; - -/** - * @author trainee Desc: class Customer has all required fields like firstname - * ,lastname etc. this class is sending all field values to the Account - * class - */ - -public class Customer { - - private String fname = null; - private String lname = null; - private String address = null; - private long number; - private String email; - - /** - * @param fname - * @param lname - * @param address - * @param number - * @param email - */ - public Customer() { - - } - - public Customer(String fname, String lname, String address, long number, String email) { - this.fname = fname; - this.lname = lname; - this.address = address; - this.number = number; - this.email = email; - } - - /** - * @return the fname - */ - public String getFname() { - return fname; - } - - /** - * @param fname - * the fname to set - */ - public void setFname(String fname) { - this.fname = fname; - } - - /** - * @return the lname - */ - public String getLname() { - return lname; - } - - /** - * @param lname - * the lname to set - */ - public void setLname(String lname) { - this.lname = lname; - } - - /** - * @return the address - */ - public String getAddress() { - return address; - } - - /** - * @param address - * the address to set - */ - public void setAddress(String address) { - this.address = address; - } - - /** - * @return the number - */ - public long getNumber() { - return number; - } - - /** - * @param number - * the number to set - */ - public void setNumber(long number) { - this.number = number; - } - - /** - * @return the email - */ - public String getEmail() { - return email; - } - - /** - * @param email - * the email to set - */ - public void setEmail(String email) { - this.email = email; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Customer fname=" + fname + ", lname=" + lname + ", address=" + address + ", number=" + number - + ", email=" + email + ""; - } - -} diff --git a/6SpringBank/src/main/java/model/SavingAccountCollection.java b/6SpringBank/src/main/java/model/SavingAccountCollection.java deleted file mode 100644 index b74f5aa..0000000 --- a/6SpringBank/src/main/java/model/SavingAccountCollection.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * - */ -package model; - -/** - * @author trainee - * - */ -import java.util.*; -public class SavingAccountCollection { - - - List addressList; - - - // a setter method to set List - public void setAddressList(List addressList) { - this.addressList = addressList; - } - - // prints and returns all the elements of the list. - public List getAddressList() { - System.out.println("List Elements :" + addressList); - return addressList; - } - - -} - - - - - diff --git a/6SpringBank/src/main/java/model/SavingAccountM.java b/6SpringBank/src/main/java/model/SavingAccountM.java deleted file mode 100644 index 8098372..0000000 --- a/6SpringBank/src/main/java/model/SavingAccountM.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * - */ -package model; - -/** - * @author trainee - * - */ -public class SavingAccountM { - - double balance=5000; - int accountNumber; - - final double interestRate = 0.07; - - static int id = 0; - Customer customer; - Statements statement; - /* - * @param balance - * @param accountNumber - * @param customer - */ - public SavingAccountM(double balance, Customer customer,Statements statement) { - super(); - this.balance = balance; -// this.accountNumber = ++id; - this.customer = customer; - this.statement=statement; - } - - - /** - * @return the statement - */ - public Statements getStatement() { - return statement; - } - - - /** - * @param statement the statement to set - */ - public void setStatement(Statements statement) { - this.statement = statement; - } - - - public SavingAccountM(double balance, Customer customer) { - super(); - this.balance = balance; - this.accountNumber = ++id; - this.customer = customer; - } - - - public SavingAccountM(double balance, int accountNumber) { - - this.balance = balance; - this.accountNumber = accountNumber; - - } - - public SavingAccountM() { - - } - - /** - * @return the balance - */ - public double getBalance() { - return balance; - } - - /** - * @param balance - * the balance to set - */ - public void setBalance(double balance) { - this.balance = balance; - } - - /** - * @return the accountNumber - */ - public int getAccountNumber() { - return accountNumber; - } - - /** - * @param accountNumber - * the accountNumber to set - */ - public void setAccountNumber(int accountNumber) { - this.accountNumber = accountNumber; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @return the interestRate - */ - public double getInterestRate() { - return interestRate; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "SavingAccountM balance=" + balance + ", accountNumber=" + accountNumber - + ", interestRate=" + interestRate + ", customer=" + customer + ""; - } - -} diff --git a/6SpringBank/src/main/java/model/Statements.java b/6SpringBank/src/main/java/model/Statements.java deleted file mode 100644 index 34b3c28..0000000 --- a/6SpringBank/src/main/java/model/Statements.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * - */ -package model; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; - -/** - * @author trainee - * - */ -public class Statements { - - - final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); - final LocalDateTime now = LocalDateTime.now(); - - SavingAccountM listSaving = new SavingAccountM(); - - public void statement() - { - System.out.println("Balance in account number " + listSaving.getAccountNumber() + " is "+listSaving.balance +"" + dtf.format(now) ); - } - - -} - \ No newline at end of file diff --git a/6SpringBank/src/main/java/repository/AccountDaoCurrrent.java b/6SpringBank/src/main/java/repository/AccountDaoCurrrent.java deleted file mode 100644 index f486067..0000000 --- a/6SpringBank/src/main/java/repository/AccountDaoCurrrent.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package repository; - -import model.CurrentAccountM; - -/** - * @author trainee - * - */ -public interface AccountDaoCurrrent { - - - - public CurrentAccountM Deposit1(double amount); - public CurrentAccountM Withdraw1(double amount); - - -} diff --git a/6SpringBank/src/main/java/repository/BankDaoImpl.java b/6SpringBank/src/main/java/repository/BankDaoImpl.java deleted file mode 100644 index b6a1b1e..0000000 --- a/6SpringBank/src/main/java/repository/BankDaoImpl.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * - */ -package repository; - -import java.util.ArrayList; -import java.util.List; - -import model.Bank; - - - -/** - * @author trainee - * - */ -public class BankDaoImpl implements IBankDao { - - - public List addBank(Bank bank) { - final List list=new ArrayList(); - - list.add(bank); - // TODO Auto-generated method stub - return list; - - } - - - -} diff --git a/6SpringBank/src/main/java/repository/CurrentAccountImpl.java b/6SpringBank/src/main/java/repository/CurrentAccountImpl.java deleted file mode 100644 index cd80e5d..0000000 --- a/6SpringBank/src/main/java/repository/CurrentAccountImpl.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * - */ -package repository; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - - -import model.CurrentAccountM; -import model.Customer; -import model.SavingAccountM; - -/** - * @author ram dafale This class create a current account and perform basic - * deposit and witrdraw operations. - */ - class CurrentAccountImpl implements AccountDaoCurrrent { - - - - - - public CurrentAccountM Withdraw1(double amount) { - - CurrentAccountM currAccount = new CurrentAccountM(); - - double balance = currAccount.getBalance(); - - balance = balance - amount; - Date date = new Date(); - List list = new ArrayList(); - // list.add(date); - list.add("Amount withdraw from current account is" + amount); - return currAccount; - } - - public CurrentAccountM Deposit1(double amount) { - - CurrentAccountM currAccount = new CurrentAccountM(); - double balance = currAccount.getBalance(); - - balance = balance + amount; - Date date = new Date(); - List list = new ArrayList(); - list.add(date); - list.add("Amount Deposit from current account is" + amount); - return currAccount; - } - - - -} \ No newline at end of file diff --git a/6SpringBank/src/main/java/repository/CustomerDAOImpl.java b/6SpringBank/src/main/java/repository/CustomerDAOImpl.java deleted file mode 100644 index d5fef6d..0000000 --- a/6SpringBank/src/main/java/repository/CustomerDAOImpl.java +++ /dev/null @@ -1,26 +0,0 @@ -/** - * - */ -package repository; - -import java.util.ArrayList; -import java.util.List; - -import model.Customer; - -/** - * @author trainee - * - */ -public class CustomerDAOImpl implements ICustomerDao -{ - - public List addCustomer(Customer customer) { - // TODO Auto-generated method stub - List list = new ArrayList(); - list.add(customer); - return list; - - } -} - diff --git a/6SpringBank/src/main/java/repository/IAccountDAO.java b/6SpringBank/src/main/java/repository/IAccountDAO.java deleted file mode 100644 index fa7cfa9..0000000 --- a/6SpringBank/src/main/java/repository/IAccountDAO.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * - */ -package repository; - -import java.util.List; - -import model.SavingAccountM; - -/** - * @author trainee - * - */ -public interface IAccountDAO { - - public SavingAccountM Deposit(double amount); - - public SavingAccountM Withdraw(double amount); - - // public List getStatment(List list); - -} diff --git a/6SpringBank/src/main/java/repository/IBankDao.java b/6SpringBank/src/main/java/repository/IBankDao.java deleted file mode 100644 index 0882836..0000000 --- a/6SpringBank/src/main/java/repository/IBankDao.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package repository; - -import java.util.List; - -import model.Bank; - - - -/** - * @author trainee - * - */ -public interface IBankDao { - - public List addBank(Bank bank); - - -} diff --git a/6SpringBank/src/main/java/repository/ICustomerDao.java b/6SpringBank/src/main/java/repository/ICustomerDao.java deleted file mode 100644 index 2ff2963..0000000 --- a/6SpringBank/src/main/java/repository/ICustomerDao.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * - */ -package repository; - -import java.util.List; - -import model.Customer; - - - - -/** - * @author trainee - * - */ -public interface ICustomerDao { - public List addCustomer(Customer customer); -} - - - diff --git a/6SpringBank/src/main/java/repository/SavingAccountImpl.java b/6SpringBank/src/main/java/repository/SavingAccountImpl.java deleted file mode 100644 index e4199e9..0000000 --- a/6SpringBank/src/main/java/repository/SavingAccountImpl.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * - */ -package repository; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; - -import model.SavingAccountM; - -/** - * @author trainee This class create a saving account and perform basic deposit and witrdraw - * operations. - */ -public class SavingAccountImpl implements IAccountDAO { - - public SavingAccountM Deposit(double amount) { - - SavingAccountM savingAccount = new SavingAccountM(); - - double balance = savingAccount.getBalance(); - System.out.println("Current Balance is :" + savingAccount.getBalance()); - balance = balance + amount; - // Date date = new Date(); - List list = new ArrayList(); - // list.add(date); - // list.add("Amount Deposit from saving account is" + amount); - System.out.println("Amount Deposit in saving account is" + amount); - System.out.println("Current Balance after deposit is : " + balance); - - - final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); - final LocalDateTime now = LocalDateTime.now(); - System.out.println("Deposit made at Time "+dtf.format(now)); - - //System.out.println("Deposit amde at Time : " date.format(now)); - - return savingAccount; - } - - public SavingAccountM Withdraw(double amount) { - - SavingAccountM savingAccount = new SavingAccountM(); - - double balance = savingAccount.getBalance(); - System.out.println("Current Balance" + savingAccount.getBalance()); - - balance = balance - amount; - - System.out.println("Amount withdraw from saving account is" + amount); - System.out.println("Current Balance after withdrawl is : " + balance); - final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); - final LocalDateTime now = LocalDateTime.now(); - System.out.println("Withdraw is made at Time "+dtf.format(now)); - return savingAccount; - } - -} diff --git a/6SpringBank/src/main/java/service/Account.java b/6SpringBank/src/main/java/service/Account.java deleted file mode 100644 index d8ebb80..0000000 --- a/6SpringBank/src/main/java/service/Account.java +++ /dev/null @@ -1,18 +0,0 @@ -/** - * - */ -package service; - -/** - * @author trainee - * - */ -public interface Account { - - - public double Deposit(int amount); - public double Withdraw(int amount); - public void addInterest(); - - -} diff --git a/6SpringBank/src/main/java/service/AccountServiceImpl.java b/6SpringBank/src/main/java/service/AccountServiceImpl.java deleted file mode 100644 index 5924b0f..0000000 --- a/6SpringBank/src/main/java/service/AccountServiceImpl.java +++ /dev/null @@ -1,55 +0,0 @@ - -package service; - - -import java.util.logging.Logger; - -import model.Customer; -import model.SavingAccountM; - - -/** - * @author trainee - * - */ -public class AccountServiceImpl implements IAccountService { - - final Logger logMe = Logger.getLogger(AccountServiceImpl.class.getName()); - - public IAccountDAO accountDao = new SavingAccountImpl(); - SavingAccountM aAct = new SavingAccountM(); - // Map list = new HashMap(); - - public SavingAccountM Withdraw(double amtToWithdraw) throws WithdrawException { - - if (amtToWithdraw > aAct.getBalance() ) { - - throw new WithdrawException("Insufficient Balance in your Account : Do deposit first ", aAct.getAccountNumber(), - aAct.getBalance()); - - - } else { - - // list=accountDao.Withdraw(amtToWithdraw); - - } - return aAct; - - } - - - - - - public SavingAccountM Deposit(double amount) { - - return null; - } - - - public void UpdateDetails(Customer customer, String checkAccountNumber, int newChange) { - // TODO Auto-generated method stub - - } - -} diff --git a/6SpringBank/src/main/java/service/BankServiceImpl.java b/6SpringBank/src/main/java/service/BankServiceImpl.java deleted file mode 100644 index a97131d..0000000 --- a/6SpringBank/src/main/java/service/BankServiceImpl.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * - */ -package service; - -import java.util.List; - -import model.Bank; -import repository.IBankDao; - -/** - * @author trainee - * - */ -public class BankServiceImpl implements IBankService { - - public IBankDao bankDao; - - public BankServiceImpl() { - // TODO Auto-generated constructor stub - } - - /** - * @param bankDao - */ - public BankServiceImpl(IBankDao bankDao) { - super(); - this.bankDao = bankDao; - } - - public List addBank(Bank bank) { - // TODO Auto-generated method stub - return bankDao.addBank(bank); - } - -} diff --git a/6SpringBank/src/main/java/service/CustomerServiceImpl.java b/6SpringBank/src/main/java/service/CustomerServiceImpl.java deleted file mode 100644 index c334d45..0000000 --- a/6SpringBank/src/main/java/service/CustomerServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package service; - -import java.util.List; - -import model.Customer; -import repository.CustomerDAOImpl; -import repository.ICustomerDao; - - -public class CustomerServiceImpl implements ICustomerService { - - - public ICustomerDao customerDao=new CustomerDAOImpl(); - - public List addCustomer(Customer customer) { - - return customerDao.addCustomer(customer); - -} -} diff --git a/6SpringBank/src/main/java/service/IAccountDAO.java b/6SpringBank/src/main/java/service/IAccountDAO.java deleted file mode 100644 index 4792ce4..0000000 --- a/6SpringBank/src/main/java/service/IAccountDAO.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package service; - -import model.SavingAccountM; - -/** - * @author trainee - * - */ -public interface IAccountDAO { - - public SavingAccountM Deposit(double amount); - - public SavingAccountM Withdraw(double amount); - - // public List getStatment(List list); - -} diff --git a/6SpringBank/src/main/java/service/IAccountService.java b/6SpringBank/src/main/java/service/IAccountService.java deleted file mode 100644 index b5dc636..0000000 --- a/6SpringBank/src/main/java/service/IAccountService.java +++ /dev/null @@ -1,17 +0,0 @@ -/** - * - */ -package service; - -import model.Customer; -import model.SavingAccountM; - -/** - * @author trainee - * - */ -public interface IAccountService { - SavingAccountM Deposit(double amount); - SavingAccountM Withdraw(double amount) throws WithdrawException; - void UpdateDetails(Customer customer, String checkAccountNumber, int newChange) ; -} diff --git a/6SpringBank/src/main/java/service/IBankService.java b/6SpringBank/src/main/java/service/IBankService.java deleted file mode 100644 index d5f5953..0000000 --- a/6SpringBank/src/main/java/service/IBankService.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * - */ -package service; - -import java.util.List; - -import model.Bank; - - - -/** - * @author trainee - * - */ -public interface IBankService { - - public List addBank(Bank bank); - - -} diff --git a/6SpringBank/src/main/java/service/ICustomerService.java b/6SpringBank/src/main/java/service/ICustomerService.java deleted file mode 100644 index 595ce07..0000000 --- a/6SpringBank/src/main/java/service/ICustomerService.java +++ /dev/null @@ -1,19 +0,0 @@ -/** - * - */ -package service; - -import java.util.List; - -import model.Customer; - - - -/** - * @author trainee - * - */ -public interface ICustomerService { - public List addCustomer(Customer customer); - -} diff --git a/6SpringBank/src/main/java/service/SavingAccountImpl.java b/6SpringBank/src/main/java/service/SavingAccountImpl.java deleted file mode 100644 index 2a152d8..0000000 --- a/6SpringBank/src/main/java/service/SavingAccountImpl.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * - */ -package service; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; - -import model.SavingAccountM; - - -/** - * @author trainee This class create a saving account and perform basic deposit and withdraw - * operations. - */ -public class SavingAccountImpl implements IAccountDAO { - - public SavingAccountM Deposit(double amount) { - - SavingAccountM savingAccount = new SavingAccountM(); - - double balance = savingAccount.getBalance(); - System.out.println("Current Balance is :" + savingAccount.getBalance()); - balance = balance + amount; - // Date date = new Date(); - List list = new ArrayList(); - // list.add(date); - // list.add("Amount Deposit from saving account is" + amount); - System.out.println("Amount Deposit in saving account is" + amount); - System.out.println("Current Balance after deposit is : " + balance); - - - final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); - final LocalDateTime now = LocalDateTime.now(); - System.out.println("Deposit made at Time "+dtf.format(now)); - - //System.out.println("Deposit amde at Time : " date.format(now)); - - return savingAccount; - } - - public SavingAccountM Withdraw(double amount) { - - SavingAccountM savingAccount = new SavingAccountM(); - - double balance = savingAccount.getBalance(); - System.out.println("Current Balance" + savingAccount.getBalance()); - - balance = balance - amount; - - System.out.println("Amount withdraw from saving account is" + amount); - System.out.println("Current Balance after withdrawl is : " + balance); - final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); - final LocalDateTime now = LocalDateTime.now(); - System.out.println("Withdraw is made at Time "+dtf.format(now)); - return savingAccount; - } - -} diff --git a/6SpringBank/src/main/java/service/WithdrawException.java b/6SpringBank/src/main/java/service/WithdrawException.java deleted file mode 100644 index da1fc62..0000000 --- a/6SpringBank/src/main/java/service/WithdrawException.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * - */ -package service; - -/** - * @author trainee - * - */ -public class WithdrawException extends Exception { - - - - - public String message; - public String name; - public Double balance; - - - public WithdrawException(String message, int i, Double balance) - { - this.message = message; - // this.name = i; - this.balance = balance; - } - - - - - -} diff --git a/6SpringBank/src/main/resources/beans.xml b/6SpringBank/src/main/resources/beans.xml deleted file mode 100644 index 0edea51..0000000 --- a/6SpringBank/src/main/resources/beans.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - savingAccount1 - savingAccount2 - - - - - diff --git a/6SpringBank/src/test/java/junitpackage/BankAppJunit.java b/6SpringBank/src/test/java/junitpackage/BankAppJunit.java deleted file mode 100644 index 7508f55..0000000 --- a/6SpringBank/src/test/java/junitpackage/BankAppJunit.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Program Name: Test cases for abnk application using JUNIT - * @author Ram Dafale - * DateOF Completion : 4/42/2018 - */ -package junitpackage; - -import model.Customer; -import model.SavingAccountM; -import model.Statements; - - -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -/* - * class Name: BankAppJunit - * * Description : this class contains various test cases for bank application -* 1. Null values are not allowed in Name -* 2. Null values are not allowed in lASTnaME -* 3. Null values are not allowed in MOBILE NUMBER -* 4. checking if deposit method running or not -* 5. checking if withdraw method running or not -* 6. checking if addInterest method running or not -*/ -public class BankAppJunit { - - private final String str = null; - - // Creating a customer class object - final Customer cust = new Customer("ram", "dafale", "wardha", 97546545, "ramdafale@gmail.com"); - - // 1. Null values are not allowed in Name - @Test - public void checknullInFirstName() { - - assertNotEquals("null not allowed ", str, cust.getFname()); - } - - @Test - public void checknullInLastName() { - - assertNotEquals("null not allowed ", str, cust.getLname()); - } - - @Test - public void checknullInMobile() { - - assertNotEquals("null not allowed ", str, cust.getNumber()); - } - - Statements st = new Statements(); - service.SavingAccountImpl li = new service.SavingAccountImpl(); - SavingAccountM savingacc = new SavingAccountM(1000, cust, st); - private final double amount = 1000; - - @Test - public void testDeposit() { - // double balance =2000; - - SavingAccountM a = li.Deposit(amount); - assertTrue(savingacc.getBalance() == 1000); - } - - @Test - public void testWithdraw() { - - final SavingAccountM a = li.Withdraw(amount); - assertTrue(savingacc.getBalance() == 1000); - } - -} diff --git a/6SpringBank/target/classes/META-INF/MANIFEST.MF b/6SpringBank/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index 77e542d..0000000 --- a/6SpringBank/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_162 -Created-By: Maven Integration for Eclipse - diff --git a/6SpringBank/target/classes/META-INF/maven/HelloSpring/HelloSpring1/pom.properties b/6SpringBank/target/classes/META-INF/maven/HelloSpring/HelloSpring1/pom.properties deleted file mode 100644 index 6ca3f9d..0000000 --- a/6SpringBank/target/classes/META-INF/maven/HelloSpring/HelloSpring1/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Fri Apr 27 11:09:33 IST 2018 -version=0.0.1-SNAPSHOT -groupId=HelloSpring -m2e.projectName=SpringBank -m2e.projectLocation=C\:\\Users\\trainee\\Documents\\workspace-sts-3.9.3.RELEASE\\SpringBank -artifactId=HelloSpring1 diff --git a/6SpringBank/target/classes/META-INF/maven/HelloSpring/HelloSpring1/pom.xml b/6SpringBank/target/classes/META-INF/maven/HelloSpring/HelloSpring1/pom.xml deleted file mode 100644 index 4b81537..0000000 --- a/6SpringBank/target/classes/META-INF/maven/HelloSpring/HelloSpring1/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - 4.0.0 - - HelloSpring - HelloSpring1 - 0.0.1-SNAPSHOT - jar - - HelloSpring1 - http://maven.apache.org - - - UTF-8 - - - - - - - junit - junit - 4.12 - test - - - - - log4j - log4j - 1.2.17 - - - - org.springframework - spring-core - 4.3.5.RELEASE - - - - org.springframework - spring-beans - 4.3.5.RELEASE - - - org.springframework - spring-context - 4.3.5.RELEASE - - - - - - diff --git a/6SpringBank/target/classes/beans.xml b/6SpringBank/target/classes/beans.xml deleted file mode 100644 index 0edea51..0000000 --- a/6SpringBank/target/classes/beans.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - savingAccount1 - savingAccount2 - - - - - diff --git a/6SpringBank/target/classes/controller/App.class b/6SpringBank/target/classes/controller/App.class deleted file mode 100644 index 1b7d4df6efc70122802899ad488ae5bb1e6f6131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3305 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 BPhJ23 diff --git a/6SpringBank/target/classes/model/CurrentAccountM.class b/6SpringBank/target/classes/model/CurrentAccountM.class deleted file mode 100644 index be40bde94237a4424dcc39180d2e86ad1596d1b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1991 zcmZ`)ZBr6a6n-w^g18AGTB#9{6|Ne+SXuazN-Cvk+Sv4|7TB?65E@+iP=BGH()2PV z&D2akpnuUHX*%cby1)v|$ew%lp65R2InTvE|9<`ka05F5_ymRyszsxmUa8k=M#Wkx z6sq-#wHbh4AX3ub>glpx*-vlfOGd#G2o~yxR`tNB(c6vVN;{JgP|b>E)Qm%GN4E?C zkrfE!bpj~R%4ZfSl@mCn+lM@sLJ!WUh+#lk{QmCm+NaoiK4nxz z06~t_C(b)u;Wcc-gQ|6%Kv!4oXG z`7puc+GHeANXRhNw&(q+EEj~RVEI_&5bbgo5qjec^jK@cq6tK3m*<5)MFP<*tm>{+ zGb{T7G3uac06Uur;5KRCO)uBYa?z*-aaZ7+$4QA}$IOQ?gL^FheR5suBsLFd26HOr zK~_-oH*bszS!TL*tL?+gNoEd(Ob`!9tEoh*6XnUvjJx82bGqsd$BZ6w<*L9K>3xEA z^W1eB#Zu^^lO~%*Za1Na7Nq6F%Qb$s;Ly^2r=`<(Cm7@q4<~4zmSf#{H-*%$ghqq*6(T z!?-+Cwf8$`3XJ2jgO#QyWA$p^G4_RmR$;W3;$FA-3a&cE3$&Z*DpHpwg^K zBI_NAOm`*{_Y&DAB2T*z;ej)eYv7TvXEE7R+#Jnln?voRlXoE;|`c-+8~rmbvm VnsgUR^aEhF^f2q%Yg=~u^go8HQTG4< diff --git a/6SpringBank/target/classes/model/Customer.class b/6SpringBank/target/classes/model/Customer.class deleted file mode 100644 index a3415716f1a285fead368be87e6325189a9a5c9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1959 zcma)6X-^bE5PiMu?SQ~?cr37h$1*Goc%dSoTpF^04=9NrG#S_thwMR?S^kw#6M;k% ze}F&A_^M|QTn6Kp?&|8Us#mYx%&*_ye*&1rs~AEGU8PFFDOxMFBd=0&sxgEWx)1DQ z+bY`SeQRs?z}fQ@A|J|j$x-Odx9+yRs$1Tl=Vj5qjM;@k)j2v+h?Z-mU8ky`HhArn zY_~|~Gq>z|iwYgti5-RT3M(hkfo=l^Iul@a0}({U>N61YtpNjZL=~>)-LkW()4sNM ziyBL1&o1uRRaee+XW0Ab5@u(A5H8C#vuaih8FI_0F;DokQo|$p{LVYZp(O ze6P6onP<3asuT3cl9HwWtBxAvI>6k(HH0ag1f#ncpTZ4#z>|*0b)KPf->m2UOk^?o ztbp9+q?F1@sVSB+2f`;vo7bZ!7;cp{HSly>*&&u4#t=p@h77W#V49XdS=0?$bto*X zDG_*a7bnw8O{KauA1qj?hu#KdGhc#*T0 z=|{~GDz2T8cLehO5+I@$0g?-3WVoG?LLiW-U`Eb~-e;spAf-!yh*$*(e-2!Qkz=+b zx?KGM>uvAs8SaZ}Pw}w#2^ZQavFCleU+e|nPM>0_ciFdxxt(IQ)kl{m%EJTHC=>5o NKdVj6uWR~W{s9K~BHI7} diff --git a/6SpringBank/target/classes/model/SavingAccountCollection.class b/6SpringBank/target/classes/model/SavingAccountCollection.class deleted file mode 100644 index 0adb1b3a3a52ec63384b671b675fd10b7d3a600a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 902 zcmaJ<+iuf95IviOI2Y5FB)vhJrcfYBX-#>=s8Xrm$%0Bjk$80CRl1e4j_h?M{t6JJ z5=eXiABC8;4M`(`ERT1_=ggd$*`L3@{Qz)`X9jW%JCnfUzSVcHgdCraMnNpqS>XG8 zq(mSM6d2Yn-7DAfT{*Vi4ln5kL)G=XkVlatBJ$Rp1Q9FYTRLJh6kiA_)Cohr(;YAr z&ZtTSc~ngpC^4)$Lh?89WXQvJ?$GB9H76Lk{=f}|_OoC?U5JQb*ZHqXs<#qxb-Jjj z-dPsa9hAXPH*pI^B8-;^wN7`LQN|{=4Q$;QLH|Rf_{79r+@tP-nEGE&i6XGhLm^dP zh1{Lk26h-W=d+_Qjre6Oe2<4E>?T8qRQr|BCtRwi{k(!E_Vj@6Q_f6(GWL{ecLy4= zZ{i^y(TLsYluM7{a1okr$j*9MU}uGGouXr+iylKs1!-!A#-H{VD1?22BLjytwxo}n z9h$JTQe&!{_9a85AH?B^zZQC*&3{~}Bb^C*w2C}kLq;#{gKVD8bT!D9$+PI2{Oet# z@`(aDm}HAdu!`GsHd6pruu2~72zSV8@(H1H8r?hiirSoANuqTs*hn&Lq^K-|&aS2C z!VRovxf~Se1hhV5<2#z~YprXvdtXqS;lT`#XE@N#M?$0u(;8dYrf06Q^;hN71bO@$ DY!k-a diff --git a/6SpringBank/target/classes/model/SavingAccountM.class b/6SpringBank/target/classes/model/SavingAccountM.class deleted file mode 100644 index fd7c99eaa1f50ef6448e449df964387ba266e465..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2504 zcmaJ>e^VP(6g>};kcOqi1X?Ks(x%X`g~UoN+VC5!MrkWhvG{AcgdN;YNSI{9-#Csl zei&!8R;Z&het>?J`WYP0d;25FhR6(g@7;Ibz2}~D@4o)`&%XiO!MA6) zj&WjD4p&R1YNKL5>_bQ({@ge*@@1oPn18(g+$`AweftK_B~w6b2n-mG`=iFuzFDKK zD4A-tp z?3W2Bu~{t{_$;K#+Y@@6PIjK-WXH(rcic6y2a_{Hi@S?ovC}A&Vh?iRz>dT6Hit0 z@0a7*SaLrfdq;t!SBqyV$jpNbQ*7(4s9oK$YwTKwq-M7|)VAi5o z=Vg1>r`_&ej9~>IN_`&)klA1e;*lO7YbfFqfrxQ@Y*yILW8|pA+09poVv{V*q}ygj zWqKszJQkR}C{x#X62X>yxh)eH|1a?qvNw}%9n8fjNNN8}y5x?V0`gRb+Y113M!(QK zz6A1>h9xYsWp=8KTFHE1$x%zTvzwDN;yQb;m-7(0oJ0R04}p}Tm$ z@|5bpUPXo1S4Ae5nj|}uH&Z4QTdOT8*IU#|`fA<5yKYT+s^CdI@k>DJV$0*O|9B2} z-N#GBq-IC8X%mJc^%m>dRuMX-cKT3Ij(a|kX3yn*4gh(2A&_~z?*s9AZnRAT2gox5 zF}eVeqb?JFfcqB!$poAK@IoL3EOY>2^JjvLR0-s`3lRBDkw6xGX>zVKA$|&i%AB;| z2>HtJljq{F+-{lw3oCnxwO82SC{LW@qr|7@c*uS39G@k2xMy%_{@gKV&hf=LzHF9# XSqXf~ru`msIBiKg@2CA*srAi&f{~=3 diff --git a/6SpringBank/target/classes/model/Statements.class b/6SpringBank/target/classes/model/Statements.class deleted file mode 100644 index 336508aac4f3442443560a860e87fcfa17e0f4b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1400 zcmah}Yg5xe6g>--v@zIHo&rih)KZ0rPiPV4A%eDmwxZytv<(oZNjk|Eho7Ybg^?M5 zfIrIdZrVaCFm|T9d-tBbd+xnw^ZU=wUjQcYRYD6x#BvHoQOj_h8T zE9&-+wwBv7@|>Zyz_%GjQ@)3rmZ5DsuBCHrkxpjGUh++DxJd%r&Nqge4d9fM*Nb&1 zA>^Xz@r=H2+B*zAsTvF4p3CQ*vdz0PpUXhseQpvCj41=+iTFo!A zN(M1ULQ_r8C$J#SE;5W?M&N=-YMD{rhOwmJEtVOiTs1=mwkX)V6A|AF5{p-p5CTps zSj8IAuBwe;y2inOeAIxFfQY^$UMl(bF?4Di13t!>~9-LxwGy3Eh&*Fy|tzfExnds{Z s=7o8PHx;bVs*nCd6{Kjtg7pfr=L}@Z0qDgv`WkLcoZY%f-WF{A1ukS;h5!Hn diff --git a/6SpringBank/target/classes/repository/AccountDaoCurrrent.class b/6SpringBank/target/classes/repository/AccountDaoCurrrent.class deleted file mode 100644 index 4a0dca2d191b43e3a3fd223d7281b94851421fcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmX^0Z`VEs1_nb0E_MbcMh4lU)Pnrt%#!?~N`1%V$czSfKkoZ*=z z87W1He#gh;|xTfmTmL5v908_tL-p7z~tI@;|t zQl9OoNyOHbuDbGNG!3cN`fu}blIf&vpv-$d@x2Q}Ig3e6Y@tv<6*~rM0&7n#@u`Jp zc+LdqP@vqH8%o62ZhmDlJ#F4fDiZZL&&2<|MCI?8X5+`G>Px*#cMveU!8GiQu?K}VeW&A#(gWL!S+B`=gefOS>A>8PeO^dwb4(e$P4O_n#j>0TfUc5n@O=ddqGbuI-%5yB){TEw`j; zcE@txHe03$f#LqC`dO7t)oRG^Yp1&AiU{`y`Vke?<|%j%hVYhQ8E%nbAe%d65O(dl z9>oA+afpa8j8qLv-|sYQy7NJ;nL0zFYHO-_s5%CJ_7?^B#Aq|5t9R;D7>14v_oVKq zX9b3-Y$aE1(t+kRrgw^nQHJqb_o7H3#)pS-Okk2B+R)vyO5hr)BaDiODTd*m9Ua#& z<%;SOQxY)|DTdLjjgsT2=T)QaMlr*8C5DMB7Y|&=uo~r#Vb*mgf_a8)smU#u&U^;x zlVdj}&8vr`dIgarqa8&Wi`>CSM3Jpt&#B}N`5Q}dWRas9sI8W6)fr~EA=h8_1t>h? zaU3hiGelh5Q^zoty&0m!Afq5+tlr2Yk?ZMUGO!9mjN|#8 zL-zcqUJPRGUkQXd`Az-kkpvZ>;tM88=-=U@XeUzf`nwRpHbchu*=p~>u~m=wE6A1CH6 zv9NT3%mtReV>N`M{1?jMojXg?fN9E_qVv)iBk3v3A%g`JvDnj7Bz1JAuZPc`;W;Ua zU>z^;k^qOP#_O~uQ0xLWut^aaOhLgGqu(3)Z{z-YJbMApUcgfhc(wwbe8969@a#~Q5K4ambtNSc diff --git a/6SpringBank/target/classes/repository/CustomerDAOImpl.class b/6SpringBank/target/classes/repository/CustomerDAOImpl.class deleted file mode 100644 index d0adaa6b9e8b10ad075e8de6f6ebb4ca87220ba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmah{(QXn!6g?LxOBXDb0@Ye;i!}jl+?e=A)1;{}X|mdfnl|m*0Gm2wVac#-!e8lA zqb7cUA7wnd3zQNQA9iN%oqNu?_ssnM^WztQH+W$oBiJ(DC>ZN7Fcaq_8i&EaGw+Vi zP6s33LQe3ouf8b9SHm0Utkd_pp@qC)a{+Zahp9l2Kh#4V9tpC|)`cK<67)P9SrkjK zP!N<|J@h_CgN|oDsgCanDsIqK{)I9+j;G07_*sty+wOwUTqkX>Ehws9ZT3L``1xBmqkE;AmrEz|@Xcf7~Os7Xw2ql#h?kFaIo zv0&}4Bt9+S3AX79I~LTMX=4kvwp-VNLU(!t^nF>GUi##TPwq2wsQP^iC!?8-jiuUu z%pdepSBX}K)VGnGb-wIz&hC8p4>nbCMyKrB5c?gRIhGP|8Vf?J2o@8Jow6NmJA>|uBcMDMuvLA iyqlt?%*5j;>mD(&ewt|{%|B-@gZ;mb*R}xw diff --git a/6SpringBank/target/classes/repository/IAccountDAO.class b/6SpringBank/target/classes/repository/IAccountDAO.class deleted file mode 100644 index 94a341845c9a68cef4ab72c60912770af7c25ee5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179 zcmX^0Z`VEs1_nb0E_MbcMh3B>)Pnrt%#!?~N_|hq2je|82IMh1bb#Ii*F zoW#6zegCAa)Z`LI26h*Saz+M84Hr$H-29Z(9R1+Lvdp}6sAgYlMh1@X%#w_hqQr7W z2Cm@z(xT*4x6GVWpn*s>=z$DpV`N}tU!0Eshj0stlS BD_;Nr diff --git a/6SpringBank/target/classes/repository/IBankDao.class b/6SpringBank/target/classes/repository/IBankDao.class deleted file mode 100644 index 0f3a507060432998f5c2a384caa4c8a9dfc6e7bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmX^0Z`VEs1_nb0ZgvJHMh4-c)Pnrt%#!?~N_|hK#Jp^m#C&!J7Dfhvti-ZJ{hY+S zbbbG%tkmQZMh5o8loXH>Mg}f*ILsDthTfyGe_Siv$({Xk%2QfGd(Y{ zq_ilNkwFKqVjEbAWnzVQ$g`S;5B0z{tQ1bUgzDBhZPg3~WF? PJCMi3zyV}&f>~Sur5!qI diff --git a/6SpringBank/target/classes/repository/ICustomerDao.class b/6SpringBank/target/classes/repository/ICustomerDao.class deleted file mode 100644 index 581bf268b0e835ed92d566c94b56091bab988eb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmX^0Z`VEs1_nb0ZgvJHMh5Ys)Pnrt%#!?~N_|h~(&Cc*+|(kM#C&!J7Dfhvti-ZJ z{hY+SbbbG%tkmQZMh5Q0loXgUMg}DfpWOVE)Es@7khP`{SWjt5W{$p3W^su%BLin} zW_n&?Noi3kBZCP+4L0Z|+5wH=3eGPrN=|jl%mJDqi0n>1kacW~42%rSKwmL1Fan*; U%D@KXvjcfd3>-ifCz!Y2SbTufCY@9qp|&Ybr-@66x-{P`Dv`>3kuV7L`nHNS2P zKR7Zs`GM{2&6mr5!xJlR%~7E+ytU5{xan|j&s^W#x5`3AilP71x|MiIaekd4_0;xk z@rNxk!4}_jEQX$vU*^s>4{SM(Cl&F+t}_gm zPVIA{z5;_lnZwLwe5=3!KE3sW4Jd z?84i)rDEs|hs~q9uv{JQV3?x(hG6I`g_vyL+z4z>Y>L3*F70eE47>qI(?ocoVLKHo z&@f76EjEI{@`MrZYS?unpT-ErC9gY_crwZyHXvGGnA(;R6FMd_MZ|fnW_cCrr6h34 zW(B$8T^;Ws%b*EA%0&B5UR*-4Chn`a$I#nGm5v9pFtsLyI-ZJ0NnAtNjyWF${HSEt zMH&y$t>Fp7*t{z(WyHNQY|p5NUNd-PHd3u2M}g;Q@T#x^qZ0KvWMgQcw)Y;tOP zPj!^AN-d9MG34T!!&KzSnjdh-+=@TwTw3+I9~9d5cm(UxK^qL&%axz9U2I#TpW)9I^+Us0eQ88fh5H+*uJ-hVlPHolg9zurs(Rk@nmc zFDd~))bK4`I_G?);d_R=u`3VbNTV9~ZaZUghCAmH7?ClPrA}haGF6rAEa%R2kgk_a zzY&zJC0pKm{TJ@D8R=Wx263R@6}qP7o32fIcG1YBH>3BJ>0_jSr;iTk^h|}5H*l4{ z^(X+>aGgfP7&quii`fvAFv+VE^z0nt=32IizMS$0GA9_>>A8K3F*(!3-6p1+m>E-IITfr+M`?7V=sWvP>ZvHKR50NfT?)9@*bo zB4*G{-+iQYfQlc)1Tx5C2(uU_&yS#tQS4(3KF0AY*;a~OCN{vUSgic|44;!+4ZmO$ zTSV^~e!>?tr%;~f*rs19%h dUbfi$*kW@Kv*E;55=l{ph=@uQE401?*1uO}4a@)l diff --git a/6SpringBank/target/classes/service/Account.class b/6SpringBank/target/classes/service/Account.class deleted file mode 100644 index b76ea7c9cb37bda15bc865e1a6f09f1fb56b7149..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmXYr%?g506olubc`b!{4BaF>LLh;w7D26V*F#+qjq6YE)}jaKp`s(WIdfo!Z|3`Z ze*o+eD=Y|`j@@VtX9r{2q3IQT!nV?*&T8GM!YA ze?z-g5m#NSeeaLz>OM)h<3rB%`}Y1W`{dvM{`wohES4>l1kNR@yQu?JpAUk#7p1Ly z>$f|hg|fiVOSviQp^Vn+ODiu`kXq;$7~Apk54s7Q2;=nyMciiQ*h_U-=h3<*K$ElT z&I#BuC-Y=1aHe?}%$r}LQCZFhslaHn9j~ge-jbWdDCib=-+xa>I=wH@SDkrI^9Idq z^kLY+NqlPKG|pHU5jeG%K_iq&;$ReG0@k`p7iF8Fj#OvzV6!Y+X_q{6HpVew;hezP zk0s(@5}yeS5-871;9B)4QUQKkB?cjI!GVPV3l{~(cM5SJSJMg`E{2WuWe0<>Ele@& zT z+!46rM@esOO$S;E3m{*j-hfIMJ!Qrn^b%8tA(Y=5UW9CUjw% zmm(wZZQRF03l9#c+>3iGi-UPQqDVGn*i%buRH?~#Pf58IRWb|D=9Pd;^KzO9`^6)8a*)}hcWLoC>wVN}Vn%oDy+j;FYjnLRLF+s06>BHp3$9%r|3zV-p`i*01Z+eDpS*SR+2vl(#*{iFu2PS^fK z^&M{f`Ww!F!0e04*ZILW#rb=DyN$*_X7@Yo_p^_aX@Y-?NnGMQjmsJPC~b&au$$Er zd`Dh^r;H;{`!;98UJ`ql{X7F>H5ud>rCp2?`~u?{zArF*+Lifwh2+YNh}H diff --git a/6SpringBank/target/classes/service/BankServiceImpl.class b/6SpringBank/target/classes/service/BankServiceImpl.class deleted file mode 100644 index ec4052f9aa75dc43b7aaff9ae72e0429019e1210..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmaKpOG_g`6opSEF>Sir#~7dEdzVD95tk7K6+vib78$ayB!!mK>6T7M@L$b|)bFPGF&@(revT!I6yrHU|5%?p5TVATWI?uVoO) z_&oUCx>W7VK~Z4#E#zz@M!;#&;Y20^b788klAg|z^d_((Ue^VR`#RRyfk3`eZ3+~Q zla6wc$Apg(T!E=j$Ld$V+fwNt*@~3FOqjG~)Rd_<=iy}`yU;y>rSOeo1jC>+(_-aI zgle+{^80WwPGH&Tm{5VWO4ub!WSda0hPLc}rlTO#y^MaPhCYvF)=$Z_{jGR^)ajt^ z;U`ucEDMys=!uUx%(D@ua{~TosDRr@`e|F8YSW0>Pc`lsL~OE}JjWOZ>%llb)|}Z* z&K^&D_5~QL-NXOSiyS67yIg@X3Iv$q&ZmqbOydVvV=yx`IHl5PU1Lz&x4`zL^Htm)7QbAj~ll_RaAC0gMBE4gBOj&Lu9 zui||0F(2NjfUsbv5>nobavshQ-ELYTtghQVp3eQVskLDz#zdiVEn5X4LyB#6-4|ix z^VK{50(OTP_gV(#v8ZE#FrCqzbDk39qD;^yy z>|Ku62rr5)@pR5H9=AGeK!)(I4&ymKt(R@aI^9^$v9+PrRSxDgZglg)yZ9v5UEMb}J#KXsQ Ft3ThSv(!3HEM}Kw(7Dfhvti-ZJ{hY+S zbbbG%tkmQZMh145)PnrtOdv~A!$s34H$NpcM?W~REHf`1s@d0?k%1#Tvm_&>D6yQ8 zfh#z_v?w{%Ei)$-XdsdedLYBu7#SEDn1OC#U|<4T$jZRR0J4}JL<40wK;jIX05T6L A?EnA( diff --git a/6SpringBank/target/classes/service/IAccountService.class b/6SpringBank/target/classes/service/IAccountService.class deleted file mode 100644 index 40c636dab27c7aa14bad993daceda86568af28d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303 zcmZ8c%T5A85Ud7d6rTqZ!w(p^xbeIv<4Qt;@vs5T<7@|qEIXT-+0}3J;0O3o#wLO$ zUiw{KRi9t)9{_G~uFxS|1@^5qoJ{YGaZMHTpI)IyxLE5}C#9}d$lsEGaEY zWn|F7tJntFBs-v1uHgLAqU2P!%p9OzL1cI7fvjO;WME`q26};kff49TRt7d8pB>0! MV&DL>IKeC~02<#sdH?_b diff --git a/6SpringBank/target/classes/service/ICustomerService.class b/6SpringBank/target/classes/service/ICustomerService.class deleted file mode 100644 index 42d6a4de22dae5a77b9db6cc53c22ec27b8fdfaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmX^0Z`VEs1_nb0ZgvJHMh1!E)S|M?;W#$0Q5Jh*Z9>_{IMg~R(W}w#?7#M+0XJudm R^4WnrCI${5ixbS^0st1ON0tBp diff --git a/6SpringBank/target/classes/service/SavingAccountImpl.class b/6SpringBank/target/classes/service/SavingAccountImpl.class deleted file mode 100644 index 33d5bece57919f8f389ac2fd39ccd79aa75c0f5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2088 zcma)+ds7=#7{;FiX?6)|tD&VtuxtyIi^3MM6p~s6B7%mCf>gX8k_}xZyPMf;V3={n z8K?f`^t)L92pyU61NfmFpS`68f+I88-E(-)d-=W3dH??B&%XdnqoSZgAX_)wL$hS) zTk_Df_ZLbfr(t`mR;{WaA@Ih5Jd}D>+WY#(-hol_6eIZZp6#tP#_i=nD#OIXV*=n=Tl?q4Zn(Ct5Z)3}8`fz-a?ElQSIVpdGQ z(1o`!prHQ@fvw}ZXIN>xjoY+x8jOCk7yvRIebY5pDK zSH)eXwbXE3!}hc&s%F-;Tnd92_F;|C@mT0NKp&pZkMH;vqiKv`oVaDJX4qwc0iVDn z!SeozchYzllLD&egq|3G?BWsH>X=q=pABwPRT}U4i77R|(5kKA{n)PInN@wkb>(r< zta~ZUpj*X5fuRM<7n2tCN;7S(9;i%{q0Csdig_BIry(nz;cDfu#{nBn1>4?p%s+i? zO)rFEXO8QWYh2TS@)<0C8xbUBqx>2Ylf z%(WvO^88O%#I=Nv6%^uD2iAe2t}bLRv@{!SD3nwV%}sxL8G znopc!hQ<$a$=Gg|cB3t$cz2GweTmj~CifDLa>`3A=G53^g(g`gt2Xgz6YF7&$=_Q= zOre|Ky{xs5$!9Uj!8?fo%yMoOp`nB!9AFp@M(`WPgJM_626!G7>wkTYFIcXMU$KR4 z(z}MA@g?^X^z#He{3YpS2w!2BXC2(;#r!(p`%Mc}g4QbiK5Gx^+cu!~Uvd1tEuSCT z@k#o8l$g(+&nKBxF5xqQ6myzlX7^duH2KVs&jXI0Syu265_70v9={+LuzAc%SwoA> bvlg45T5Jv@HZmfTq=%4*LW*Uc?||_ym;nil diff --git a/6SpringBank/target/classes/service/WithdrawException.class b/6SpringBank/target/classes/service/WithdrawException.class deleted file mode 100644 index 92cbd8c270f64aef00c5822b13bde9af83e6e50d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmZ`#O;5r=5PjQLDp;ukB8V4nP@}}N#)}^b3Gsr#^HMgj23pe=^ly0}CLa6&{wU*X zC2Axdc4yw3nKv)<{_*+--~{_N41s#AqPg}}`%Wk0VI&`~o_zI?=rFKh36$^UT(&1N z7`49(0`^qJu^cIZQun8!mqa=koeEfioU&#QBnSOJU6|h;v0k^9Ibu*g|RCFu3G4&eya?+QP zPVtholCh2j8r^^IK&wLYbp#5%a2EOMTBmZ=m5Uvxx4;2Sn7pvbNKedoie;p;3{wgl zo6xWJZov_R>Zlz|HWQdX|;uX4PGBI?*7?|qGt-6f(xwoYVOjXg$| Mr7Ke_dqf5rpB2e!&Hw-a diff --git a/6SpringBank/target/test-classes/junitpackage/BankAppJunit.class b/6SpringBank/target/test-classes/junitpackage/BankAppJunit.class deleted file mode 100644 index 5087dd67d35e1623f7be3511151945ff4dde5017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2085 zcma)6T~`}b6x|mB6T*~2h_nc{fXg<-mWZVvnA#FZX`um>U@BFsm&p(YCNnTIfuG@{ zOaFk+uGIjmuH_H#$zSAh-$`hKP~~Ory=TtdXP`*|q7? z<%dRT7y<()7_ELwbn289bwxnr1TM|Fjvq)TC`!9(cFz1b!;}GfJ+zqGBW95tFOu*a ziN?^5t2z>RuZte<>*zqIhGBu8(`iI;jrTlRiDHCECAleWGm0_p52RPxk{v2W$6tGs zQQQ#dr)S+~rd*MhJz=<&7>1Bkp~eOB$+IQAh-LAt(|A!a|5%5HsD|6@K%IHB&@tS? zRps=FjxNMBe9G3pv*t0%BlNzjqZ_)0`vQpu)v(&j^j09VjujKMh)lvxwW6Lyl zoT_avIP;e02g|ZTz`<3@!>X7?%eRP_bsU$xEDA*_*7eHi5H!7J`avd&rviNnV}x!a z(ze|Lvoxamx1eJY&jq4oGnjWm=tOe-Y*S)b!it7vqBp^_K8qgc_yS)tX&IiD-QdYy zRodh+{ok6Xk6@-HR>PvS+~1ORUe>c#eAje*b;37a=iArfy5w$HHfLZ6U+Y-MOO6{8 ztG6N?lf@Xm#VZZpaUhyApLdhx5(gS&Tmdtct?kg3V+sXx#m^*Gm?C% zDk7wSu7ba?f~}G#4^;F$9iECFJu&ib!L53RInO$<>8)?zgi08r6lyz1yAyHsHgMOg zCQVJd8m4gNn1m~J%{8u6&0BrkxAD};J>M682Wa`3w*=Qh>Ihd-qK3iL?-*K-e-OVO zA5GxH_(w;$Swo7}TkA)ds3FbmB)4~JnBw-{dIIs(YkIs!`Unqd$fRhg;q%|ZfRFhd z3keP*f@=&nitDUo3iojr5AYn*Sj8}A=%?4IAd6X^1m;My4LR-==_gzj<;N_5qTCms zXUstr`w-8Lk#7c!@fvWGc_&+d``!YtUL3e^4)ARPPn-)}JQsMDnJdPLR>m)m@y$8d zchHZi7VN}Z((+vFSHxDyj# - - - - - - \ No newline at end of file diff --git a/7SpringGettingDataFromJunit/.settings/org.eclipse.core.resources.prefs b/7SpringGettingDataFromJunit/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index f9fe345..0000000 --- a/7SpringGettingDataFromJunit/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,4 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/7SpringGettingDataFromJunit/.settings/org.eclipse.jdt.core.prefs b/7SpringGettingDataFromJunit/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 2b81a1f..0000000 --- a/7SpringGettingDataFromJunit/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,103 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnull.secondary= -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary= -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullable.secondary= -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.APILeak=warning -org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning -org.eclipse.jdt.core.compiler.problem.autoboxing=ignore -org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning -org.eclipse.jdt.core.compiler.problem.deadCode=warning -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore -org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore -org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore -org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning -org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled -org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled -org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedImport=warning -org.eclipse.jdt.core.compiler.problem.unusedLabel=warning -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning -org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled -org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled -org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning -org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/7SpringGettingDataFromJunit/.settings/org.eclipse.m2e.core.prefs b/7SpringGettingDataFromJunit/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/7SpringGettingDataFromJunit/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/7SpringGettingDataFromJunit/.springBeans b/7SpringGettingDataFromJunit/.springBeans deleted file mode 100644 index 8d2bcff..0000000 --- a/7SpringGettingDataFromJunit/.springBeans +++ /dev/null @@ -1,16 +0,0 @@ - - - 1 - - - - - - - src/main/resources/applicationContext.xml - - - - - - diff --git a/7SpringGettingDataFromJunit/log4j.properties b/7SpringGettingDataFromJunit/log4j.properties deleted file mode 100644 index 8ce52e6..0000000 --- a/7SpringGettingDataFromJunit/log4j.properties +++ /dev/null @@ -1,8 +0,0 @@ -log4j.rootLogger=ERROR,stdout -log4j.logger.com.endeca=INFO -# Logger for crawl metrics -log4j.logger.com.endeca.itl.web.metrics=INFO - -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n \ No newline at end of file diff --git a/7SpringGettingDataFromJunit/pom.xml b/7SpringGettingDataFromJunit/pom.xml deleted file mode 100644 index 52ef976..0000000 --- a/7SpringGettingDataFromJunit/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - 4.0.0 - - com.bankspring - spring3 - 0.0.1-SNAPSHOT - jar - - spring3 - http://maven.apache.org - - - UTF-8 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.2 - - 1.8 - 1.8 - - - - - - - - - - org.springframework - spring-core - 5.0.5.RELEASE - - - - org.springframework - spring-beans - 5.0.5.RELEASE - - - junit - junit - 3.8.1 - test - - - junit - junit - 3.8.1 - test - - - diff --git a/7SpringGettingDataFromJunit/src/main/java/controller/Demo.java b/7SpringGettingDataFromJunit/src/main/java/controller/Demo.java deleted file mode 100644 index 3d0846e..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/controller/Demo.java +++ /dev/null @@ -1,5 +0,0 @@ -package controller; - -public class Demo { - -} diff --git a/7SpringGettingDataFromJunit/src/main/java/model/Account.java b/7SpringGettingDataFromJunit/src/main/java/model/Account.java deleted file mode 100644 index 4c435f1..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/model/Account.java +++ /dev/null @@ -1,126 +0,0 @@ -package model; - -import java.util.List; -/* - * @RamDafale - * - */ - -/* - * @Class this class is use to create a account of customer - * - */ -/** - * @author trainee - * - */ -public class Account { - - private String accountNo; - private double interestRate; - private double balance; - private int interestPeriod; - private List statementList; - private String typeOfAccount; - - public Account(final String accountNo, final double interestRate, final double balance, final int interestPeriod, - final List statementList, final String typeOfAccount) { - this.accountNo = accountNo; - this.interestRate = interestRate; - this.balance = balance; - this.interestPeriod = interestPeriod; - this.statementList = statementList; - this.typeOfAccount = typeOfAccount; - } - - /** - * @return the accountNo - */ - public String getAccountNo() { - return accountNo; - } - - /** - * @param accountNo - * the accountNo to set - */ - public void setAccountNo(String accountNo) { - this.accountNo = accountNo; - } - - /** - * @return the interestRate - */ - public double getInterestRate() { - return interestRate; - } - - /** - * @param interestRate - * the interestRate to set - */ - public void setInterestRate(int interestRate) { - this.interestRate = interestRate; - } - - /** - * @return the money - */ - public double getBalance() { - return balance; - } - - /** - * @param money - * the money to set - */ - public void setBalance(double money) { - this.balance = money; - } - - /** - * @return the interestPeriod - */ - public int getInterestPeriod() { - return interestPeriod; - } - - /** - * @param interestPeriod - * the interestPeriod to set - */ - public void setInterestPeriod(int interestPeriod) { - this.interestPeriod = interestPeriod; - } - - /** - * @return the statementList - */ - public List getStatementList() { - return statementList; - } - - /** - * @param statementList - * the statementList to set - */ - public void setStatementList(List statementList) { - this.statementList = statementList; - } - - /** - * @return the typeOfAccount - */ - public String getTypeOfAccount() { - return typeOfAccount; - } - - /** - * @param typeOfAccount - * the typeOfAccount to set - */ - public void setTypeOfAccount(String typeOfAccount) { - this.typeOfAccount = typeOfAccount; - } - -} diff --git a/7SpringGettingDataFromJunit/src/main/java/model/Address.java b/7SpringGettingDataFromJunit/src/main/java/model/Address.java deleted file mode 100644 index b06838e..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/model/Address.java +++ /dev/null @@ -1,57 +0,0 @@ -package model; - -/* - * @ramdafale - * - */ -public class Address { -/* -* Creating Address class for initializing address -* -*/ - - private String street; - private String houseNumber; - private String zipCode; - private String city; - - public Address(String street, String houseNumber, String zipCode, String city) { - super(); - this.street = street; - this.houseNumber = houseNumber; - this.zipCode = zipCode; - this.city = city; - } - - public String getStreet() { - return street; - } - public void setStreet(String street) { - this.street = street; - } - public String getHouseNumber() { - return houseNumber; - } - public void setHouseNumber(String houseNumber) { - this.houseNumber = houseNumber; - } - public String getZopCode() { - return zipCode; - } - public void setZopCode(String zopCode) { - this.zipCode = zopCode; - } - public String getCity() { - return city; - } - public void setCity(String city) { - this.city = city; - } - - - - - - - -} diff --git a/7SpringGettingDataFromJunit/src/main/java/model/Bank.java b/7SpringGettingDataFromJunit/src/main/java/model/Bank.java deleted file mode 100644 index a338218..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/model/Bank.java +++ /dev/null @@ -1,38 +0,0 @@ -package model; - -import java.util.List; - -public class Bank { - - private String bankName; - List custom; - - - - public Bank(final String bankName, final List custom) { - this.bankName = bankName; - this.custom = custom; - } - - public List getCustomer() { - return custom; - } - - public void setCustomer(final List custom) { - this.custom = custom; - } - - public String getBankName() { - return bankName; - } - - public void setBankName(final String bankName) { - this.bankName = bankName; - } - - - - - - -} diff --git a/7SpringGettingDataFromJunit/src/main/java/model/Contact.java b/7SpringGettingDataFromJunit/src/main/java/model/Contact.java deleted file mode 100644 index 5c8f8a5..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/model/Contact.java +++ /dev/null @@ -1,58 +0,0 @@ -package model; - -/* - * ramdafale - * - */ -public class Contact { - /* - * Creating Contact clsass for initializing contact details - * - */ - - private Integer phoneNumber; - private int mobileNumber; - private String email; - Address addr; - - public Contact(final Integer phoneNumber, final int mobileNumber, final String email, final Address addr) { - super(); - this.phoneNumber = phoneNumber; - this.mobileNumber = mobileNumber; - this.email = email; - this.addr = addr; - } - - public Integer getPhoneNumber() { - return phoneNumber; - } - - public void setPhoneNumber(final Integer phoneNumber) { - this.phoneNumber = phoneNumber; - } - - public int getMobileNumber() { - return mobileNumber; - } - - public void setMobileNumber(final int mobileNumber) { - this.mobileNumber = mobileNumber; - } - - public String getEmail() { - return email; - } - - public void setEmail(final String email) { - this.email = email; - } - - public Address getAddr() { - return addr; - } - - public void setAddr(final Address addr) { - this.addr = addr; - } - -} diff --git a/7SpringGettingDataFromJunit/src/main/java/model/Customer.java b/7SpringGettingDataFromJunit/src/main/java/model/Customer.java deleted file mode 100644 index b26ecc3..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/model/Customer.java +++ /dev/null @@ -1,57 +0,0 @@ -package model; - -import java.util.List; - - - - -public class Customer { - - private String firstname; - private String surname; - private Contact contobj; - private List accunlist; - private Integer customerId; - - - public Customer(final String firstname,final String surname,final Contact contobj,final List accunlist,final Integer customerId) { - this.firstname = firstname; - this.surname = surname; - this.contobj = contobj; - this.accunlist = accunlist; - this.customerId = customerId; - } - - public String getFirstname() { - return firstname; - } - public void setFirstname(final String firstname) { - this.firstname = firstname; - } - public String getSurname() { - return surname; - } - public void setSurname(final String surname) { - this.surname = surname; - } - public Contact getContobj() { - return contobj; - } - public void setContobj(final Contact contobj) { - this.contobj = contobj; - } - public List getAccunlist() { - return accunlist; - } - public void setAccunlist(final List accunlist) { - this.accunlist = accunlist; - } - public Integer getCustomerId() { - return customerId; - } - public void setCustomerId(final Integer customerId) { - this.customerId = customerId; - } - - -} diff --git a/7SpringGettingDataFromJunit/src/main/java/model/Statement.java b/7SpringGettingDataFromJunit/src/main/java/model/Statement.java deleted file mode 100644 index b9dd2ba..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/model/Statement.java +++ /dev/null @@ -1,44 +0,0 @@ -package model; - -import java.util.Date; - - -/* - *@ramdafale - */ -/* - * @Class Statements It is use to generate a statement for a customer at what time date - */ -public class Statement { - - - private Date date; - private String showmsg; - Account account; - /** - * @param date - * @param account - */ - public Statement(Date date, Account account,String showmsg) { - super(); - this.date = date; - this.account = account; - this.showmsg= showmsg; - } - - public Statement(Date date) { - super(); - this.date = date; - - } - - public Statement(String showmsg) { - super(); - this.showmsg=showmsg; - - } - - - - -} diff --git a/7SpringGettingDataFromJunit/src/main/java/service/AccountImp.java b/7SpringGettingDataFromJunit/src/main/java/service/AccountImp.java deleted file mode 100644 index d13e643..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/service/AccountImp.java +++ /dev/null @@ -1,102 +0,0 @@ -package service; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import model.Account; -import model.Contact; -import model.Customer; -import model.Statement; - -/* - * @author RamDafale - * - */ - -/* - * Implementing AccountService class to implements its services - */ -public class AccountImp implements AccountService { - - Account account; - Contact contact1; - - // For deposit - @Override - public void deposit(final Customer cust1, final String accountNo, final double val1) { - // TODO Auto-generated method stub - final List list1 = cust1.getAccunlist(); - - for (final Account acc1 : list1) { - - if (acc1.getAccountNo().equals(accountNo)) { - final double amount = acc1.getBalance() + val1; - acc1.setBalance(amount); - final Statement st = new Statement("Amount deposited successfully !!!"); - - final List list8 = new ArrayList<>(); - list8.add(st); - acc1.getStatementList().addAll(list8); - } - } - - } - - // For withdrawl - @Override - public void withdraw(final Customer cust2, final String accountNo, final double val2) { - // TODO Auto-generated method stub - - final List list1 = cust2.getAccunlist(); - - for (final Account acc1 : list1) { - - if (acc1.getAccountNo().equals(accountNo)) { - if (acc1.getBalance() >= val2) { - final double amount = acc1.getBalance() - val2; - acc1.setBalance(amount); - Statement st = new Statement("Amount debited successfully "); - - List list8 = new ArrayList<>(); - list8.add(st); - acc1.getStatementList().addAll(list8); - } else { - final double amount1 = acc1.getBalance(); - acc1.setBalance(amount1); - } - } - } - - } - - // For deleting account - @Override - public void deleteAccount(Customer cust3, String accountNo) { - - List list5 = cust3.getAccunlist(); - - Iterator itr = list5.iterator(); - - while (itr.hasNext()) { - account = (Account) itr.next(); - if (account.getAccountNo().equals(accountNo)) { - - itr.remove(); - break; - } - - } - - } - - // For updating mobile number - @Override - public void update(Customer cust4, String accountNo, int moNo) { - - Contact cont = cust4.getContobj(); - cont.setMobileNumber(moNo); - - } - -} diff --git a/7SpringGettingDataFromJunit/src/main/java/service/AccountService.java b/7SpringGettingDataFromJunit/src/main/java/service/AccountService.java deleted file mode 100644 index 5b2cb1d..0000000 --- a/7SpringGettingDataFromJunit/src/main/java/service/AccountService.java +++ /dev/null @@ -1,18 +0,0 @@ -package service; - -import model.Customer; -/* - * @Interface this interface provide a definition to operations such as deposit, - * withdraw, deleteAccount, update - */ -public interface AccountService { - - public void deposit(Customer cust1, String accountNo, double val1); - - public void withdraw(Customer cust2, String accountNo, double val2); - - public void deleteAccount(Customer cust3, String accountNo); - - public void update(Customer cut4, String accountNo, int num); - -} diff --git a/7SpringGettingDataFromJunit/src/main/resources/applicationContext.xml b/7SpringGettingDataFromJunit/src/main/resources/applicationContext.xml deleted file mode 100644 index 87fa507..0000000 --- a/7SpringGettingDataFromJunit/src/main/resources/applicationContext.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/7SpringGettingDataFromJunit/src/test/java/com/bankspring/spring3/JunitTest.java b/7SpringGettingDataFromJunit/src/test/java/com/bankspring/spring3/JunitTest.java deleted file mode 100644 index 4241b43..0000000 --- a/7SpringGettingDataFromJunit/src/test/java/com/bankspring/spring3/JunitTest.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.bankspring.spring3; - -import static org.junit.Assert.assertEquals; -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.jupiter.api.Test; - -import model.Account; -import model.Address; -import model.Bank; -import model.Contact; -import model.Customer; -import model.Statement; -import service.AccountImp; -import service.AccountService; - -public class JunitTest { - - AccountService accObj = new AccountImp(); - - // Testing deposit amount method - @Test - public void checkDeposit() { - - final Address address1 = new Address("Nagpur Road", "100", "442001", "Wardha"); - final Contact contact1 = new Contact(976651485, 0715225, "ramdafale@gmail.com", address1); - final Statement statement1 = new Statement("Saving account created Succesfully !!!"); - - final List statementList = new ArrayList<>(); - statementList.add(statement1); - - final Account acc = new Account("111", 0.07, 5555, 5, statementList, "SavingType"); - - final List accountList = new ArrayList<>(); - accountList.add(acc); - - final Customer cust1 = new Customer("Ram", "Dafale", contact1, accountList, 1); - List list6 = new ArrayList<>(); - - list6.add(cust1); - - Bank bank1 = new Bank("CapgBank", list6); - - - accObj.deposit(cust1, "111", 1000); - assertEquals("test case", 6555, acc.getBalance(), 3); - - } - - // Testing withdraw amount method - @Test - public void checkWithdraw() { - final Address address2 = new Address("Wardha Road", "100", "442001", "Wardha"); - final Contact contact = new Contact(9865452, 9584615, "shyamdafale@gmail.com", address2); - final Statement statement = new Statement("Saving account created Successfully"); - final List list2 = new ArrayList<>(); - list2.add(statement); - final Account acc = new Account("112", 0.07, 6000, 12, list2, "Saving"); - final List list3 = new ArrayList<>(); - list3.add(acc); - final Customer cust1 = new Customer("", "Jais", contact, list3, 1); - List list6 = new ArrayList<>(); - list6.add(cust1); - Bank bank1 = new Bank("CapgBank", list6); - - accObj.withdraw(cust1, "112", 3000); - assertEquals("test case", 3000, acc.getBalance(), 3); - - } - - // Update Mobile Number - @Test - public void checkUpdate() { - final Address address1 = new Address("Nagpur Road", "100", "442001", "Wardha"); - final Contact contact1 = new Contact(976651485, 0715225, "ramdafale@gmail.com", address1); - final Statement statement1 = new Statement("Saving account created Succesfully !!!"); - - final List statementList = new ArrayList<>(); - statementList.add(statement1); - - final Account acc = new Account("111", 0.07, 5555, 5, statementList, "SavingType"); - - final List accountList = new ArrayList<>(); - accountList.add(acc); - - final Customer cust1 = new Customer("Ram", "Dafale", contact1, accountList, 1); - List list6 = new ArrayList<>(); - - list6.add(cust1); - - Bank bank1 = new Bank("CapgBank", list6); - - accObj.update(cust1, "112", 000001); - assertEquals(000001, contact1.getMobileNumber()); - - } - - // Delete My Account - @Test - public void checkDelete() { - final Address address = new Address("Nagpur Road", "102", "442012", "Delhi"); - final Contact contact = new Contact(984515, 4575678, "mymail@gmail.com", address); - final Statement stat = new Statement("Saving account created Succesfully !!!"); - final Statement stat1 = new Statement("Saving account created Succesfully !!!"); - final List list2 = new ArrayList<>(); - final List list4 = new ArrayList<>(); - list2.add(stat); - list4.add(stat1); - final Account acc = new Account("1", 11, 4000, 5, list2, "Saving"); - final Account acc1 = new Account("2", 12, 5000, 5, list4, "Saving"); - final List list3 = new ArrayList<>(); - list3.add(acc); - list3.add(acc1); - final Customer cust1 = new Customer("emaual", "kaif", contact, list3, 1); - List list6 = new ArrayList<>(); - list6.add(cust1); - Bank bank1 = new Bank("CapgBank", list6); - - accObj.deleteAccount(cust1, "1"); - assertEquals("test case", 1, cust1.getAccunlist().size()); - - } - -} diff --git a/7SpringGettingDataFromJunit/target/classes/META-INF/MANIFEST.MF b/7SpringGettingDataFromJunit/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index d617fcc..0000000 --- a/7SpringGettingDataFromJunit/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/7SpringGettingDataFromJunit/target/classes/META-INF/maven/com.bankspring/spring3/pom.properties b/7SpringGettingDataFromJunit/target/classes/META-INF/maven/com.bankspring/spring3/pom.properties deleted file mode 100644 index 7ffb95a..0000000 --- a/7SpringGettingDataFromJunit/target/classes/META-INF/maven/com.bankspring/spring3/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Fri Apr 27 18:07:50 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.bankspring -m2e.projectName=spring3 -m2e.projectLocation=D\:\\Users\\trainee\\Desktop\\trainingProgram-master\\src\\April-26\\spring3 -artifactId=spring3 diff --git a/7SpringGettingDataFromJunit/target/classes/META-INF/maven/com.bankspring/spring3/pom.xml b/7SpringGettingDataFromJunit/target/classes/META-INF/maven/com.bankspring/spring3/pom.xml deleted file mode 100644 index 52ef976..0000000 --- a/7SpringGettingDataFromJunit/target/classes/META-INF/maven/com.bankspring/spring3/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - 4.0.0 - - com.bankspring - spring3 - 0.0.1-SNAPSHOT - jar - - spring3 - http://maven.apache.org - - - UTF-8 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.2 - - 1.8 - 1.8 - - - - - - - - - - org.springframework - spring-core - 5.0.5.RELEASE - - - - org.springframework - spring-beans - 5.0.5.RELEASE - - - junit - junit - 3.8.1 - test - - - junit - junit - 3.8.1 - test - - - diff --git a/7SpringGettingDataFromJunit/target/classes/applicationContext.xml b/7SpringGettingDataFromJunit/target/classes/applicationContext.xml deleted file mode 100644 index 87fa507..0000000 --- a/7SpringGettingDataFromJunit/target/classes/applicationContext.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/7SpringGettingDataFromJunit/target/classes/controller/Demo.class b/7SpringGettingDataFromJunit/target/classes/controller/Demo.class deleted file mode 100644 index 409ef0d20d98abe02d45748e432ddeaa2d28cbb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmZ8bF>b;@5S%qO1_y$}57Gez*U%BANtDWhg2?^ZIl)F)^uHPVgZ?Bu6gRPJLbkIrNY26ouC@W{jO71`;T@a4lel6w~xV3)GMlp&&Vc3gurb4Q5IP+2hI{M~d42 zd6`IUrCOC*sSnVHs=D@>@nDY!sY3Fc%iimJd!Kd0KmY#uH-Jy^B7>B|aIJprREy6m zm3qtbGe|3p+}dyKV%7F;ilOA!E`;}X*f;)8{2mj z)S*J=%BDtzvxl9{GpFI!uep89gPT4>YmVoa-6oG131nNoTP?~8MYHGbjc5C<1~ryr z+k52z{Jf*GTVlqr|Mo}c^oOt-1!K?kT)(8SQ|PBYJUotx?)C?*Un;!%U&%>C$$IIp z+4CF*Fkxa8A1DkI)-SVAm@+X4Lq;(}IUA?p$uFS*5wEx;|N_5YyvvCu>(d=TFVcs}?*iO0p$A$I& znt1)qo~ZGJhDjsy6g%!Q3M;2o@=WhtPZy3QA;*Ll9UJ8s6;0BGLkSqH)jj8}!f2Or z$7R%}&qlknJ3Awcj*Ju7Z>&>Tw*goB7LzWS-sKrFy+>gS?&Jh_HNKjpCxJqE(d%V7 zB({`0ueTZ%=g5@{H^Xb%l;?>>nqz?P+(1e^#ZgKerN8u({?bkQOD{3{p&sWMM@Mli zYoi$BJlJ`J$6Wo3s#$*5tUoYrZL~3I7224#Cev-qTH{6=bJkR*jRk9JsEwuH7&?Ft z`MabKokkk76nH|>ISS5W8Vmee#400J826Hxl;?bnUl|F$(jzG#rAJaiT92d%!CjLl z5#~w(Lnv_73^PsSxu>uWi@#DxkzY|Aw0_6ruNNsbapp5c>_q(l;JIBShgh=ZK4@Y603BLXq_uV_ev ze1^|Mt?s*-dmn4bw}~LzQA_UbW`<^rgM3Gj@9zN-D@jMbz?W=l;QF0Dvn<5Ta-9gY zi@iwXD=l)yd1RUe0SjJ6V45nyYWIKz5A@E@27R5^sHH?dFU1j?iHQ5je%6n++s{7{ R?dN;YPEVD%y#`IGL;(J1oc*nloj zJ@-C(-HA6Hci#=p{b3?dij&CqDX@EspC?HaOvld!R?fm%?7y8|4E#vIxC}lVQ&9nZ z7$l!4`9&}dk|TjP?VH*Ex6|oUbw0#I0Tl}-)&vUePQMI++ZKu_aa6Nlq*2|%tu$J< zP)12$trtu)=2LGlAzZr`4!ud=ivnI}n|g8<#H_yN6E$5P`w2N9U2)o-n|+WZUP$VS z-nokkm3e*Dz6vE>+b~J-KFlmN>F>XVart-KAkDEf+aN(2nJ3{a8v3sS?#;?B_%UA} zTI5ZE9)S*xt)fU{qvT9B$(c-|nO!uoLZd~i&r%OG-S1d+59X-4kLIx5!#NyxQ=g;p zRpxHc*p&G-I>VtVbyUzm4eQv%27UYhi&E9Z7R{_@5+NgI(PYFlOxom2qgn!Ya5tmr z(#-mz`wi7E6lhc$S&=Pyh?NQ`oevS%#tx0#$`Psgh>~n$fo;m&ZGzd66&k53tH9M$ zOo4k!5IYajQi8P9Aa)*PmyX+80>Un_1NW66P99`m3GzS<;^aYG0y$U$vYUbIDM1=} fkV7TNLp8{i7nNSk69Rd<1ccuRJF-s~tD*e|qpY*! diff --git a/7SpringGettingDataFromJunit/target/classes/model/Bank.class b/7SpringGettingDataFromJunit/target/classes/model/Bank.class deleted file mode 100644 index 2bb70568e3e9ac59e30bfd099effeda830ca5369..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1126 zcmah{O>fgc5Pj<;PUE;uank?=`b7&#K=^{hAyp1k;$#)1pxm9*3fnpka%?326-ZP_ z9QXnJD8$UJbXyOy2Fe9pjf@})VLl}2iLf2Dr@ zxJa*0f@Co~dE4%+&nIwl3oIB$pgvz^+Q}?gUIdT3Ff>OCm^hDBv2uOm&4mEQly!S4r0WNnEap+O%xO*^p9gw_;l5lTW}Q(PmP*rLca zow=^j{Z7AUH*mVoZ_xZoPzfzs9h7OcY2Bp4E&3X`OUR)v!#&)m6A`GkLhZP*fj!#W z)RbdYScC{Xz{6a?BPGBklyfTGZ)kp@jiK6_3UpK}O;X8P3GCw_CplCk@91n$t;rLt zi07stz6$ZM=$6jPMVpyNOR0=lO41RI>7PAXmFTQX+$)s$7$;eAe^r{pzUl$Bw0)9x P@DFKxjqJ^-s(JDUJv`Jx diff --git a/7SpringGettingDataFromJunit/target/classes/model/Contact.class b/7SpringGettingDataFromJunit/target/classes/model/Contact.class deleted file mode 100644 index 8f48f1891620507e28106e48b6ae92e92a43c858..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1389 zcmZ{i+iuf95QhIvoI_KmX>)9nLQ7kyl<>LKR4n%0Vj1y^~m}E5}BO%QX+g z1xQ3lT<`!q6k^79632CJyyM+}|M_NS|Ni^^2f!JgWsnfakDP&FX_t=e>U}o@NnrC< z|DtP_ZV$B&y<4O23ao#=actxL-Kb}b1xi;7MaOoHp)r0bAdj4$Y0X8VBakvix@id% zLl>^yv1t!UFX@8;nH8>lg4gtCOeS=Yer4LGdm(VHgzn7}bwYcASHz*!CG$%vD~BYu zWaLp4NGh%F8U)HRQb==Dm61V~qiq>$$Z^z=u@0G`%vrgg^qysK2~JcLY6MP z@%vw1%08b!maYbhN;qvGV3Q1)@MHwG$Rj$b3>o;RMI~~`mvh(7-MDYOrB^}EBk0Zv zza2cHW+&+xN=WcLC`#}&yp?7_D|iz0<+0?kLEi%Xef9J}L;ZzKwLL{i-I=1I9#2tI z>(UhUAEZj4N#BO&TcR9ga;cC<6(!VA$2NB8{ERZQ>H!|o$`O+YFJhL27cmW!Has4Q z&UdjF&}g)>KBfLd={p5}V&A0cC6RqWkVH`7`@!W4Qge#5SH=Q6=k4wi%%0~^^;L7s zbbu*vfWyEm3{v?P0Xc{Td5kCbK$_IbD990|Q&xa*m$(B*r10kx2B}3m(vAgbLA?h; ygRMnDGy*wY0m4IKkT#yifYhTP&tpN3aS{g-dQtvpUJ%In3J`v?45E26IQ&y# zi5LC=f0Xf@w=I-X?!0Nwd(L^E^PF>@!k@ptegk-l^CTh?mimKRy;r{+4edc+w~~lS z$adAwYQ3kLo%)-0SJ!L_sSk!Vv`w|IOUN~+@s@2FW~U(`IUHF|IH?Uxd(iGmSZ=!D z?ac-D~eIem})fabZhj?Zg2RJl*7rYX+8wuV2fIZ*ef?}~t+E^M< z6l7#kln|}fZc>nNPevRGw$^1N9qYb~J4mr_Q$`wh*{aA`!ZNSNF!k4?ep|QRsqLQF z>_Ag{H>zdu*>%S3kH(PKHLDbwZLv9%{^gT*MegYK)l@L6)taxDiDcyAOjaReh&48%9-DUb5FKVM$aKSD1}%&;{WS(<)j@Rl>)l_UO+u}zYQ z(l0_B5!Me`5mt|QlXk?LltWpvurm}V{gBPRELQ03L~_WJ_bZ+Gc18J#Rb_vSHRWK8 zl5#l4hEj@+QC3RvF}A)_PL!$xn^X^k6GM*b0geq$8YU3vZclQn4};kF<_2_;er5~+j|*$*dD3KH3& za=QzN@C11R2RL+_@=s(VNMtXR$dMQ$k8@@s8$lv9BBCrH!V6>~$9PQBa%6Qfx1w^8 z&_O7nC-g7pft(7Ew{)JYsytPov#L4~J6=G{`2waYN|3@bg6bKbh0JU#Nbw|;;&Z%k aFVDnoiof5UP1=LvJJhPWVd5wQDx^15T diff --git a/7SpringGettingDataFromJunit/target/classes/model/Statement.class b/7SpringGettingDataFromJunit/target/classes/model/Statement.class deleted file mode 100644 index 35672145afd5071b0ac3417c19c0265190ddaee9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmZ`$%Syvg5Ir}Et;X1gt@Yg^C~ACk)14xS;;QJP(tR338%YyrQ~fR%MR4H<_)+4S zBver(Fn4Co+;h&{e0;vW18AX*Mh{-l?8Hv&4ZSeV!%!$aI!{hBaKe7`uJ`D< zv4Ziy0V3@Ln#6w4yk_T2AwM2O&%<$FVL1hpd!2aXhkbz^*NrA2DT?h>>oRQ+%bok7 zA73c64u13gn*Gas*rll}nm3`NXkig01^wW#y8t?|Fo&FERSOF+C97G;V_t0dp?5nO z_Po)((+jxNayxRJpzDl$sk5dL5B#x0IWsbQAlk0{aVut4vhL6IrEhkk$;kC?e32^5 zcuwUZu|s1ze}@iD95d6zB~OTNMx7Ijuo#zE1;h=WRr?hM`)G=?eLO|QKAB?Wg?$aH zj5TtBnSnL3tfPPpRIteku+#hOZm=R#qN|cj6tyH152^BIrhG$0FmtB-tyf5PsFS%t oy`4m-mQK%f%uGkN+4_(3#||myE;;wex&IHR_*DG1=}bfY3uY&OL;wH) diff --git a/7SpringGettingDataFromJunit/target/classes/service/AccountImp.class b/7SpringGettingDataFromJunit/target/classes/service/AccountImp.class deleted file mode 100644 index f82924fc15430402bb694ccb728c4772ed9a04c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2888 zcma)8TUQfT6#fpmObio2#7kN)prQ$0sDf1kq5;&>aw(!H+S_C@!r&wmlL<<%_F`}R zfUdUh<+*EBT-3F?`rOz4gZ_=KmVReuGJ#ar@`1^jv(MgV@9+Ee9{%|E*WUp2;Tr`_ z0&NweylCo1Pgd9MYS9@jloW&oS{JlMt;f=eb3K!}1w(ffLoSyca1r*J57ibwP z*m=XM#p@S{>2}f4bmwHSu`f9g`82o zrsXVy8IRezX3c12Q@;C~VQ1c~2(*tiB*=1jiIO);cExlA4yXL|hN~6FE*Rzhv3jA? zPT4HZ^^c@y;@E|xg53gJy=rR5RlJ0k1=KmiAz;;_WmXuqEtU4dR2|dm8RK4mGxlP? zf_;qOUJzJRbfA-)-eNX{qh#t=RdarEG%f>$=l!LzA2g8Qp0Hmjw z{`4(*;b|4G;*3C?m{6T=08 z&TK(u-QkmJgeq3jAH;`nrlYB=xN>sAfi*1Y?IbTkqT__8%%Q5wgGCtB1&OVv*;>VS467P4O1`B z6(vtG3@uU3g;1bL%6FT8T~HPYabujNI5&6OQmNK)oehc~Xz2Sv208egGxdw)sRUp3 zyW?8P@8#Hi)0xkgwfiy53G4~j&aq`0xb`7C<(1DL#Vd>@COCu)$6%LAu?Td%K?vQl9#L zvEel84X5{2e1H$Vrjo zQw+~O!KF-dvN;)F!{sL2kf%qJ&1)EwFAVvnzz^#`$vneuo+nre*!WTG$3B+bjRWYV zVlp^{OPtLUID(s;8V2n)2d=E=Eds%u{d(l;8m_xFmN0`GE@UNo%@V>W7H|uX?!dhmYtBeLFVZZpt#UI^$FY;(N>-vIgLI`V^P zVKu$1^E9zJL*&o$pP6$wPwYp~k4dg>Vh}l8Ao3ScMixsL!b6__mRL$A?znzu)GezUsOVbm1ZS{6UV*&2(KXBoeb9+NIwGJ`3$!BrA4O>ti*9W(sMPZ93hF2H@>jNC&C%VGZ zA;#*1gDN#wgUhq!0^1^OQo;#@{y{5cOB}l7q`r>_e!X*ky$RO4lnE!pdsp$1%-tI+ uTNw+CA0-JYV@VNsIVOS}6ZqWEF%gI$fiLjLZAS%PQZ!*+_mvy<>;C}0Ic1Un diff --git a/7SpringGettingDataFromJunit/target/classes/service/AccountService.class b/7SpringGettingDataFromJunit/target/classes/service/AccountService.class deleted file mode 100644 index 35e3c25f003aab30525fd89375f55429fbb7bee4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 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 diff --git a/8SuperMarketxml/.settings/org.eclipse.core.resources.prefs b/8SuperMarketxml/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/8SuperMarketxml/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/8SuperMarketxml/.settings/org.eclipse.jdt.core.prefs b/8SuperMarketxml/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index ec4300d..0000000 --- a/8SuperMarketxml/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/8SuperMarketxml/MydatabaseQueries.txt b/8SuperMarketxml/MydatabaseQueries.txt deleted file mode 100644 index 0c56009..0000000 --- a/8SuperMarketxml/MydatabaseQueries.txt +++ /dev/null @@ -1,47 +0,0 @@ -create database mydb; - - -CREATE TABLE Customer ( - customerId int primary key auto_increment, - customerName varchar(255), - customerAddress varchar(255), - paymentMode varchar(20) -); - - - - - - - - - - -CREATE TABLE `mydb1`.`goods` ( - `goodsId` INT NOT NULL AUTO_INCREMENT, - `goodsName` VARCHAR(45) NOT NULL, - `goodsQuantity` VARCHAR(45) NOT NULL, - `goodsPrice` VARCHAR(45) NOT NULL, - PRIMARY KEY (`goodsId`)); - - - - - - - -CREATE TABLE `mydb1`.`supplier` ( - `supplierId` INT NOT NULL AUTO_INCREMENT, - `supplierName` VARCHAR(45) NOT NULL, - `supplierAddress` VARCHAR(45) NOT NULL, - `quantityOrder` INT NOT NULL, - `orderId` INT NOT NULL, - `amount` DOUBLE NOT NULL, - PRIMARY KEY (`supplierId`)); - - - -CREATE TABLE `mydb1`.`retailer` ( - `retailerName` VARCHAR(25) NOT NULL, - `retailerAddress` VARCHAR(45) NOT NULL, - PRIMARY KEY (`retailerName`)); diff --git a/8SuperMarketxml/bin/MydatabaseQueries.txt b/8SuperMarketxml/bin/MydatabaseQueries.txt deleted file mode 100644 index 0c56009..0000000 --- a/8SuperMarketxml/bin/MydatabaseQueries.txt +++ /dev/null @@ -1,47 +0,0 @@ -create database mydb; - - -CREATE TABLE Customer ( - customerId int primary key auto_increment, - customerName varchar(255), - customerAddress varchar(255), - paymentMode varchar(20) -); - - - - - - - - - - -CREATE TABLE `mydb1`.`goods` ( - `goodsId` INT NOT NULL AUTO_INCREMENT, - `goodsName` VARCHAR(45) NOT NULL, - `goodsQuantity` VARCHAR(45) NOT NULL, - `goodsPrice` VARCHAR(45) NOT NULL, - PRIMARY KEY (`goodsId`)); - - - - - - - -CREATE TABLE `mydb1`.`supplier` ( - `supplierId` INT NOT NULL AUTO_INCREMENT, - `supplierName` VARCHAR(45) NOT NULL, - `supplierAddress` VARCHAR(45) NOT NULL, - `quantityOrder` INT NOT NULL, - `orderId` INT NOT NULL, - `amount` DOUBLE NOT NULL, - PRIMARY KEY (`supplierId`)); - - - -CREATE TABLE `mydb1`.`retailer` ( - `retailerName` VARCHAR(25) NOT NULL, - `retailerAddress` VARCHAR(45) NOT NULL, - PRIMARY KEY (`retailerName`)); diff --git a/8SuperMarketxml/bin/pom.xml b/8SuperMarketxml/bin/pom.xml deleted file mode 100644 index cebcfbe..0000000 --- a/8SuperMarketxml/bin/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - 4.0.0 - - com.training - groceryApp - 0.0.1-SNAPSHOT - - groceryApp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - mysql - mysql-connector-java - 5.1.38 - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - - - maven-clean-plugin - 3.0.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.7.0 - - - maven-surefire-plugin - 2.20.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/8SuperMarketxml/bin/retailShopDB.mwb b/8SuperMarketxml/bin/retailShopDB.mwb deleted file mode 100644 index f663073c3a9a102b7d82c2d910db5e9f29ad1ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7997 zcmZ{J1yEc|w=QlWF!(@_L4rfD5ZqmYI}Gmb65QP#f)fZ9+}+(}fZ!H1NRUAv=iGPS zx&NvA_TF7xd#&%Q>gw*bzN)npW#JKUVPIfTU`7pdeUlT^mhRvZ^biY}KwDC)~s(`IbEG?_e14%etQE$V4lN`?2bv~ z!(Wf&tX{%X`j2}jCus^J7O6Q*nR^|Av%apr>god(`T^2xjUVhaRGI%=%1%zz_WU?_ z*<#DX8o~m_iwGG{`tNeVD5F`W&qoqn`B@u1W!1mbWXJgNhvjlpl)5wZX9x9p0QdST za-*43`7_yj>-{qau?^($@*tN03eq5;QdM$lw&a$XMAa#oXzwYEuiS56etm5HY4CaD z{#jo=y#R!B%r9LiWS@z^Ca!jtZEcDsg#>io%uwF+rM0NeM3ZXg{fD3d70>56QVBSc zGFn}Bw&9~6*-5{qM(N3{+YD~7Gj0d#e@`@%)-^DTI{7|ej8g4VLUkD!R>(wu?A;4u>aDF{yi!vNiZrC zk2m|CAkhFvQUV@P9)UKF6$Q1(CeD@^!JZv6*Yyf~BArq&Ha?q5xaDshKwwGm~v@0aP zQZ#G4>~XJ1zsNal7jcEPv+aQEiH~Wv)-Bp?@*G1w^n1g*BzlsQoc%SMiU?gb&jj?j zzI0EqGQT8T=`NY5@_Mhj5jML{7}jk`CLy({`dW2wH7bRHZP~T?JZq>$^1NLS`O}J! zdG-AI{*_Deb={F3n|os{C>=~wr*u7ae`~umBTDpP>{H!L=|$iQmunkItK^A(T%zF| zYKu7+!^ZAHpu&9BSYfdhBGanQ%&GaCWn0;TdS8i^BB+4-Ec0!-4IfFdf_xBkY=x1_ zZ)R#p_F4289!0_}T zp{Rh|!~*Nzn-FQ9_|S6zB5P_ z@z*NIl2ft;Q5{I5!2Up(U~)uNthXYxz-}}dnR+D=n+Vij2?(q!k_Tb34s1mGZjJVX zlFOJi1aP<&->^> zXl!lCxyzTJ8+BeXs~Ivkk{qKCWIt;CN`~%uKE^a%bstd5rRbDrRxE=Tch=X{tc+Rt zYax|$i(?X6uI}Uh4 z@RgP{vc0)v%gqx-18Kv@A)U7F0E~~S@;I0n@%}{>Ozk7*ptGFVIX=p*QeUttvT8_kV8KeF4UG!VaaB>vm&vqqM_S#MM2`pxU{|8 zS!m2E*RaV}w3^y6Wj@R8ccS6xXdk|qSqHwCsY)0rfakLfnX(gk3+5q7jom&Jr-7un zZX1Yg##S-s0dCKhb0TRdVNZLe^lYj1n782Lw39|9Afy-PB(AzrEgw+9>Gt>~r>j;6 zE?=Nmrz z^EQ+skTnhDU%O71f*@5znTNVW#2|+1175aDM_e0Le?viUnOBiSDn_g*mVCWThd_by z)+pN$Xq{WR*b|S=>@6iBDat1Dt8T%&aV39nnq>-kkFKQbBO6?&ryKHyWG@Ok~!{AU~_a1~gP_5^u*y=asjqng`OuLX5)>Vx z{BIsAKMj|{U=tz&B8u}xjANU_dN6wP{v598g$UE}qr0IaAww%Z$tb{~Zs2LXAYUW- z_^xP-DD=tYYWr#nwZ-Qm5o*B30>iZwHBg5}i8PcDngKI-oiQ`e$}7)_pzn&#E=iSJQrNTB)rQ1uX`c{xMq-P+^D${X2=A%E-Z9b zk!kKX`^`zSOTS}&_TKM_kkoen8*{%YMwZ=dFDvu#w>#XRZBwkE)6{`NWP^$8!pRe5 zYX?VxPk?n_I2eQjnoic5Vle|1wRXNJql)cFjSlnuxa)_wPzoea_NK4`0Py5_Y=a>{OAk!qi9{-Kh+uI`%A~nN|pIspmxvkjdj8${X6y0(7Cy!hXyU zBzQl$KUWK_oiYu~aLW;D$F(nQij`3Yy&Ou|>D8SktkJB1{O!EX3uVh#EVf6ga@T}- zmm2Lf&YDRq44G0)24%|h#>cSDuAUS$;Mu-ujZ%1ZC`YP}+VEbjeHdhidv zv(lUD&?d0bsEiu1_e!CCuv=)YGMiKS8oOKW>XT)qw+gmjP#$hBrMsJA?9i)y9`XH| zm#dwfG+uV>;O1e}z!H&_(pf>?ph> z&J!QsPHI7uQy9b2@KgQhYI0kCa`F?Sv#8aLq&m-04!g`J%O6tqYtv=5Y~8W=UwDrF z7=JR|X1r7GBc&dm!6w1Cyq`%)6o#av65a^#;F|BtpbRwtd1n3IJglJ>`$l}-5(98) z|31{4BGlh0+EDnKK!54T=7?MY*^=4A5Xa&!!s9C1D~;>0NyK%JotMu{Tj{p6qSdg-xEpa>Bk7%zA5?ULo#wkLy z1@^#RsN+HiNu03Vp@-b#db&kLftrkR_uKN*@pKq+_y>4)OR7HDz!ef|i9fu?M!2pB zIB#p$$uUpMD*44m;jCYf(_u7?-$%g_+cIEYqq8b){f>>$S?Tb0Hf7eS|KbO|Y}yz% zbr)(*$nh8iF<#WcZ`tG^?~>nr5oOt1F<^Y_FBa^tJ%K4gO4pqdZ7K9VlEW3bN50MlN~wa89q_SCWTCcx*m*7DTsk!{k$W5o*LTKHFw#;-Tt+a@^urCcrz~6kKcl+ttr~I8LsjxMC;*E!hRFKnJTB#q~vm5*RhN(1V z$ArU4a+0~nhSN=Qili9K=^}aJl}uA*p{2*=Bxd#H{UvArtS_hA;7a3VHItM)@$8CH zbK_fcyOEag7+;7=$senas>Qi_(gC8%Z%B6IH)(Ux_1qR>b?uXHbt|#mi|{EA;tlwn zFh-t~_Hi^;CNjUMaegLAdT=<6&#SxUbdw&{BKWOro>{wJUXge)|B>JPE6Fz~S7o;4 zhUM90dJWTTNXlt+%gowzMp2bSRi}udQq9kl#;lmK@janQR35U4_gTzg^=aI7Wmn$G z)KzyfG<7u$UDTDa(h`|pf`(4Dp26P+aP%E+Hr1|_QL%V4&xZ3?8XL~1TE+A_ z%RVu)pc+w$0zg_DSyn6n3CFxb78652KERHfabG%d+NGK(RzbFwm$UZwt+rR)IM2%> z&-W&dMqRHO+bn7*@jjLCNlDp!VUYqo(Xh^Z4IyS%{fm)rX6e+p zPc6E!h^M<|GI^Q)#UvN4ogEpb2|;_LsSo&jH(=Ehs%+p z+YrWnWufmdV)RJK^k~5tT;232p14=>`AiWXiSzyI0=VqUOn+Q$bJ8J2Vdq%Z80_eQ z&3MmHAWG?fCYh@#a!p=7#}(Cg1X2znC$>&X9E$vSUUKsC6+upfs8q7@)jRV}q2J{9 z72qIqt~o=_6HikmC%+V*`3nvBlfH@v#N^|`m@=^A4FBXnBI<^M{X;}xT<7CO-%XX|Tlm@AC}*~> z;9u>6v>cq4O2vP{*PonhrP8AcW<9Xl@TjVDp#|+kt6R!GA z`V^eyc22y3SF(b0B}N_a*@=5kLiV$(bxYTgRzK_45A?cs4eV>C`BnGNU((TV1=;7b zWm>yOgJ|*SK z!_}ELEDhZMm@TXApwqze#412AL_jG2O_53*fPw|53Hq4N213YWqCUx+YT5Mm>FbAI zc^6hA;M}?7wip|8If_V*U~p(Bs@35Ysve+hmF0l^+$FVmj6bf{Eg}ue)rM- zF9#z{AKrJYfi9X9PZ;Ab5yIY`YF}j`|2|1Hf(?!nlYQMt`Fi{!rRh(pLUiZK>sU zalUf3$?hcj_-Osvf(xk8&ZUuTdSR!AC+>(f1-^i@-(2Rt(8c$Qi$Z*y*Ru#;)6YBr z-!2tqrC}*FwMC_Ia*o=s6Jws8E$VAq1yd{rPOS$_e-4!95guKC!w@6OM>eT(tg9(& z$FFugxgoW%?_D%uZh3AUdUlEF~(fN|&xnFMZhCyrHYrjh*<#nCpQq&PSA!p1IviIq0ceJwjKNbnsl0?&D>S_tmE+V)SaQm^!{q5Z|NTVrDy~+o{E)1;vA%m^k`)Mz}-A zKBl~>>`UR3p(`ING2S)x#fx)*WE4KrB%IgU*q+i|+Qf?>^Sw^Jg(K3;pkEZeIq!4Z zUPwXvG_?N8=VDUOek;su?4*21Qpc=cQ=!%^FFXnqzO(7_2hb9mfJomw9Co#!oxaSL z73JbJCg-^ojE0(cNrbQmD~F9x!4@IIL^x8jmhF|nSwj73&5iv=a5>s`yGuoYVbuKV zMr6|g%I#%RlKP0Yr%VwdUI;=Dy9|vHrF6AwUiM^3AJnQtz&NEvs-&`jZi)Oo93NI7 zkvS4I5Hm5KaHjsV1$QB^P}MriA7u$LL*qbU62I6&8)O*yU@3t;dl-FPD~BtlN?3v; z4pQdGcVaUc`$m}kD|iP>s9*~cX0Yi97|x@nBCWjK+GVWwu^WZH{GL1NXR(McstBI$ zkFMqnT#^$ih?!)TH8Ru9$h-Oy>2|=HH!c7;>Ep>mh$&4nf{bxcQcG40j@~Up!f^44 z3m{H$le7i3iALtd^FCilvIeCwlN{Iep-$9Z10EWPLQ1&v%P_yuusMg&RGUJ<|!h=U8s*R;3Y9->z7WcQdOUCQ3HZa@n z(tByLnAv|}(yr(Fa-r|mib%>dN!|Ip{b+*sxHiFA@^I_a8oGs-LT#ihLYP4%&*emo zEhb%H9$`UmJ{XYk85`_@GH)c3M2wi50ZW3{5Ws8NCpSx_oE-6hp8X9SE{TeT$JjnY z42w=WItu6bW#j*4um8$Ro_5FQda$nv3H|Tyf956D)8r|IUKZS;)wl1pYT3zk*Ri4j zp}>?R=jEPo*ueq^Z8QeQ5#LR1+#l4>p5P~ic29?Qeg1;jQ!5H!zjoh;%x|a14%63M zAzHY|!F{mwpy(Mo7!fIv)y;OB`!11`jd&_nDpn{V>N9WLQnO~6>iHZ74Nh+C{pXD% zLQhJ<)bFd*kbAAAU~hnGF&Oz_&^SJ%o8w!s3IR3dv@u8fC6K01{61c1V&9Q-b-1Ki zdM&`LEx&>2JBoIjv&ZaAtZH!?eZ1qr%oiFeSb36F;^hZx)6YiOT)wr>=BC`lE`}4S z+p`%-13pRx+%Liz62d~F&l6TY$B)WQgARtVTgH9wbikMks>SMQZn9p8lpkCU6W8uX z0=P_i3dh|q`&{bVDQVo56z9ZJ^%afa0yY&C2L{;K5bt zM=oFR-ctimp5Y^P2h0Bq{r*pRaQ;zRZu@!)L9YYtFL`h_cCvJEasI%{KU9Mj!~%es z=GS-B!L4<1!*)c0;Fh^|c_CxO(6of#-6~hFtzYHa=fdBy@Z~LY$nGKxxQrw{uo~?8 zSrzn`Z5j+vUMBt)(ao$m1KVN_Of1Jy)nc4bSPt!!qq;Vlnnq97!W#~LqJP~RMOj!l zT=@TgTlaNke?N@@e@*{x^8UmA-<9#dxG*q{0S~XO;=gqAAIAT#lK(Ks3I0Pf|4sb& zHU5X#^6o!~tp8^Id*}aQ3X%NJb5N8;MEc8z`1-zk4VZ;j?*%xKQ1!gssI20 diff --git a/8SuperMarketxml/bin/retailShopDB.mwb.bak b/8SuperMarketxml/bin/retailShopDB.mwb.bak deleted file mode 100644 index 0a1943774261ab38749a02db47e6c79070179548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8001 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 - - - - - - - - - - - \ No newline at end of file diff --git a/8SuperMarketxml/bin/src/main/java/controller/GroceryMain.class b/8SuperMarketxml/bin/src/main/java/controller/GroceryMain.class deleted file mode 100644 index bb7e47d8820ba93e455459519b84eba7b4ced471..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2412 zcmeHJOK%e~5FUq=Buk*BP|8cfR0yRUHU~ISgj5x%Dy0SjaoZHLH#HbG!Vo=SX>IDoM~-5?F;&y zB&HjlN=Kzmq{Z{75iSjc6`G@jfi)?P-{!cM(3mUc934m{+*m2w-b%gq+odD|1&0G< zjK5)ff-W6dc!?%PI2yD{ndd|5QF(Egp(@o4ctLTvptvweWqYZIOfzFWHFn(L{{SS# zJ62=tbWGGlAS*KCq&IeS65Zc|biy7;F2<^}k!DJA>8Z;zVKD%-^ET(GJ}o`GvmBf` z*NGTN9UK@}u+MVktLT_+=FW!|L{X-L$CShs%Bb~Af2Q70R>WA;TFt`NA_~_q@WmlY z`YFt+8`eS;J!5|OGF8)W#&erg*hi~d!5AlrnhL#cOyVXZo&vg^2Lnxd;_1-Og=d(J zCbY&>=m?r{whc3Ij=(~vca)1ur&tNOdbWq|^E6NU!tO9kzXaxchBLLxtPJCClXX9o zj==5SB+tYOJ^>+95omW__kIX#!X;9>F+uYG@3YnCtr~a#zRwbfwoPuic!EKJ#YUz2 zC?38BT*Z2$^bqu~P3auI*E?7$IJgN|fnZGoP{ZB~oW{0+qkA|@@E?7E=BxSW9kf3c ym|1KC2JoB1wq2s&Jj~;$1sC8V&IE=##~2pIFf0}fHN@6nv1l*DHT>6+;mTLh{u*om diff --git a/8SuperMarketxml/bin/src/main/java/model/Customer.class b/8SuperMarketxml/bin/src/main/java/model/Customer.class deleted file mode 100644 index a2fa1e0872dc56db88e1f9e9a26b981e8f8209fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2859 zcmeHJT~8B16unamEn6s9!B2z%zqY7tqP~d6gb1MX-7meT_?Tmqy)V7edJWh3&HMQ5_)a8!H6oNwL9I`g2tEn=p)RjDD9GrPRP52eyHjmKJe)L}uw*5b5Zmo?Ru%&Sq0 zkdG78@Iy~HLenS?xk6cjNUPY)MuY`rxH1hTm?yAcpPsVGOr71rpZ#|1x47D4 zI3|+;FCFIXGbNJmy?Bx5Lk=cj6939U0gCB5 z)myD}Eg`Z5)A*dh-Dj9Jfvfc$${#CpU!n3d%~`T!Nlr%AH u7#Z%3P{Ugz!~GFz*fBCZ7@>v_Mh1I?8a^2qa!|#$Fb8Y!7}q@B>%%{+{O=e5 diff --git a/8SuperMarketxml/bin/src/main/java/model/Goods.class b/8SuperMarketxml/bin/src/main/java/model/Goods.class deleted file mode 100644 index 8ce8fe4264185657c20618476068fb1a870caebc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2013 zcmds1+iuf95Sz!P{}f&ziXSh?+hiLkxL4p=*o9{1au zQhIR-iUb;|*JokB{l2%yT}`0WPyTg00>mLuNv&-ba00WP485b32>UMy)Kb95Aq%z8 zhXkzD{-A`55oDdf%qtNJ{f5AT?VKcV)|U@2^s|I*%cc~NmYhfQh5F;R6Lgc z0r#jYgGl&H3mMW#$)3-H_yx5p-2tZ_cYUT16ft+7^*LQl^IfH$gNu^qegw`n1s*Dn)E(??R9;Zi2w4{vc!-!iICy0FE3Qgl-#1(1`W37g+ zmWqzbYB#Bf=`i&87ZGx=MYo2rPBf%p{vj3Nf!ybm;U$CP3{y(@uXIk8%rqbi>M&P@ zD$Em@w@nnG%UTb{6$O!~~W)|C}hChI4kpX!W_? zoJ$Ado2utg*F@_` zS7RbG+XamYB6HOysPTrt>fny3O@L!>(N5QbwIheh2Q{yeQb4&l0rpW zB93t_b#W+TSONSVxC)C7 c$B=a5s2@xWT?0b_9$-uX9>ODh7Llv<7ed6(LI3~& diff --git a/8SuperMarketxml/bin/src/main/java/model/Retailer.class b/8SuperMarketxml/bin/src/main/java/model/Retailer.class deleted file mode 100644 index 006b70d6675535277d49adfb76011c99602bfa98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1708 zcmeHHO>fgc5S=w?KHRiv(iRGocFCp5B|elBAS8r9LQ0E7LnV$Idr7vncdgxZM1L6) zNO0#z@KX?DyP+wus#MAmSz7Oo-#)(?&6}UUzkUaRLugmPA+T$-??p^V?~F~D7pZ`U z-g|DD2)V96iNHqoA!Ksoy&Il!-x8?nOTaOUIDuCG3UXq#kfUb=)~A@4L7=%IP<}3? zurCN4bmsB%k?tvh(kqlxfjWW4)gNAKt#lREiSz4&L}nFEctCv>#Uf-@C`n_jh9Qs4 zQ|i_RV@?C^hfE_VX8t)FaoWz(Y|}t-L#47bV%8s1i&*|S#uR6I0Fz6_S^SfB;>`Zu{9P1_i8J2ijq?X6CC-kVjpPas^teM@TxlxF^w z)|?SL9Wu=s)HLRvs6_kx4Nf!yYt!^HJ6C{S8*sT^9B@a%7@T7Rw6TH5K;RC}Ob4G8 zC}+D$_Flm+RjA?WV)O~3Qk?q@RzJ4ZzChzghHc?mMoh}EiEBOEyRZe@cp`8Y?#(cy xxSV09fMKVQ;Q=&f7@Qj!Xd%PHTWB~aWZ1oh2Csm@fk&v@fjz7@Kne5N{{t5G)V}}# diff --git a/8SuperMarketxml/bin/src/main/java/model/Supplier.class b/8SuperMarketxml/bin/src/main/java/model/Supplier.class deleted file mode 100644 index d2d9956fca60b3da7573f5d4b24be29bf557d332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3388 zcmdT{-ESL35TA98KMsck)0VH$ZcYsVavG-nzM4>}~IE&E8%_ zUU=h?zXu52MeduBuQbu$E1PEbe#iA3f&2Cg3C^11}&zJOYie;($e*K(jmb z>1ie6{x*TtvCUo(D4rw)R(?oXtc5Z2^=ivvzUtk zEZ@dRSK)Px%QRMZl#;3jZ;~^Ae-mSjWO&R2>dR;-LZ*d`=}^g|kVnZDb?S!$P6O_T zOrg<``A=A%)6MJzH)$YwLSw0E#I!%48g2QHLp;4%TMSs+oPFC+Xy=|eu84+GX`1O% zEkf$E*q|M8I_Bln^P{y)Q7tK>`eeup8ks}=9~>{jl=OwBm_}S-P~t?Z)YnqcJT2W8 z6$wq_fPXJy9<=Gb6hU#*nOk^5MSLuuaLRBWgL#C4EDP1Cbe8z2gHF%f6#^OSRbqJl4dFQh0WfW&H^S*G_ZJpjt4XzRh7cZ05 zyJwbKrWZ{ak6P9Y*-3+H&X`S?QnfjfgR z<yAgY_ANDF++EEi1zNOK|Y42p=rL;ei#Qy~J63YencRaTbrP2p=xNp>IXF zz61wpMfeE+3lz=CV=KZ<_;?1ve0Tqy)jwGgK7mgsU)X1s@8fezZvJdV+J>D8(ian? bX^z^Eez72xU>EmMf-hko#|lbc!L5G*a}zwH diff --git a/8SuperMarketxml/bin/src/main/java/repository/CustomerDAO.class b/8SuperMarketxml/bin/src/main/java/repository/CustomerDAO.class deleted file mode 100644 index 48bfc15c9845f9548606ba601bd64d10932eb849..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmaJYx15PdEon{3l21X{kqsyJ*pWDneEg@g)7kpew5RO0A(t<+_Az4AH{{bfk4 z1o!@*UJ>I>RtZwY!M0}n=K0O@T>rWJ1>g-{2H0SDRazNmLg(?hn2Xq|!j#$>dl4Va zN@p@Cc9^haxrZDEt) z=4)jYA=Hb$>ooKXjXu)#e9qf*DuD;B&iLzrsrZDtJMvC-QSncCw za#JKpEs8r8wU{*YmNRwTlyI>)dZ4R3kQBdyBJd=1%%hMpljF*7UGC+!vVY9bni z%Fh5#>GSJsfam{A$D$jC&SzbgPWfG5W;;kM@968Rk{RsXH zLP7!w-uY38n|7fd3R;i`;=zeyU!Qx9@AY-QegE_Y03N`73rYl>Sh=l$iLkZL4p>X^ zNX9}-b=2BSVl4x%o;}@e2a#_AW<)Hwa8V7NO8j2uwJQ9RlS|>2V9D3Dn14pDQI*1?ptt{p(QiSo#Otqpl1hfv7@; zG*Ytf^B{gi?P_npsmEQPDKv_h`W=EKI@roMzlkm;|WE|E-Zeia7mc*J*%Jpy&Z5@lX#5ig3V{ zNExzztQB*SJ=X*2nTwmu^D-on|Y8cN{`P2(iu3U@9G$zqSr0@^V7*hM^rShD^`#zjZRR6^Ip<^zYV1_t5`n`4rNsow$p|xTiklLc zGL9{QX{VFr??$6tfolXl6yTPvIfYlTL_CYYW3f*n537F0jKGr9&Pf2&xJsZ%X)i|p zpPeF9sCXa`425Nv&ro|a zKl2f0zv5^K&f{|uZ2;Q>K5N6i4U4ce9J>I^20{tPMhF*k5TFjjFh2VpG-p#-E6?*{-#^!@+< diff --git a/8SuperMarketxml/bin/src/main/java/repository/GoodsDAO.class b/8SuperMarketxml/bin/src/main/java/repository/GoodsDAO.class deleted file mode 100644 index 3591ad50632e116638381682f9b68bb644cc05c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcma)4O>Yx15PdF7cC$@MNogrxlG{_tA$#Bk6%wL=A_aPAsKn9nTB*zKdSyEi{bfj0 zYVREQNr>?_B}H)HU|aM2X8h)jzyJJp0pJ;)#8_e2aaLxf&{cLS<|4DIHcoqE&$4&M zpx(u!T zg%O+m(X#ccr(OhWx+7hw53_Qj>{w8@484(&qBs^-hj;-dBF`J!8Mgbwze^1d_J$0r zR+VP17R0DOY`|Ha3x5r6{VO}r(jzmoQoYqd!`k(T8=qo4`eV*l@)gWa8VX10Om(zvb&KIa7xu%{p)Mdur zqXrl710Q!BU4Z*8g^nwQI!ck{Z41Knr82ZNsoyuK&AgDY&S_WRKZ85yCr+x}SV$Ne z!WM?=z~>4b?rEa}8^edTBcxEILes!=_>S<L{a92-fj~| zD6LE{Zer9>BPpZi(C1br8bZT^ZZ^46!r^@ww~P{AoWG(92Ll~y!`&Ejr`q9v*_o}O zIPz?w>P%QIn1J)+kcA5bW(w6_rEJIDYFJ5gRZO;5fm`RQ#;`aNn665jHMW@&;kfg1 z)a(gOV5!=-&WF_i3wD}0PV4L-FjuJjZo9HxtPq%g9e75#yy7*57HDoQERU^Xjn=Gc zH)>bYaE-wC0m^!JMNGb&KJy03;bBA-fo$O8@yI(an~if>=&-Efu55N;qlHSbl7^cE zKKyOh3}@H5U2dYGkL^XFc>L^7LxI4-0Nac5^!fUOLoq@0uM(#U#}$TYWVQR6=OWCY zsc6&GY7A0PLQL=EO2Iwsd7?5>@ZeZ))lN|aZ3wOLB&p$%rXdg50pT?U3H+rXjXhif zGGO67iSM&8j{oOyw9>)>Sf63y?eyeFnEu+r&UBD~xLJG-@rZ(pFo$;nm*6ro&Ua8( z@ZM!hhPW2n)fl#!ShnjxPhcDQBU?U}Ee{JPuqBSzZp3I?j%8bfTd}@cieV733`Mvd eVd!ayV{l^_60nTA6L1InaKLXl0(YSd_kRN6^=c~s diff --git a/8SuperMarketxml/bin/src/main/java/repository/RetailerDAO.class b/8SuperMarketxml/bin/src/main/java/repository/RetailerDAO.class deleted file mode 100644 index 2e9bede22526fc7b83aae092b562cea8c5e8e08f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmaJp2FhI%B&Z zj6-kr0t+r}St%`ovW8dA&NP<(8Be>@GvozIEgX?5AwP*Z^1YR=JziM!+}OZN5#$*U z6o6kU60{ybZH;4F(v`b)68Q24p2O`95y@~HHHK`+8bwGXyLM=Kj1kB*nHhBAQNY?IgaY1E9^X zokBCu1nx7~Y*HuikaEP-l;f@Po@@aHw8XyKy!YS{**5vR@ZdLL+Qydv diff --git a/8SuperMarketxml/bin/src/main/java/repository/RetailerDAOImpl.class b/8SuperMarketxml/bin/src/main/java/repository/RetailerDAOImpl.class deleted file mode 100644 index f7c1164e4816bf381a43da92dd255f8683721858..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4420 zcmeHKTW=IM6h7XB%h zw#mQfOaDnFB#`KPe^k}u*<7YzWhc?7s1gq|V~>wNpYQnioa4X#e*O{wuEQ-4Y6MzZ zh25Bmq`Sq&tgCn`wJ=icbl16IBI4?PZ*4VBBM)W?oX&+JmW;Y1ZMBaA@|@N0`mu}t|%o{9p;Jm`@=+W zEu%3X(on{!KvW?UnkqSnc&u+zzp=5&>5zvJQz(?O@MkvSbm@TO5*afvo63(?`|#GzVkDm2ZKA%7|o+=Qn%f^C*XrYPN^4>E1+ z2ue|w*j<|d7a;vc(Zd|nsgaaXvy*ba5eUS4ed~%M-$^;tQ)G^?;yTyJs?W{Jwoxp% z!Qtyyq~h9`Du9aER|%Y7&k`eIzM71M78sOzwx-W-7#NfMU@y!g$rgb>N|4-} zF@@lNm#TKD_p=l$XG^_dEs=Xu9X==UTXm$W37cs5zRXm}zr|}QfitgMQ1jcF2VW96 zk(2P?You6o7!PjX23uut;DOK@i-HX-{xw_xymjJp0-qXqP{$jxhwTRV_&$lf8~HeZ z{{oti7f(Hd(|_XM8oZ0|Ig|mIg){hW=4~I&!h6^w@IHKiQXgWw2Im||=N(8Fok$M7RJ;1%w*vG-2aH_}+OxcwmCq%;?O5>qP35S_RxuT n6)iopZ)ul~c9$lMuQ_yl;y|sz7dWQ|9k_|#I^uWXE4cm-#mP~x diff --git a/8SuperMarketxml/bin/src/main/java/repository/SupplierDAO.class b/8SuperMarketxml/bin/src/main/java/repository/SupplierDAO.class deleted file mode 100644 index 24ed59b5590e79703ef6d7f16a3591f3abc6a7d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 757 zcmb_aO>fgc6r3$4PTbI>ftGJ+RrQckDL!z63JFn=A_aO#sKjxzeoD94UTeLH=r2P8 z3GVzI?uchMB|+uL!Ml3nnWuTP@5iq%-vB(t;}9DH`=!%yrc556tA&ak6}B|qx{G)` zFN)NVJAQc*A`s}-gjD6T_+)xc+6y#~bZTQk4xAL_o6HBGct(Ted z`b>Hj(5He8tqXXpK{eK(@-bMGN3F4UCZ9>I@~X*{IaAe3a8o78)$<4(_J`NIT}Ot) zUAdf2p#9dA zCFefjc*}+WuMDpt5O6*>(cn7d>d6v~zM}b|7kx(iJEI%u@>y}f-*$~uE7`+sZXj?6 VJN3PbyY;_&^?4tU_zqa{;5SKg(-i;! diff --git a/8SuperMarketxml/bin/src/main/java/repository/SupplierDAOImpl.class b/8SuperMarketxml/bin/src/main/java/repository/SupplierDAOImpl.class deleted file mode 100644 index 9ed9304732e642d68d4990bba8962534455790e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3266 zcmd5;>rN9v6h2cfEeldWzzbdmMBRe6C}@lr6C#?_6iEb0{5jnn%HZCdnQh>`OiVP< z|Gt4QLp4adfcqHr2-Q-WMVe`XzxbyRbo^`&H=jEaVB~+lpRG8Oj_ClOFgG zNUlP!&Ryz+ek71pgaM6YSoOHCo>QxDeT!3)i|AM+doC!kSiL5n)*yT zTU6r&z7wI*=?Q3hF>zlp(NRoIZ>}KxD3qEu2GwVeIxI*StDLq3UKrfYN#a6TGeVN+ z5RTAP#Sxe2@IYx9I~YW?86^gU#7ZY4h@vb=yxk;D zQCfZNxG|`qI;4#1-H2O#=@2>rx?1N_3YVV%ThmemCMTqqJw?#2(%d&_IzQVko}!Mn zcv~y%LI2V%~ny=t7dl&mvF4q~RMFJz0&|%&NlOk#F zcXsP7p$N=WI!W?LD!^>r&s?{4eGr(n%SRO)?J1X+3uOWm@8duVpO=HWPy%%hM1tj)T{v7AzGL6+N`re2n$&9u_b-%7`6i!)~Ls`6!&|}y#2W*oDwh1HK9hg3bt?Pj8 wu7PdZ$aWuWqpu1EhB+g{EIddtv@J3*JTow4;34YHKoOqcJBK?~f=4j_2X}STssI20 diff --git a/8SuperMarketxml/bin/src/main/java/service/CustomerService.class b/8SuperMarketxml/bin/src/main/java/service/CustomerService.class deleted file mode 100644 index 6ac864e2d60b859daa0f718e12154b60f501844b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmd5)O=}x55FMqi*WS2s;>P_xh(N&3!F$M|kcM1B3I?}5*bVe3YX?WkuCz$9Nq$+O zf%M)VRXSR)_Hl4cr(12_kR8UaR&g0@GgQ42K&y+Bo|62mtr9jhjyVPCZ}`f zO^$ZF%p<5V*e(&7(6i*r^b)0K&^VTv(#oGOc+%^iGpL=K6eDOdXs^*{)*9P@O~&4T z)fSz}7MOBr@$x%!DOSA>@^qA>XTr?eWy0WBwtP7J8f%TS)GH88L&XJfC(#+Kv zkORrq05v+*Q>arOQFc&O<6CHa>%`xo^^>X_uuXr!0KJ{E5**%v=QMzbK(~x9LL~Id N@_z+yDb}dt^&fh}@SOkv diff --git a/8SuperMarketxml/bin/src/main/java/service/CustomerServiceImpl.class b/8SuperMarketxml/bin/src/main/java/service/CustomerServiceImpl.class deleted file mode 100644 index 056e7556eaa12b9540939001a2a21bb05abf39d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2393 zcmd5;L2uJA6n^f?(q?5FgN?ypc!NPJM0qJ(wo2F%bxX>E}WU`+~q!y>URGysbj+ z!3=@9Q`lEpD_w!BWa`N~sku?nfQK|taUvpSg_1PUsvGgxY*N3v-{&;sLBuo$B`o;B z4mn*v&SIU0iW@4Gr7^QXpIVIO9}}cK60L)#Q=sWcG>f%<)g>(gVW~+Iu91Q?R;Phg zn&!FJ8&nvY%8>VjM8qD>;5SPnI~?7lJE*3c!6?e4qmTm+LHgC*0oPiDoCZuf%3V%R z(zl8-YCk31ukKkbq6QF?P(Qf`{>l5#oSPt;;J6k zhN5I{yJKOD(<=+lwfhfJ4<(f*A+!G=DIa{8tAPje1QzR^Q$yuRZ#l!wb+7{8q;Z$) zeTE()u+UKfiw>9;u75mOwtZm;Jnl?nYiE-!0y8WOi|rt=S#O`EFv&=xO-h!rjKT8)sFjz$$@Xmod$u zx*kpC{LG3fjasGxYnNY*QOf73hQFs$9q`w}*>|~c+|U7-U1J_>j9k`vJrbzx&T!4 M_u(PFopulY08IzmPXGV_ diff --git a/8SuperMarketxml/bin/src/main/java/service/GoodsSeriveImpl.class b/8SuperMarketxml/bin/src/main/java/service/GoodsSeriveImpl.class deleted file mode 100644 index 610d7cc11ef1a9b27b0d7ffd8659bc383827141b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1871 zcmd5--*3|}5I&dEv{|8}Y-})on8HN+(mucwLr4c`_aY`$?|`MOXN5^6 z7rob72XXv4di>)lL5cXGDimQk#YqejHqN~g^sO=4kCtg_A|9PzXWQM*H>rHKl}o>XXi55M4=C80Zs?$XV~y6g+0 zC{vl(g7^fbU)xHBF)|QSv{0uhqwX*ker?+ssrD}b)Xei7M!-OW#9B9tMU1ntVKHe<5k+cLJ4bCsHafPlC zsInl)ZAJjNM&q_d93(t-@Ubv-Fa`@4!qYie4shz}&=3e_JPpi&rvBnT6c- z;|`toFb^J_YSTr?3Dh^Gwb&ANusv9~57>wCxs1PoGR_`UajfCnlYAe*{{sH|X8ki< z{f4_GxQ1f|F@R4K$9lf@;W{kjdy8-bQA=agGR_mW3a$&bn^V}lscb87`!{T*Uu<`# bu+2|pyZ47|OHJJaJxaIOUTeLH;K`6c zf;;chS3ry%ms0i0!8@AqZ)d;#c7FZ-_5;9kJPoiTFf5&pGiCDlTy0cblG_+f@f&NC za=uLhv;_9*->J%1@%!aDX)h2S>eS@MzY@4L8lMWZj%-2!Is&~b`q(+^LhK4$e8?S@ zHr-Gnwap5XDsOBq3ul)pW#tPQbrxqN6Vj=23>8X$QY(_fM%7RzmP(mhFEi!!ne

Dm7XeRs=O(NDoN^>5jYr4Z?>Ag9!~{!9c6Yy z4LBH0$2Uo))+G#p5)!F<1zJBdufXCNHU@Kjq`__~to4R1{%C-Pc0?!uE z;>+JgoAZFPXH7Nwj__kY`ikyPuI^xu*NOpu`*o$7v_9@}1A+S()bT+TnSNNW2YAA< I#XBDT0f-^P!~g&Q diff --git a/8SuperMarketxml/bin/src/main/java/service/SupplierService.class b/8SuperMarketxml/bin/src/main/java/service/SupplierService.class deleted file mode 100644 index 4d163d719230f2b5aa9c35b6ae097ee21ed5fe0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 785 zcmchVO^Xvj5Qg7gV8B056!|tqL4Xw)5VJ)Fc9^SxZttVQ)GLcnI3vNL4TQ` zpm%?iSTmUzm)t#cH&r}Uy!}@F`u*((fTwsA;6UKCbUMnE$)iiPR#8cAZ8Sx*RZ*md z+-wsEXbBwGM5^*-^nP(k+6#2fbZTmApvB%?N1Nk-qsL7){Ep7YLHHHDpPW6wG2ayfJ~!)3wXFl(;sz`P!}`5by-eS& N?|XR2Z;LDL{{gG_-Kziq diff --git a/8SuperMarketxml/bin/src/main/java/service/SupplierServiceImpl.class b/8SuperMarketxml/bin/src/main/java/service/SupplierServiceImpl.class deleted file mode 100644 index 6d0fe1fb4e502b829f4cfb74720ef36db9a6b0ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2003 zcmd5-U2oGc6umBGX|uA9j=|XYFoQ|0klF`$VhCwsAVun!M8~8(x{kMcBz9yw75imK zAmE)}!mmKwG%f42qD5#DJj5S2$H(Vh-)n#W`ROYFJb?`lN(5Tg@J`I6>KwBn>sVoi zl8a6+O_E3o)63^UoJ1a!2`r9K5mQH<-TtxQ&VxAu8-+*+%srP%x)%hlG+X-w$}e>& zJeVg?Kc#(Tj5ZaxMoK^4DI=_oh9aa~$BB%XlUmWl=zb((`;7Y4y@8;i;1M$jN*I67 zjs#sFd$CSKEi6^q(U>_tpbpXELxQr;pbc+l5ol*3+LN_8w~P~Q95o`*Ryu7?C}%1o z>Ua-O3fCPmZmBchf?9*hxiA_EREbWx=nXd>#{$H zqD*CCbK)sVzq&gV#>i02&_bQ2jJlIV_|={>QXO3iXq*k(Te}y~U8=OgyB6~F|CQ#0 z5A_;&ut;FJ**&d=+^@~7R_a|$i8pE77iN!P`V(k$HD}R2Gcucxjb%5GmcZj~p^D7% zc9Xz73&TmlUE{>%Ra@CrefU diff --git a/8SuperMarketxml/bin/src/main/resources/applicationContext.xml b/8SuperMarketxml/bin/src/main/resources/applicationContext.xml deleted file mode 100644 index c439034..0000000 --- a/8SuperMarketxml/bin/src/main/resources/applicationContext.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/8SuperMarketxml/bin/src/test/java/com/training/groceryApp/AppTest.class b/8SuperMarketxml/bin/src/test/java/com/training/groceryApp/AppTest.class deleted file mode 100644 index 8ae4c103aee1879fa39ec6f7039dfdb158c1d584..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3122 zcmeHJU2haO6un-;Zg#pQkOD1GzzzLK9+-V7PXtw35?XCFA*gIodGyXWiRp|zwLKB} zWk?{E_x^_dmWt!qU1cF#E!*;fl!x)y-UdT#9gjNdwi6o{gH z-p*KA8mGLmNB~TXiVyj?mDT-4@5o0W+*T#3AFXF zDu&Vy1ZoDO)x@MCeo6B^KH8$R(uAQp$RGl(nbhWR804ABDue}M0aVQ*uxtRp@BB*XM`ujbC z>Z8>BB=jrOX7j*tLzBcGHv`t_L&qcJIx*yRcx?F$z x91IQmVvM?i_er*^GuW=oWc%_hw(B$5Zp>g?pTX83j`a=fz_)le(OaXh-vEH|>=FO~ diff --git a/8SuperMarketxml/bin/target/classes/META-INF/MANIFEST.MF b/8SuperMarketxml/bin/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index d617fcc..0000000 --- a/8SuperMarketxml/bin/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/8SuperMarketxml/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.properties b/8SuperMarketxml/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.properties deleted file mode 100644 index f3b7de0..0000000 --- a/8SuperMarketxml/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Mon Apr 30 12:17:07 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.training -m2e.projectName=SuperMarket -m2e.projectLocation=D\:\\Users\\trainee\\Desktop\\SuperMarket -artifactId=groceryApp diff --git a/8SuperMarketxml/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.xml b/8SuperMarketxml/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.xml deleted file mode 100644 index cebcfbe..0000000 --- a/8SuperMarketxml/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - 4.0.0 - - com.training - groceryApp - 0.0.1-SNAPSHOT - - groceryApp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - mysql - mysql-connector-java - 5.1.38 - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - - - maven-clean-plugin - 3.0.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.7.0 - - - maven-surefire-plugin - 2.20.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/8SuperMarketxml/bin/target/classes/applicationContext.xml b/8SuperMarketxml/bin/target/classes/applicationContext.xml deleted file mode 100644 index c439034..0000000 --- a/8SuperMarketxml/bin/target/classes/applicationContext.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/8SuperMarketxml/pom.xml b/8SuperMarketxml/pom.xml deleted file mode 100644 index cebcfbe..0000000 --- a/8SuperMarketxml/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - 4.0.0 - - com.training - groceryApp - 0.0.1-SNAPSHOT - - groceryApp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - mysql - mysql-connector-java - 5.1.38 - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - - - maven-clean-plugin - 3.0.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.7.0 - - - maven-surefire-plugin - 2.20.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/8SuperMarketxml/retailShopDB.mwb b/8SuperMarketxml/retailShopDB.mwb deleted file mode 100644 index f663073c3a9a102b7d82c2d910db5e9f29ad1ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7997 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 diff --git a/8SuperMarketxml/retailShopDB.mwb.bak b/8SuperMarketxml/retailShopDB.mwb.bak deleted file mode 100644 index 0a1943774261ab38749a02db47e6c79070179548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8001 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/8SuperMarketxml/src/main/java/controller/GroceryMain.class b/8SuperMarketxml/src/main/java/controller/GroceryMain.class deleted file mode 100644 index d027b9bbaf041c6d4f606fde58cde6f413f25cf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1198 zcmaJ=YflqF6g^Y6Y$;W0Usimg5n3Ky6vRgnff`9oL6Q=p@zZoWmc`vpGdo52BmNKl zAVCx3XMdFOZVR!5jl0P_?%cWe%(>_O{`37OfCW@cL>O|mY-=T5S14;kNn5C+P42W! z7!1jMe!wl4w_Dbm#=fvM!|<}xcJvCvP@%ZXU{qvN#4&`C1fm#b7^^vLvDNh&LhbN| zD;QEWX>)g%D<{~W8V$YY_zd}4c=j?y4p0!h!u#4k6m_kfcB@?6HF1SuU8P#kK@?{+#;X{+LL-{0nX@2%&qbvmwNbM44>rSBF)nsV?9_R^u}#*sue zcvg-fTL?oDL!Ket-|jvMNBiqc(d6vQ_Tw10U)OpslF^$M=*<$iMeySsUP`TcnMgTC(Xz%NhsUD?nrB! zN~bA;;9fb7hgdYRz>x0M`}}bNkFZ1p1;y4b5o8pqJ^gXjA|0heL_*%DT40#3g>iHy zm5cQt{Urhh&v;{)4UG`aa&Wsfz#%ED7RD|4MVnpEJ7Qo}5>j78ubiN3k^{Y13JAdj zh`?USBDA7rqtT?jMKhy0I(>}T7g|IRr!hDN5>(${>^abUiFPBnj4`qVmp_wVl;-&# zNWM#@j*+R&q^_ReS_Hpvdy{R=8L0^~gL@~qKa3^gD`v9BH$3>4XPhE{;sxE3LkfAM zF@+4l%Jp(D_T%F*o{(Rh)b goodsList; - - /** - * @param supplierId - * @param supplierName - * @param supplierAddress - * @param quantityOrder - * @param orderId - * @param amount - * @param goodsList - */ - public Supplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount, List goodsList) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - this.goodsList = goodsList; - } - - public Supplier() { - // TODO Auto-generated constructor stub - } - - public Supplier(int i, String string, String string2, int j, int k, double d) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - } - - /** - * @return the supplierId - */ - public int getSupplierId() { - return supplierId; - } - - /** - * @param supplierId - * the supplierId to set - */ - public void setSupplierId(int supplierId) { - this.supplierId = supplierId; - } - - /** - * @return the supplierName - */ - public String getSupplierName() { - return supplierName; - } - - /** - * @param supplierName - * the supplierName to set - */ - public void setSupplierName(String supplierName) { - this.supplierName = supplierName; - } - - /** - * @return the supplierAddress - */ - public String getSupplierAddress() { - return supplierAddress; - } - - /** - * @param supplierAddress - * the supplierAddress to set - */ - public void setSupplierAddress(String supplierAddress) { - this.supplierAddress = supplierAddress; - } - - /** - * @return the quantityOrder - */ - public int getQuantityOrder() { - return quantityOrder; - } - - /** - * @param quantityOrder - * the quantityOrder to set - */ - public void setQuantityOrder(int quantityOrder) { - this.quantityOrder = quantityOrder; - } - - /** - * @return the orderId - */ - public int getOrderId() { - return orderId; - } - - /** - * @param orderId - * the orderId to set - */ - public void setOrderId(int orderId) { - this.orderId = orderId; - } - - /** - * @return the amount - */ - public double getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(double amount) { - this.amount = amount; - } - - /** - * @return the goodsList - */ - public List getGoodsList() { - return goodsList; - } - - /** - * @param goodsList - * the goodsList to set - */ - public void setGoodsList(List goodsList) { - this.goodsList = goodsList; - } - -} diff --git a/8SuperMarketxml/src/main/java/repository/CustomerDAO.java b/8SuperMarketxml/src/main/java/repository/CustomerDAO.java deleted file mode 100644 index f6c8f8b..0000000 --- a/8SuperMarketxml/src/main/java/repository/CustomerDAO.java +++ /dev/null @@ -1,11 +0,0 @@ -package repository; - -import model.Customer; - -public interface CustomerDAO { - - - public int addCustomer(Customer e); - public int updateCustomer(int customerID, String name); - public int removeCustomer(int id); -} diff --git a/8SuperMarketxml/src/main/java/repository/CustomerDAOImpl.java b/8SuperMarketxml/src/main/java/repository/CustomerDAOImpl.java deleted file mode 100644 index 9b565a4..0000000 --- a/8SuperMarketxml/src/main/java/repository/CustomerDAOImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -package repository; - -import org.springframework.jdbc.core.JdbcTemplate; - -import model.Customer; - -public class CustomerDAOImpl implements CustomerDAO { - - private JdbcTemplate jdbcTemplate; - - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - - public int addCustomer(Customer e) { - - String query = "insert into customer values('" + e.getCustomerId() + "','" + e.getCustomerName() + "','" - + e.getCustomerAddress() + "','" + e.getPaymentMode() + "')"; - System.out.println(query); - return jdbcTemplate.update(query); - - } - - public int updateCustomer(int customerID, String name) { - - String query = "update customer set customerName=" + "'" + name + "'" + " where customerId=" + customerID; - // String query = "update customer set customerName="+name+" where customerId="+ - // customerID; - - System.out.println(query); - return jdbcTemplate.update(query); - - } - - public int removeCustomer(int id) { - String query = "delete from customer where customerId="+id; - System.out.println(query); - return jdbcTemplate.update(query); - } -} diff --git a/8SuperMarketxml/src/main/java/repository/GoodsDAO.java b/8SuperMarketxml/src/main/java/repository/GoodsDAO.java deleted file mode 100644 index fa09faa..0000000 --- a/8SuperMarketxml/src/main/java/repository/GoodsDAO.java +++ /dev/null @@ -1,11 +0,0 @@ -package repository; - -public interface GoodsDAO { - - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice); - - public int removeGoods(int goodsId); - - public int updateGoods(int goodsId,String goodsName ); -} diff --git a/8SuperMarketxml/src/main/java/repository/GoodsDAOImpl.java b/8SuperMarketxml/src/main/java/repository/GoodsDAOImpl.java deleted file mode 100644 index 69c134e..0000000 --- a/8SuperMarketxml/src/main/java/repository/GoodsDAOImpl.java +++ /dev/null @@ -1,115 +0,0 @@ -package repository; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.Statement; -import java.sql.SQLException; -import javax.sql.DataSource; - -import org.springframework.jdbc.core.JdbcTemplate; - -/** - * @author Ram - * - */ -public class GoodsDAOImpl implements GoodsDAO { - - private DataSource dataSource; - - private JdbcTemplate jdbcTemplate = new JdbcTemplate(); - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) - { - String query = "insert into goods values(" +goodsId+","+ "'"+goodsName +"'"+","+goodsQuantity+","+ goodsPrice +")"; - System.out.println(query); - - return jdbcTemplate.update(query); - } - - - - @Override - public int updateGoods(int goodsId, String goodsName) { - String query = "update goods set goodsName=" + "'" + goodsName + "'" + " where goodsId=" + goodsId; - // String query = "update customer set customerName="+name+" where customerId="+ - // customerID; - - System.out.println(query); - return jdbcTemplate.update(query); - } - - @Override - public int removeGoods(int goodsId) { - - String query = "delete from goods where goodsId="+goodsId; - System.out.println(query); - return jdbcTemplate.update(query); - } - - - /* - Connection connection = null; - int addData = 0; - - try { - - connection = dataSource.getConnection(); - Statement statement = connection.createStatement(); - - addData = statement - .executeUpdate("INSERT INTO Goods values(goodsId,goodsName,goodsQuantity,goodsPrice)"); - - statement.close(); - connection.close(); - } catch (SQLException e) { - System.out.println(e); - } - - return addData; - } - - public String removeGoods(int goodsId) { - Connection connection = null; - try { - connection = dataSource.getConnection(); - String sql = "DELETE FROM Goods where goodsId=?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setInt(1, goodsId); - statement.executeUpdate(); - statement.close(); - connection.close(); - } catch (SQLException e) { - System.out.println(e); - } - return "Data deleted"; - } - - public String updateGoods(int goodsId) { - Connection connection = null; - try { - connection = dataSource.getConnection(); - String sql = "UPDATE Goods set goodsQuantity=1 where goodsId=?"; - PreparedStatement statement = connection.prepareStatement(sql); - statement.setInt(1, goodsId); - statement.executeUpdate(); - statement.close(); - connection.close(); - } catch (SQLException e) { - System.out.println(e); - } - return "Data updated"; - } -*/ - public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - - - -} diff --git a/8SuperMarketxml/src/main/java/repository/RetailerDAO.java b/8SuperMarketxml/src/main/java/repository/RetailerDAO.java deleted file mode 100644 index a57220a..0000000 --- a/8SuperMarketxml/src/main/java/repository/RetailerDAO.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * - */ -package repository; - -import java.util.List; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public interface RetailerDAO { - - - int addRetailer(String name, String address); - -public List viewGoods(); - -public List viewCustomer(int customerId); - -public List viewSupplier(int supplierId); - - -} diff --git a/8SuperMarketxml/src/main/java/repository/RetailerDAOImpl.java b/8SuperMarketxml/src/main/java/repository/RetailerDAOImpl.java deleted file mode 100644 index a15935a..0000000 --- a/8SuperMarketxml/src/main/java/repository/RetailerDAOImpl.java +++ /dev/null @@ -1,167 +0,0 @@ -/** - * - */ -package repository; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -import org.springframework.dao.DataAccessException; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.core.ResultSetExtractor; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public class RetailerDAOImpl implements RetailerDAO { - - private JdbcTemplate jdbcTemplate; - - /*@Override - public int viewGoods() { - // TODO Auto-generated method stub - String query = "select * from goods"; - System.out.println(query); - return jdbcTemplate.update(query); - - }*/ - - - public List getAllGoods(){ - return jdbcTemplate.query("select * from goods",new ResultSetExtractor>(){ - @Override - public List extractData(ResultSet rs) throws SQLException, - DataAccessException { - - List list=new ArrayList(); - while(rs.next()){ - Goods e=new Goods(); - e.setGoodsId(rs.getInt(1)); - e.setGoodsName(rs.getString(2)); - e.setGoodsQuantity(rs.getInt(3)); - e.setGoodsPrice(rs.getInt(4)); - list.add(e); - System.out.println(e.getGoodsName()); - System.out.println(e.getGoodsPrice()); - System.out.println(e.getGoodsQuantity()); - - - } - - return list; - } - }); - } - - /** - * @return the jdbcTemplate - */ - public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - /** - * @param jdbcTemplate - * the jdbcTemplate to set - */ - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - - @Override - public List viewCustomer(int customerId) { - - String query = "select * from customer where customerId=" + customerId; - System.out.println(query); - return jdbcTemplate.query(query,new ResultSetExtractor>(){ - @Override - public List extractData(ResultSet rs) throws SQLException, - DataAccessException { - - List list=new ArrayList(); - while(rs.next()){ - Customer c=new Customer(); - c.setCustomerAddress(rs.getString(3)); - c.setCustomerId(rs.getInt(1)); - c.setCustomerName(rs.getString(2)); - c.setPaymentMode(rs.getString(4)); - list.add(c); - System.out.println(c.getCustomerId()); - System.out.println(c.getCustomerName()); - System.out.println(c.getCustomerAddress()); - System.out.println(c.getPaymentMode()); - - - } - - return list; - } - }); - - } - - @Override - public List viewSupplier(int supplierId) { - String query = "select * from supplier where supplierId=" + supplierId; - System.out.println(query); - return jdbcTemplate.query(query,new ResultSetExtractor>(){ - @Override - public List extractData(ResultSet rs) throws SQLException, - DataAccessException { - - List list=new ArrayList(); - while(rs.next()){ - Supplier c=new Supplier(); - c.setSupplierId(rs.getInt(1)); - c.setSupplierName(rs.getString(2)); - c.setSupplierAddress(rs.getString(3)); - c.setQuantityOrder(rs.getInt(4)); - c.setOrderId(rs.getInt(5)); - c.setAmount(rs.getDouble(6)); - list.add(c); - System.out.println(c.getSupplierId()); - System.out.println(c.getSupplierName()); - System.out.println(c.getSupplierAddress()); - System.out.println(c.getQuantityOrder()); - System.out.println(c.getOrderId()); - System.out.println(c.getAmount()); - - - } - - return list; - } - }); - - - - } - - @Override - public List viewGoods() { - // TODO Auto-generated method stub - return null; - } - - @Override - public int addRetailer(String name, String address) { - - String query = "insert into retailer values ("+ "'"+name+"'"+","+"'" + address +"'"+")"; - System.out.println(query); - return jdbcTemplate.update(query); - } - - - - } - - - - diff --git a/8SuperMarketxml/src/main/java/repository/SupplierDAO.java b/8SuperMarketxml/src/main/java/repository/SupplierDAO.java deleted file mode 100644 index 1db9abc..0000000 --- a/8SuperMarketxml/src/main/java/repository/SupplierDAO.java +++ /dev/null @@ -1,17 +0,0 @@ -package repository; - -public interface SupplierDAO { - - public int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); - - public int removeSupplier(int supplierId); -/* - public int updateSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); -*/ - public int updateSupplier(int supplierId, String supplierName); - -} diff --git a/8SuperMarketxml/src/main/java/repository/SupplierDAOImpl.java b/8SuperMarketxml/src/main/java/repository/SupplierDAOImpl.java deleted file mode 100644 index 8fa1024..0000000 --- a/8SuperMarketxml/src/main/java/repository/SupplierDAOImpl.java +++ /dev/null @@ -1,60 +0,0 @@ -package repository; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import java.sql.Statement; - -import javax.sql.DataSource; - -import org.springframework.jdbc.core.JdbcTemplate; - -public class SupplierDAOImpl implements SupplierDAO { - - private DataSource dataSource; - - JdbcTemplate jdbcTemplate; - - @Override - public int addSupplier(int supplierId, String supplierName, String supplierAddress, int quantityOrder, int orderId, - double amount) { - String Query = "insert into supplier values(" + supplierId + "," + "'" + supplierName + "'" + "," + "'" - + supplierAddress + "'" + "," + quantityOrder + "," + orderId + "," + amount + ")"; - System.out.println(Query); - return jdbcTemplate.update(Query); - } - - @Override - public int removeSupplier(int supplierId) { - - String query = "delete from supplier where supplierId=" + supplierId; - System.out.println(query); - return jdbcTemplate.update(query); - } - - - @Override - public int updateSupplier(int supplierId, String supplierName) { - - String query = "update supplier set supplierName="+"'" +supplierName+"'"+ "where supplierId="+supplierId; - - System.out.println(query); - return jdbcTemplate.update(query); - } - - /** - * @return the jdbcTemplate - */ - public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - /** - * @param jdbcTemplate - * the jdbcTemplate to set - */ - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - -} diff --git a/8SuperMarketxml/src/main/java/service/CustomerService.java b/8SuperMarketxml/src/main/java/service/CustomerService.java deleted file mode 100644 index 7ba47d0..0000000 --- a/8SuperMarketxml/src/main/java/service/CustomerService.java +++ /dev/null @@ -1,11 +0,0 @@ -package service; - -public interface CustomerService { - - public int addCustomer(int customerId, String customerName,String customerAddress ,String paymentMode); - - public String removeCustomer(int goodsId); - - public String updateCustomer(int goodsId); - -} diff --git a/8SuperMarketxml/src/main/java/service/CustomerServiceImpl.java b/8SuperMarketxml/src/main/java/service/CustomerServiceImpl.java deleted file mode 100644 index 31ab127..0000000 --- a/8SuperMarketxml/src/main/java/service/CustomerServiceImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -package service; - - - -/** - * @author Ram - * - */ -public class CustomerServiceImpl implements CustomerService { - - @Override - public int addCustomer(int customerId, String customerName, - String customerAddress, String paymentMode) { - - // CustomerDAO customerDAO = null; - int addData = addCustomer(customerId, customerName, - customerAddress, paymentMode); - return addData; - } - - - @Override - public String removeCustomer(int customerId) { - - //CustomerDAO customerDAO = null; - String removeData = removeCustomer(customerId); - return removeData; - } - - @Override - public String updateCustomer(int customerId) { - - //CustomerDAO customerDAO = null; - String updateData = updateCustomer(customerId); - return updateData; - } - -} diff --git a/8SuperMarketxml/src/main/java/service/GoodsSeriveImpl.java b/8SuperMarketxml/src/main/java/service/GoodsSeriveImpl.java deleted file mode 100644 index 9c5e689..0000000 --- a/8SuperMarketxml/src/main/java/service/GoodsSeriveImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -package service; - -import repository.GoodsDAO; - -public class GoodsSeriveImpl implements GoodsService { - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) { - GoodsDAO goodsDAO = null; - int addData = goodsDAO.addGoods(goodsId, goodsName, goodsQuantity, - goodsPrice); - return addData; - } - - @Override - public String removeGoods(int goodsId) { - GoodsDAO goodsDAO = null; - String remmoveData = goodsDAO.removeGoods(goodsId); - return remmoveData; - } - - @Override - public String updateGoods(int goodsId) { - GoodsDAO goodsDAO = null; - String updateData = goodsDAO.updateGoods(goodsId); - return updateData; - } - -} diff --git a/8SuperMarketxml/src/main/java/service/GoodsService.java b/8SuperMarketxml/src/main/java/service/GoodsService.java deleted file mode 100644 index dc80c5a..0000000 --- a/8SuperMarketxml/src/main/java/service/GoodsService.java +++ /dev/null @@ -1,10 +0,0 @@ -package service; - -public interface GoodsService { - - public int addGoods( int goodsId,String goodsName,int goodsQuantity,double goodsPrice); - public String removeGoods(int goodsId); - public String updateGoods(int goodsId); - //public String orderGoods(int goodsId); - -} diff --git a/8SuperMarketxml/src/main/java/service/RetailerService.java b/8SuperMarketxml/src/main/java/service/RetailerService.java deleted file mode 100644 index 6f5b94a..0000000 --- a/8SuperMarketxml/src/main/java/service/RetailerService.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * - */ -package service; - -import java.util.List; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public interface RetailerService { - - //int addSupplier(String supplierName, String supplierAddress); - - int addRetailer(Supplier s); - - -public List viewGoods(); - -public List viewCustomer(int customerId); - -public List viewSupplier(int supplierId); - - -} diff --git a/8SuperMarketxml/src/main/java/service/RetailerServiceImpl.java b/8SuperMarketxml/src/main/java/service/RetailerServiceImpl.java deleted file mode 100644 index d4c856b..0000000 --- a/8SuperMarketxml/src/main/java/service/RetailerServiceImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * - */ -package service; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; - -import model.Customer; -import model.Goods; -import model.Supplier; -import repository.CustomerDAO; -import repository.RetailerDAO; - -/** - * @author trainee - * - */ -public class RetailerServiceImpl implements RetailerService { - - - private RetailerDAO retailerDao; - - @Override - public int addRetailer(final Supplier s) { - - return retailerDao.addRetailer(s); - - } - - @Override - public List viewCustomer(final int customerId) { - - return retailerDao.viewCustomer(customerId); - } - - @Override - public List viewSupplier(final int supplierId) { - // TODO Auto-generated method stub - return retailerDao.viewSupplier(supplierId); - } - - @Override - public List viewGoods() { - // TODO Auto-generated method stub - return retailerDao.viewGoods(); - } - -} diff --git a/8SuperMarketxml/src/main/java/service/SupplierService.java b/8SuperMarketxml/src/main/java/service/SupplierService.java deleted file mode 100644 index 7cb316e..0000000 --- a/8SuperMarketxml/src/main/java/service/SupplierService.java +++ /dev/null @@ -1,13 +0,0 @@ -package service; - -public interface SupplierService { - - public int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); - - public int removeSupplier(int supplierId); - - public int updateSupplier(int supplierId); - -} diff --git a/8SuperMarketxml/src/main/java/service/SupplierServiceImpl.java b/8SuperMarketxml/src/main/java/service/SupplierServiceImpl.java deleted file mode 100644 index c1d9f9d..0000000 --- a/8SuperMarketxml/src/main/java/service/SupplierServiceImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -package service; - -import repository.SupplierDAO; - -public class SupplierServiceImpl implements SupplierService { - - @Override - public int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount) { - - SupplierDAO supplierDAO = null; - int addData = supplierDAO.addSupplier(supplierId, supplierName, - supplierAddress, quantityOrder, orderId, amount); - return addData; - - } - - @Override - public int removeSupplier(int supplierId) { - SupplierDAO supplierDAO = null; - int removeData = supplierDAO.removeSupplier(supplierId); - return removeData; - } - - @Override - public int updateSupplier(int supplierId) { - SupplierDAO supplierDAO = null; - int removeData = supplierDAO.updateSupplier(supplierId); - return removeData; - } - -} diff --git a/8SuperMarketxml/src/main/resources/applicationContext.xml b/8SuperMarketxml/src/main/resources/applicationContext.xml deleted file mode 100644 index c439034..0000000 --- a/8SuperMarketxml/src/main/resources/applicationContext.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/8SuperMarketxml/src/test/java/com/training/groceryApp/AppTest.java b/8SuperMarketxml/src/test/java/com/training/groceryApp/AppTest.java deleted file mode 100644 index bf7d030..0000000 --- a/8SuperMarketxml/src/test/java/com/training/groceryApp/AppTest.java +++ /dev/null @@ -1,310 +0,0 @@ -package com.training.groceryApp; - -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Before; -import org.junit.Test; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.datasource.DriverManagerDataSource; - -import model.Customer; -import model.Goods; -import model.Retailer; -import model.Supplier; -import repository.CustomerDAOImpl; -import repository.GoodsDAOImpl; - -/** - * Unit test for simple Application. - */ -public class AppTest { - - CustomerDAOImpl testAddCustomer; - GoodsDAOImpl testGoods; - - @Before - public void LoadXml() { - ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); - // JdbcTemplate jdbcTemplate = (JdbcTemplate) context.getBean("dataSource"); - - DriverManagerDataSource ds = context.getBean("dataSource", DriverManagerDataSource.class); - - JdbcTemplate jt = context.getBean("jdbcTemplate", JdbcTemplate.class); - - testAddCustomer = context.getBean("cdao", CustomerDAOImpl.class); - testGoods = context.getBean("gdao", GoodsDAOImpl.class); - - } - - @Test - public void checkForNull() { - String retailerName = null; - String retailerAddress = null; - - Retailer retailer = new Retailer("Spectre Litt", "NY"); - assertNotEquals("Enter valid Name", retailerName, retailer.getRetailerName()); - - assertNotEquals("Enter valid address", retailerAddress, retailer.getRetailerAddres()); - } - - @Test - public void checkForNullCustomer() { - - String customerId = null; - String customerName = null; - String customerAddress = null; - String paymentMode = null; - - Customer customer = new Customer(1, "rama", "wardhaa", "debitcard"); - assertNotEquals("Enter valid id", customerId, customer.getCustomerId()); - assertNotEquals("Enter valid name", customerName, customer.getCustomerName()); - assertNotEquals("Enter valid address", customerAddress, customer.getCustomerAddress()); - assertNotEquals("Enter valid paymentMode", paymentMode, customer.getPaymentMode()); - } - - @Test - public void checkForNullSupplier() { - - String supplierId = null; - String supplierName = null; - String supplierAddress = null; - int quantityOrder = 0; - int orderId = 0; - double amount = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - assertNotEquals("Enter valid id", supplierName, supplier.getSupplierId()); - assertNotEquals("Enter valid name", supplierAddress, supplier.getSupplierName()); - assertNotEquals("Enter valid quantity", quantityOrder, supplier.getQuantityOrder()); - assertNotEquals("Enter valid Id", orderId, supplier.getOrderId()); - assertNotEquals("Enter valid amount", amount, supplier.getAmount()); - } - - @Test - public void checkCustName() { - final String customerName = null; - final Customer customer = new Customer(1, "rama", "wardhaa", "debitcard"); - assertNotEquals("Enter valid name", customerName, customer.getCustomerName()); - } - - @Test - public void checkCustAddress() { - final String customerAddress = null; - final Customer customer = new Customer(1, "rama", "wardhaa", "debitcard"); - assertNotEquals("Enter valid address", customerAddress, customer.getCustomerAddress()); - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierId() { - - final int supplierId = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid id", supplierId, supplier.getSupplierId()); - - } - - public void checkForNullSupplierName() { - - final String supplierName = null; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - System.out.println("supplier:" + supplier); - // assertNotEquals("Enter valid id", supplierId, supplier.getSupplierId()); - assertNotEquals("Enter valid name", supplierName, supplier.getSupplierName()); - - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierquantityOrder() { - - final int quantityOrder = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid quantity", quantityOrder, supplier.getQuantityOrder()); - - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierAddress() { - - final String supplierAddress = null; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid address", supplierAddress, supplier.getSupplierAddress()); - - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierOrderID() { - - final int orderId = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid Id", orderId, supplier.getOrderId()); - - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierAmount() { - - final double amount = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid amount", amount, supplier.getAmount()); - - } - - @Test - public void checkforCustomerOneArg() { - - final String name = null; - - final Customer customer = new Customer("johan"); - assertNotEquals("Enter valid id", name, customer.getCustomerId()); - - // System.out.println("supplier:" + supplier); - - } - - @Test - public void checkforsupplierid() { - long supplierId = 0; - Supplier supplier = new Supplier(706, "raman", "andheri", 10, 25, 2000); - assertNotEquals("Invalid id", supplierId, supplier.getSupplierId()); - } - - @Test - public void checkforsuppliername() { - String supplierName = null; - Supplier supplier = new Supplier(706, "raman", "andheri", 10, 25, 2000); - assertNotEquals("Invalid name", supplierName, supplier.getSupplierName()); - } - - @Test - public void checkforsupplieraddress() { - String supplierAddress = null; - Supplier supplier = new Supplier(706, "raman", "andheri", 10, 25, 2000); - assertNotEquals("Invalid address", supplierAddress, supplier.getSupplierAddress()); - } - - @Test - public void checkforquantityOrder() { - long quantityOrder = 0; - ; - Supplier supplier = new Supplier(706, "raman", "andheri", 10, 25, 2000); - assertNotEquals("Invalid order quantity", quantityOrder, supplier.getQuantityOrder()); - } - - @Test - public void checkfororderId() { - long orderId = 0; - Supplier supplier = new Supplier(706, "raman", "andheri", 10, 25, 2000); - assertNotEquals("Invalid order id", orderId, supplier.getOrderId()); - } - - @Test - public void checkforamount() { - float amount = 0; - Supplier supplier = new Supplier(706, "raman", "andheri", 10, 25, 2000); - assertNotEquals("Invalid amount", amount, supplier.getAmount()); - } - - @Test - public void testSetRetailerName() { - Retailer rname = new Retailer(); - rname.setRetailerName("Thanos"); - assertTrue(rname.getRetailerName() == "Thanos"); - } - - @Test - public void testSetRetailerAddress() { - Retailer raddress = new Retailer(); - raddress.setRetailerName("Knowwhere"); - assertTrue(raddress.getRetailerAddres() == "Knowwhere"); - } - - @Test - public void testGetAddress() { - Retailer rname = new Retailer(); - rname.setRetailerAddres("wardhaa"); - assertTrue(rname.getRetailerAddres() == "wardhaa"); - } - - @Test - public void testGetName() { - Retailer rname = new Retailer(); - rname.setRetailerName("gamora"); - assertTrue(rname.getRetailerName() == "gamora"); - } - - @Test - public void testSetGoodsId() { - final Goods goods = new Goods(); - goods.setGoodsId(8); - assertTrue(goods.getGoodsId() == 8); - } - - @Test - public void testSetGoodsName() { - final Goods goods = new Goods(); - goods.setGoodsName("Thanos"); - assertTrue(goods.getGoodsName() == "Thanos"); - } - - @Test - public void testsetGoodsQuantity() { - final Goods goods = new Goods(); - goods.setGoodsQuantity(5); - assertTrue(goods.getGoodsQuantity() == 5); - } - - @Test - public void testsetGoodsPrice() { - final Goods goods = new Goods(); - goods.setGoodsPrice(552); - assertTrue(goods.getGoodsPrice() == 552); - } - - @Test - public void testGetId() { - final Goods goods = new Goods(); - goods.setGoodsId(1); - assertTrue(goods.getGoodsId() == 1); - } - - @Test - public void testGetGoodsName() { - final Goods goods = new Goods(); - goods.setGoodsName("ironman"); - assertTrue(goods.getGoodsName() == "ironman"); - } - - @Test - public void testGetQuantity() { - final Goods goods = new Goods(); - goods.setGoodsQuantity(8); - assertTrue(goods.getGoodsQuantity() == 8); - } - - @Test - public void testGetPrice() { - final Goods goods = new Goods(); - goods.setGoodsPrice(8); - assertTrue(goods.getGoodsPrice() == 8); - } - -} diff --git a/8SuperMarketxml/target/classes/META-INF/MANIFEST.MF b/8SuperMarketxml/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index d617fcc..0000000 --- a/8SuperMarketxml/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/8SuperMarketxml/target/classes/META-INF/maven/com.training/groceryApp/pom.properties b/8SuperMarketxml/target/classes/META-INF/maven/com.training/groceryApp/pom.properties deleted file mode 100644 index 7963e99..0000000 --- a/8SuperMarketxml/target/classes/META-INF/maven/com.training/groceryApp/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Thu May 03 10:56:06 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.training -m2e.projectName=SuperMarketxml -m2e.projectLocation=D\:\\RamCapg\\JavaTraining-Capg\\SuperMarketxml -artifactId=groceryApp diff --git a/8SuperMarketxml/target/classes/META-INF/maven/com.training/groceryApp/pom.xml b/8SuperMarketxml/target/classes/META-INF/maven/com.training/groceryApp/pom.xml deleted file mode 100644 index cebcfbe..0000000 --- a/8SuperMarketxml/target/classes/META-INF/maven/com.training/groceryApp/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - 4.0.0 - - com.training - groceryApp - 0.0.1-SNAPSHOT - - groceryApp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - mysql - mysql-connector-java - 5.1.38 - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - - - maven-clean-plugin - 3.0.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.7.0 - - - maven-surefire-plugin - 2.20.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/8SuperMarketxml/target/classes/applicationContext.xml b/8SuperMarketxml/target/classes/applicationContext.xml deleted file mode 100644 index c439034..0000000 --- a/8SuperMarketxml/target/classes/applicationContext.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/8SuperMarketxml/target/classes/controller/GroceryMain.class b/8SuperMarketxml/target/classes/controller/GroceryMain.class deleted file mode 100644 index 3856cf9063534e0d04fbea9b66fc21a8d281443c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1187 zcmb7ETTc@~6#k~PY$;W0k#ZFU6kDoYyx@fr5-3VY7BFH^T8PB#wT4+ps*twkZ&3C?YX3qZl{p|;UCs?o$VaT}3H(Gg~(DtfUuFxmzT>2KG z451jw@aQDGY>Z zWf%ssom9jzL_*zNu6i+oF$<#%g@1{RGTC%@XCjt$(x?77wzP6+1c{KC9?7mb6awoP_O}pYX6^ELs zrMn8@lg0!{A+;h9p%t|cjTY@}niG z{v!BzoqPxhj3R?MOk$mM?qLBME2z~)Ej9w<5gwC(1d8;Nc}lV}gq*`O%5oA@^gSnu XHd&|f0#RbJ+NTC2;VazU@EX`&=1B(-X5h?g#~!EN|3%VOf4KgbJB zBqm3OnZvRyuq58>IZWP}dFGwNpTEC;18ATYMMxky9QVvYy*ZsYV2t|pSDkCK>j=cUuAtQu5G?_95x6jhra<<5nRDgX)~NqPAhpmu>-B7NG7*S> zG(Hc_k@J$83Phe-Bg;7xIMrI4`TrBCwgr?X6^kK^l!`dg0%5J%-UBhI*g=GE`zoT? zI_r~p!6YeP`xlTT)k+|C zHJ;jC^M%DeBo_3KdAGPj_J!%?C2Fx6t3n=Z{IX;_t&H2M!@7^p@-ONuPzfHD-^qA3oMq1m~6VV>!A&&v7f z|G@9gt>2)Nd3Lz|vSduA9#P3-S&Gdeky}boqeHhq-77$BUr7|A>ETXU3rxN(cf($v zk(#HANT1i+H>lx>Z<2^NNyPP0;4Y2=Kyu&KKu!Ze?s+yZK~}Au`|zCFHMfB98rj0* zK#=@8NGlNJelSRW-H|s0a=8VBUlD^m2m~pvgS-m_(SkvIPk!#mdjc`Gfbb(`kgD8) F{tw(>(jx!> diff --git a/8SuperMarketxml/target/classes/model/Goods.class b/8SuperMarketxml/target/classes/model/Goods.class deleted file mode 100644 index 9ba808e688bf9a1f14f846f4c747be2734b159f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1324 zcmZ{iUvJW26vm$yI*_iojsbSe>HNFW&Glj?nrOIj86m-`nQ~vC!7e}(C??+dflSn7 z#Ka3ffFH_u&f9j(Qf~VG>2uEco##D&{{H$6;21}FWCYene%~G1P2cZN^H2oz3+Iz# z51sMAe$%~hdx1cHz<*nP0nrjD$kUlKas^85h59_0c;mqffua<=n>pja3qA{|^89w< z^(aD|2;^RRV=rh37-nlZLF=U65l~(cmx?TO4H`BDvSz(gfWVf9HRO0#(U8Xt-rdqr z2=BHvs8|=+XnSM#Y&Pn;llM+{C{g{MGwe7MkI&Ji5`6TgMBKjS0(GDc+@KlvOogdy zb$abeF2#j?E7(RAJM{l4Rc6&~?9$3RCJ}PS zEE&0D8YZprvr;am*^Fq8X=VKy(<}(??5hNqD1D_&845u} zv6mXWC%t1Y8l+~%ob(}C-lT5oGD9^~UG&1;pYBLC335sx%@rX0$_!$XXW^vTa^MheGsG zWO<^%w5#+IgP1{_Zcp?saH-M<)=OtoBunKf^f%d%p)~`AR-M)~HD!>*27SPx+lDN1 zbRz;O!{kW_g``Zvlc~}!-XcO~P97&1h(N)nB-LDyN6L_=y6dwtBX~#hm6}52#SH`O z2R3hE+iR{7S_r8!;IjNNIX{sMc^5UyqM&JJh0v3)5 diff --git a/8SuperMarketxml/target/classes/model/Supplier.class b/8SuperMarketxml/target/classes/model/Supplier.class deleted file mode 100644 index db845ad5765629af0d81ec702592ba9a99553eec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2666 zcmbVMU2hvj6g`vJPHfhR>n0%~39gf-bvAAdZ4DHMKxk;=V){W)c!W)C%m&8}{y^#j zJn;xmJi<>v0wkGxOI!fBXsHHa?ial)~J3 zqg<)wjye|?HMi27K}aES=6vPkYEHeHdwgTS3E>~XVPX)4S#BnoE4Id638tfUSUqSZ#D+$y;( zekTlar|s5qGDFX@O%wSeVFI$M3(G?3Zv$|p7 z1v9#8!9rZ}u34DFJY_Gr^~$5p`AMbuk#kbhr_(rfYR68~m2Yn{)c)M%kt969dJdps zOQn(YXBWLKJO5b&X;QfqzopH+(oBr&{f{VD z_C1TUOEEc@do!WTfzYv-q>XE=pX{|aZ2t7vq~Bn2IY)3Vd)*IUq}Yak){i4ev7<(( zd0M&eijCsEqq-@V9cg-QnokMe5iu=CQ({>iX;>X;R~>0q9cfiYh*7yaq315)630ng z=6*A?fJLtSP4p;Z)_#s9d$o%dJKM#oeWQzYdok2S%3ch2k+zp3U2NJbvt4Zc#{6kq z=l^SZ?;1i#add?h)2y(86>M_mDz^By!>kN*Kh$iq*oMt7R@D6{J(7;5^hkP=ezS53 zi7O-NE38M-ne>>|z0DFEyqE@KjvdbG9+&xFdb`aiYhme4NKa|fFiNH>uU2;D!dtvfvG}y@>_nu!dKt z&#NqT3wOv=6guR|vRGfCJo6*EgFJT`h4S2M6v`99D3m9TQ7BI|QAiQ-j@Lwv(WpTF zKlfEIz;^=`$m2C{^B%R5gNbNs3|cZ8?(X~)(7oSJI4J2|82j1pAURQZLBKGx>`)ADh9f^EDfrz{-LgYQ%Cjs+5KG1K-uxYpa xUil%A&>@O_kcS%N3BS!PqIrj&PebfS68mWaG4q5Ep1BAgK6%I$-q+%k{sj={qf`I@ diff --git a/8SuperMarketxml/target/classes/repository/CustomerDAO.class b/8SuperMarketxml/target/classes/repository/CustomerDAO.class deleted file mode 100644 index dea0d980fc5ffac863d4e8982c26564222d77528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmYk1%?g4*6h^;M)3P6ez-O>cE?TyVA`k=@KEb4eDC)>K3cXs39-xPc#=>lKXK~LQ z&V9b_4*+{CEocOeU^QVD5p3L` zax~iPOL|k>e^(>YB8qX=9f*{zy^*<*T?3qzMHTI|(Eh%C~H7T?N}RvYbwS z@gTece_*IP12a4T55;g+mK~>YXW)l+SG)J#bN1YO_wRrH_zS>o*cu`Ni=OPbUB`F5 zV`Hn=_1%{Awl{apR;Q^UDlmU&9a%=xYB!AC+M%rb8m0vnCVL6!hjy)gAn9%SQeds@ zdJUu7@tk(!k!Q8!6W9B}P&P*0^`!A&%(^Hreb;F_{)WI*E?*UhZn?IMV+yl6W)K&c zD?4qu(`(hFcVN|;1W1&o}>Q5&8Yv_=?W~BC$m&{BiLM5`s4TlM(+R6%~xk2 z@RAMrp-Pj++JI4n` zbwx)OIm&N!IV;aUt?XW@w zQn|C>Mdfl^#~aEeIp(ry+n(%p)$v<8-d4v69`9MlE!p-fOhOEI1R~kIx@l3zU1bvU z-GTfw*ueW5-aA$3`^Q~hwsdUb9&hUQds}g9r-)t1yC!uBa&B1zZYa{Y;`$j8*v)mmek!WK|7caJWLwq_RUQ z>me1+V^k6W+#;574J#a##)U!15d{NZ;wu8G1brP)SPsdkbbf)Uw2Jkni!A4GB7eQ16|I*zzlRAD+3z?$eHX6 T9AKK0feR=Dv>iw?G4KEYZ&NoK diff --git a/8SuperMarketxml/target/classes/repository/GoodsDAOImpl.class b/8SuperMarketxml/target/classes/repository/GoodsDAOImpl.class deleted file mode 100644 index 573351abc105fd7fdb6119ba7817f0f193b1f5b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1968 zcmb7EZC4XV6n-XzY>3f7QV|48sI4RsSX=vQ1S>{qY$RGJEq(d0WXHHP*^QeGmQVdd z{m|ENPCchTpg*do&&;j?B*$Yz-$KE4S;_cBf?^E-=1l?OSHca+_v-cTY9~0||lL5EFrvZ3Wh**Yg`vV6vtxe>A&K zTV`b-FAJpi?A^weWB@Cm-eS%3n`XD;J8tu_Z?)w!&;P+xI%dQ3rFs9DHmwsk9oGp~ z1x5Mn9A2&U zoR%&9B;I5M$L&f#$UAP}<(sNF`F*R^liflJGsvr?=LOCePWvxzD~-!(yp4BAo7L$^ z*A|#9REwvSqlo1s76iniGAt^?lEBh1*ROD}NCykb!Lo8-s(_VO1$>wKMWuf|jrZ{Z zc?-Od1{S4o+Oj-`kMN0sk59Db=0P`*?KEzH%#V1zfSiON9nXA7z61J{R=b?S3T_!- z|Kv37C$H1^RMBauW(-=c>W;NE?w~>fdmVN+`(Y^8RT}B)R7tVmX-uCs*v_hhUal}f zp4AGEdX^hF!2xGSp9xjXj$pvir#iFe-ttP3?%vT#niBKO;FBP zgWt0}t!X`AymW|jrRNymIYjnP8gBY(eB z+n}ue95XxFONW@7>Eo^Jl|BmDtNbj!*l5wE7k5+fK9;iAc-hB$Hxj?$!|6mHH%osY zr#82Lrpp+P;7qfnFXAp{HJnu@#gGvkwY!UZ8e$#m_>7iHR;5g(QpbIK&U99gMUA(L zkO$a^68MQaacY@5fjSd7g8Yd1R64}CL5NEcLawI(Ud9|2a0LYouoSu+05k^x%?RKe z*;HUu)i$vefobxrAkS+sUq);)`~!w3E=>^EQ{k5}0h7hKro-n$Cxh_wQTT}{XpG^$ z!q-tyldCH4sAB&YZbIS}O~Br<`i~Ckzk_cg<5g-ax)Y_VC%P!5r7kTOIMc{{RV~w)y}7 diff --git a/8SuperMarketxml/target/classes/repository/RetailerDAO.class b/8SuperMarketxml/target/classes/repository/RetailerDAO.class deleted file mode 100644 index 2d83eb8e8d1687415c214d812431c5be629b2d94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmaKo%}T>S6ot>NwXr{Ht>E5;m~Nbf%Sb^iN+D1%PcSw^n386~WK!|fT=W5aDDfr| zD@5GQIrH7K_&z@0cK~iN@z5b$Se2VXJ7eF(vvN|W%FgeX9=e3_T5hFCWtNEL%UZ1* zVJPFc!3fuWxJM#qb(RF}X1XBsw_3eE850+Ti9h{@N~cp1>cRyKL^{c&E3G12wt%~E zV`7zxdLfuGKdJ^F%EFnAvV?Pg@yF;@yKR=5)BRXf=6R~Cv474Qs6HD+rnD>d$j(?+ vqlN9=R91Qf!U3xWx-9b$J$?{89C6?0wu1rZAx1y>nDfc6e9AxLnmqdgbHsEE diff --git a/8SuperMarketxml/target/classes/repository/RetailerDAOImpl$1.class b/8SuperMarketxml/target/classes/repository/RetailerDAOImpl$1.class deleted file mode 100644 index 35685c5b03170cbaeeed55e63e7cf11549d1c4cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2090 zcma)7?N%FA6x}zZObJ7YEqUCP-0OSvmKfk9+n$ANl>SUw;E|1$zo&0_Q!m?)p~X zdi&bC8R(X6dQ17$LalC(&nk!uBzN?ux@PN6Ra@QKF^xb$ufUA!RW-lvSx)t_r`OD9 zuD7f0RJIJwa6OZu{DvKr&0u*i@N|RW1$u*R%O9WNo5fc@nxoykq2P1^Js4EchonGHN*W9nEypZ1YFnmvPv5dlfwM)|(CrP~v*fvT8JDRE zTsYyq@mZ$UZ$@yI^gtJwNEJhF{3rHHz`1mE*$6CKD_VX)x5V|b=J64G; zC>{Q7p5BlSAE>x4A5XR&)*8AKSi!zj-cXUlJe#Pkyz5y8!^KleX(qRTn+iS_IP;Pv zNsx*>K4G8f72@c6IU18(db1BpxTRpZYlzDGeqh#A+{PVxyA5(Q5~Xdq8eeuKep9c7 zKtEOS8Hxl-T0+typu?$Si7DZ(g4K3CyThqilZ+{HWCPogxXUW;;dA0{2XEo#=qx2r z!hPv8FD)Oa*uU7tR^WTf$e;I4eu}wTf?`lRk&j5*lm@#5~T|aD=maUTA2O zP6m&(or5D-g@LY)6&URv;Qe}gh{uljA8mDpDhIl;yQ0@yW1l){WI8q;OCi9LjbN1h zTXq|sVcz1VB%&ibb6WO@fElII8KQXHV4t)w=l=uF0vF5RvSZj>-%fSK47S~h07cqH)M-``LD$VcNLfNL0_oFVKfrj%vk z)7*|4(%e~BF^ikHj63{EUFYc`=J1$yE^dTiC!^$BU(aDzNe}Z?C|K7<=6Shn};=VWJnnez8Bp@f0 W+!n`mCM0h?1b9YC)>Br8fByg-0t4&- diff --git a/8SuperMarketxml/target/classes/repository/RetailerDAOImpl$2.class b/8SuperMarketxml/target/classes/repository/RetailerDAOImpl$2.class deleted file mode 100644 index 7e503bcf47864792e6a19a700f2fe06e70de031b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2138 zcma)7>sA|87~LnNOo5RgH*Kx-BCQD_4N@=IP-+BPqv6(6TIj_NlhZITnMr3RTzn9J z_yYb_*OD&mT0VfUq)XjrCZtKFXtJ{S&iO9q+xxrl`(MBQ2H+ZYHN*tYd9vpER^WR3 z**h{YEL(bW`K3a&W{*y4hzs;>89PSSHk?X!X=6*8frd_j3D>J+{hDVvm8YIjmAkID zo!u&Lm|4^HBt!XiJ1EIuelPG0li>wAgH6jHo#30r*FT!0-L&Oc!HmH9~O}ElY zv8mJWjzIc2Udx7?RZr$kQ~G|>L7=N-RU9LzdjvN1zp|MwR!Nziovr(UTa{jJCa2-N zz(AN%m~`IrjD3}PH%5@qa7m!I-KiTFk?6r?yszO3DQ&`OmR&~@Ddty^K`Bs8LeR-V zgPO3HqU)RrmDVwi4CDARILa$uE_=kP+#)_(ol>jn@vM#se87I;BLyd5H}Hjm3V2P& zhxmwH(Gsvwjto|n!6!PV)QgE0gGF|+(p}e)Q@UR2mW}itxJEqP3?o<|Ju<4dHa1oz< z{rc4rpe~^ASaSEM&)8SZ(QVyodckp|H)|WdFMV7f2_5{Mg6Qj0%b5RUI{52?qNj(_ z6k_}W-DBxrppQLA?@v6%@TR&8HOjk$ex7yusM`Sy@-HU?!;JP8JV_ z!j}|Nk#3VZi#I)p{fQn8H~xUxmnU^wRJ2m3igAT^su-PP=>u%5^rJ#_hQxEc!y5&v Y8cI%sa2GY6<9G%iJCsy$RjK&-2Nv8L&Hw-a diff --git a/8SuperMarketxml/target/classes/repository/RetailerDAOImpl$3.class b/8SuperMarketxml/target/classes/repository/RetailerDAOImpl$3.class deleted file mode 100644 index 5961d69fa53356cb0fc9e186fb9bea3e38e901b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2343 zcma)7?Nb|N5dS@aawR-1kpgP1eG_X!ng+#cHAowQ+SCATQ<389ad{dJE_dnOg_pj+ z*!t2L$MIul{Ny-(RcEAwo$(LwU(!)`??Rfi6ip_uxBKiqyT9M=-XDMe_B((<+|>{f z*yXB<UpFn~j%Fuw<%-oesG(ILHm@)0X-l_D>B-r7W%wG}1O^G}aR9Mca?&|^v;`sm@?}GKP;7lS^R(;b-=S|Nix9Hfip(?)V z*q(-G1$ydkh12=EO~Z2n$&GL=>Q0)k%o>LByt;!xd%-N(x?gpvup|E~o1uJ}AhXhi zYNcYC%FPUCH0%-B5u_9(opoJ(g)@(0H##-!7ueqH6vaMtcHl+4q~QQTS}&(gyF?rb zqOzp?ob3})@mwOuZb^xQND*P4^4D|76~hBl95O92fS0K>axM7WUxXKVho}Z^7^*WI zZcyS?944L{!c9;+vd`lli7EDZUE&D)bT#;7i$#~9W%HX78O|_9=F?T(_Dz3f(k&{N zjc-W|voT7>K$$CY(#IsScsopb)TsuI#wCxk&0j+2pmvSp_l;xU?_a!=r-h8*Gh z5Pb$-;$7sah4msK(^N<}ftkciJ0@^S!(`KZ7FIl8l_gH&40$_M0=_3i!F1B62uns( z>E!^rvl8!tMr0cUUF!yBf(D0}n#PQVbL)N4>@M*EW1#W$`HL>YES$U5d!81XTU z3SWGjX>%n!aCh1?*Foho0uh%sL3apS^JLROi`bz|LTlrQ3xn0oV?vYP+q`X7D(f3( z|05wbm`kFj;OoZ1xL&EPsrY6i-msyGUxDiqJ?JH53QpBE)N$JERM#Ur{t!2wz+9M3 zV~G4li)gb2KlI-f4HF`rW42+@8^B_7Vs!^xFavi}CA$UVAO{YX`&ALDCUK=nF*qlfOdt-^cc!=_!Jz zSQl8>+eH^WOY&ju4s_Fh8Z7iuw5LgKqm$2ICw7q>!SfthoF!W;J^%0kyU*Rn-tiyt z?E~y1@r8+0vULr85v-y=mE5w1LoB|MO19O+*HTHXcHoUva%)W-N+n}-;wT>;Ihb0* zI}yD93&vBcD6FnaAFkrlP&ZqbRNXpPmljsxB-e03;NCwA2Y;eOTZ5uc2Bj_$RLfMx z3Ke^i-T{}8z-8LAS8xRW?a%j6uwkxFRK;$oUXgKjFzK&%H^{ZrPM4fp& vKsx5Jtv|VnYg|sqVOzi%EtWvTMcxRcn>DU(QQEA%O-X!3688nOOrL)NJH}Dj diff --git a/8SuperMarketxml/target/classes/repository/RetailerDAOImpl.class b/8SuperMarketxml/target/classes/repository/RetailerDAOImpl.class deleted file mode 100644 index e1a7b624a825047f2a940485057483793f4f5baa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2523 zcmb7F+fv(B6kUg#jBz1#0!bkk(WTq%1`vM zPi?=T4{fIB>eg*pAd6v{170Z-Ed6x9BlS^+omgUKGz+ks*TBpO43`ftoycIq;WK! z$oZw#Jk!#1rt8sUFmIMBhF5c#X|ls$K366_OZOwBGwDGHoQ*(3D17WO8ht@qC(98m;5N^tUGs>o-ZG}GKW4vp zj46#WGu^>G4R=YW&qn*}2=1%0G&Kr5tD+%$@hE=i7XmX~;d{x>Sf{Wo&XF!BX*h4!oPxZ^FA4jsQE>20nN_Vp zy|R^xbQUecb)}0*4$fZw`}yxt^ON7F5brtjc^%@D&Q);jPrg9p7vA(>nAZV+^DIVq zAE_JQ6kg{O`vj+Hb;h?H^@H5<69A*h-!K+E_Y&h940rwjm;S<)pMAr_pjTUhjy8i% zAQ+GnRj(pPQ8A4a z-_@&|@c}vX>SfH-OU!OW-+qDX69>3)fDa!1ikqneEUK#ca!D2a;AqjqzV8!qw~BMf z``Kglc+Ko7JR~kbn+bkH9x=bbatn@?E;t?^i(^&cSnH0X${f#$!#M`W#~nDJ@qwM&xp26Ze&Yf|t M>bF#1sG0x!7wTM4wEzGB diff --git a/8SuperMarketxml/target/classes/repository/SupplierDAO.class b/8SuperMarketxml/target/classes/repository/SupplierDAO.class deleted file mode 100644 index 8890dc8250e1fc4cd93a61f8f310e3fde746947c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmX^0Z`VEs1_omWUUmj1Mh3B>)Pnrt%#!?~O8wx{f`XjP)FKy0e|82IMh1bb#Ii*F zoW#6zegCAa)Z`LI2JXa^6qqtb25k*bAB39VlA_GKbZblzPfr(3Peum5qSV~{vQ&h2 z77b6ZcxgdOVhNJC7&c=;D!GF5ON)|I-7<4hfv$rY1az(*$Q5ji42%rSK)*3CFaurB a%D~0|@&!8s2bkt$-~!43y#OSc70DvyyD*;pvpgM7vs_d+xdSp4H#~{_z)pTlg-4A%QEdY&o9g zJMNKIZMRwtOS?1`?I3wi=m0#p6=h3GqNt6@qviOWoF zH9hJ2IjiYAIWKB{?$BtorI$}3i>s=lYXXz`vpEVo3UNJ+8RXa#qt%j4lbm_Ia0VPD zEhTY7KrE`jH&o!80!xFaUqUcXf_X(yPy|Jlu>7)wi^LZcemM;dZwVxQC+vj4rTp2* z(kR}>I|Zk35-7g971OwbyKH^CMbpz|1E-|(PIO1Bb3TFx>F&WM zy{_DO+9dSdco(x_ny&O{)bj^zqv>1z(UwaCu?k16iZgE5PP@sTh_b-QqqcO91jbxx zJBP9w*^2js&d`&1Brs>nhV*6bsq5H%-#vdOUD2=1b$l0Luhf(QN z{D6X4cc7Q+F}Y(wz;()-p~zeyGZ&KdWX?u1Cpd-2flPrawxgs!60JmPLDJ8ewBO+` z*f7<7O4y_X_BoKi^^Amh3MgQXeN*EthLk-CTCY=D)Tx1_^RC1A*gsGhiZU}9z2Z-R{9{s*{z;ava# diff --git a/8SuperMarketxml/target/classes/service/CustomerService.class b/8SuperMarketxml/target/classes/service/CustomerService.class deleted file mode 100644 index 4abdab7446c18526f94d5a4291ad01d51e58515d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmX^0Z`VEs1_omW9(D#MMh5ZX)S|M?b=4N zfeK3tQW8s$6mkXUmlh?bx@G31GBSw341l^^59A;=Mg~R(W}rVA7?^<`VP#-r0C|X= Sfdfo)f@q)$E+EOozzqQUkW2*t diff --git a/8SuperMarketxml/target/classes/service/CustomerServiceImpl.class b/8SuperMarketxml/target/classes/service/CustomerServiceImpl.class deleted file mode 100644 index 9bc494a4cdc2afc9a024d11c09d9ae0e020bf46b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 921 zcma)4OK;Oa5dNlqrH)D4KM06z*byLMWnP{AQPvy<=Tv48&h{sX`ZJaw={@Fy~##i8sSPbWo|$b3-VgJe8% zU=mg@#Z2@@BE9H+7+%V-a9|VGZ=n(F*KrybM+BqYIVYIMStMN;sC#fwBdqk}RGv`FML<9;5-h6N>5*>KKgr94Uc@sssoN)H~SbR!kTAc6(2o5KGD+)nq zF?*2b@_bc7UI@Ock8P~2n diff --git a/8SuperMarketxml/target/classes/service/GoodsSeriveImpl.class b/8SuperMarketxml/target/classes/service/GoodsSeriveImpl.class deleted file mode 100644 index 6dc6b303d5c8e0c1b4c9744e5aea571891cafb9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1131 zcma)5O>Yx15Pc?THr=H3EB&Uhl&=Iza{zH@5fUO$B1J7Ir4mPX*G*hy*DJ3RsXu@V zzl95@3XtH=k3x){NUfS8afm%LnfK<+c=q?7?>_-N!Ip<>3`?2N0~w0?u2NCf7FrHO zGfsOR@(eR4e8B5Ho^*{0s}NE6S2~kF+_~3NE0lRD5$( zx<*O@Lutlpb|axF1~Ln*WS*uy8QL8Qj+J(KTzC4hNK6)3nwn3K(N=vOiZ{}3R>e`A zZ}XNNA#Q_~lYSGl|9QG;E$N&juTD3kd*b04{I6tOLz&LPFo-F#%Om?brpcpk1G98m z@Mp>^(p_QOg_XkE=K6B}8|Dgl<}G+%C_dy`bYQ%6e6=JZlRf^@DwT2tiK#uV1xJlJ#$-YJZdV~pFn^xCTidv-q0~;Ub?w;ZPFY+#S aHh-Zre^i~J_74V{%^1V#l?S6ot>NwXr{Ht%7S8Lc4JmE+cLPr4SIz6O75FOi4RsGKufz!Uyo7#GBYr zq2g}NopZiBbKXB*-vC@=5}`vlFWJ>5WA(&dn}S{Xr6Y6+a!PLeEsjXbb_tFvJEL5;<>#F%; pk3iUyZh@|pw~wA22oVls-j`_y1JOf_zV)H#qhI=1ZpN+iR( zk5PunW54TrfgiQJy~AVCFnNqI%wKYhp{P@!m%d_HsAu4)PgBe?3K0Ec0sCL{5-6CMh^?;i$&VXCGYesJJxY2!3GYK~;guw1)@ zkrhJSihi@1No1HV)k10)c=b-Z9Y~=ow2 zG^{xOQR$@A*R4({A`|mc#2{^~wA+b|3Wc_ctL0u{ z$H>5|$=Hx9g}Q7-zUgRkckN=ucIr|FQ`xB$z`$MPFM+rv)@JV&eZ12Z3{=1#Hji=shD`66if63_=JD4E>{-Apz2 V409~gGkEL*QE#Z`$BCRLe*v{05gq^l diff --git a/8SuperMarketxml/target/classes/service/SupplierService.class b/8SuperMarketxml/target/classes/service/SupplierService.class deleted file mode 100644 index 4f0960e2437ef99b4a64362a84ba5d4959aa03bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmX^0Z`VEs1_omW9(D#MMh5ZX)S|M?b=Yx15FICJHrZ~{57;y%1YACoHf=y44lSxw5s+32?IEQSQZH`Sw63!2#c?9_ zH}EewbK!&v65RPwi1F?wEh<$M&x}2O^WJ#&_n+@S0pJ-twID;FHsoq7`n=s6MbSWT z)k|V8hz1tq2+W_dF>4Q4c--DQI^}(BL7u?UHP;B_Uy4xZZ35Xw^MF9^mGrp{S(tUe zf&ziLt_b<=C^+J3pB)W2fyJ)uv%vvV!o=xjPM?S&fqM6vLWbWKfm!DJ6Xpcg8eaE; zZci%_9&cUU@w`scn}r+TT5yvdd|&Y)3MqXYu}}+rwx@iq2w2isgPCW69EBReJE&)J5eX2ecK=Tegen-b-m>%Nt%I@1Xj2sdH(Z zH;hVH0US;I&)`RpLyJR+YZ0S1T7q_F^&8k<(aC^=Yd+b868cW+mthVg{5W6%S9AF@ z!q{l5WV5hbsI}JJoI6v^pTlASUKHKp7d%VwDsgECNtCd78Gj{k5zpWs##mL{Gx&%G z6lYl$F}{mA6;!npb6ZXFr`(*BTLv>sC1W%22(wLlA5SYi$Jp?;e?a5? aBKEfR3!}@ut;hIDZ|xMH;B%O)Cw~Ds4*x{} diff --git a/8SuperMarketxml/target/test-classes/com/training/groceryApp/AppTest.class b/8SuperMarketxml/target/test-classes/com/training/groceryApp/AppTest.class deleted file mode 100644 index bc657ed5dda84268cdfe9e0f18f3f50020c6d3dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8771 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 diff --git a/9SuperMarketJavaConfig/.classpath b/9SuperMarketJavaConfig/.classpath deleted file mode 100644 index 698778f..0000000 --- a/9SuperMarketJavaConfig/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/9SuperMarketJavaConfig/.eclipse-pmd b/9SuperMarketJavaConfig/.eclipse-pmd deleted file mode 100644 index 8c5b448..0000000 --- a/9SuperMarketJavaConfig/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/9SuperMarketJavaConfig/.project b/9SuperMarketJavaConfig/.project deleted file mode 100644 index 1100f0d..0000000 --- a/9SuperMarketJavaConfig/.project +++ /dev/null @@ -1,34 +0,0 @@ - - - SuperMarketJavaConfig - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - org.springframework.ide.eclipse.boot.validation.springbootbuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.springframework.ide.eclipse.core.springnature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/9SuperMarketJavaConfig/.settings/org.eclipse.core.resources.prefs b/9SuperMarketJavaConfig/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/9SuperMarketJavaConfig/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/9SuperMarketJavaConfig/.settings/org.eclipse.jdt.core.prefs b/9SuperMarketJavaConfig/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index ec4300d..0000000 --- a/9SuperMarketJavaConfig/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/9SuperMarketJavaConfig/MydatabaseQueries.txt b/9SuperMarketJavaConfig/MydatabaseQueries.txt deleted file mode 100644 index 0c56009..0000000 --- a/9SuperMarketJavaConfig/MydatabaseQueries.txt +++ /dev/null @@ -1,47 +0,0 @@ -create database mydb; - - -CREATE TABLE Customer ( - customerId int primary key auto_increment, - customerName varchar(255), - customerAddress varchar(255), - paymentMode varchar(20) -); - - - - - - - - - - -CREATE TABLE `mydb1`.`goods` ( - `goodsId` INT NOT NULL AUTO_INCREMENT, - `goodsName` VARCHAR(45) NOT NULL, - `goodsQuantity` VARCHAR(45) NOT NULL, - `goodsPrice` VARCHAR(45) NOT NULL, - PRIMARY KEY (`goodsId`)); - - - - - - - -CREATE TABLE `mydb1`.`supplier` ( - `supplierId` INT NOT NULL AUTO_INCREMENT, - `supplierName` VARCHAR(45) NOT NULL, - `supplierAddress` VARCHAR(45) NOT NULL, - `quantityOrder` INT NOT NULL, - `orderId` INT NOT NULL, - `amount` DOUBLE NOT NULL, - PRIMARY KEY (`supplierId`)); - - - -CREATE TABLE `mydb1`.`retailer` ( - `retailerName` VARCHAR(25) NOT NULL, - `retailerAddress` VARCHAR(45) NOT NULL, - PRIMARY KEY (`retailerName`)); diff --git a/9SuperMarketJavaConfig/bin/.eclipse-pmd b/9SuperMarketJavaConfig/bin/.eclipse-pmd deleted file mode 100644 index 8c5b448..0000000 --- a/9SuperMarketJavaConfig/bin/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/9SuperMarketJavaConfig/bin/.project b/9SuperMarketJavaConfig/bin/.project deleted file mode 100644 index a102f81..0000000 --- a/9SuperMarketJavaConfig/bin/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - SuperMarketJavaConfig - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/9SuperMarketJavaConfig/bin/.settings/org.eclipse.core.resources.prefs b/9SuperMarketJavaConfig/bin/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/9SuperMarketJavaConfig/bin/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/9SuperMarketJavaConfig/bin/.settings/org.eclipse.jdt.core.prefs b/9SuperMarketJavaConfig/bin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index ec4300d..0000000 --- a/9SuperMarketJavaConfig/bin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/9SuperMarketJavaConfig/bin/MydatabaseQueries.txt b/9SuperMarketJavaConfig/bin/MydatabaseQueries.txt deleted file mode 100644 index 0c56009..0000000 --- a/9SuperMarketJavaConfig/bin/MydatabaseQueries.txt +++ /dev/null @@ -1,47 +0,0 @@ -create database mydb; - - -CREATE TABLE Customer ( - customerId int primary key auto_increment, - customerName varchar(255), - customerAddress varchar(255), - paymentMode varchar(20) -); - - - - - - - - - - -CREATE TABLE `mydb1`.`goods` ( - `goodsId` INT NOT NULL AUTO_INCREMENT, - `goodsName` VARCHAR(45) NOT NULL, - `goodsQuantity` VARCHAR(45) NOT NULL, - `goodsPrice` VARCHAR(45) NOT NULL, - PRIMARY KEY (`goodsId`)); - - - - - - - -CREATE TABLE `mydb1`.`supplier` ( - `supplierId` INT NOT NULL AUTO_INCREMENT, - `supplierName` VARCHAR(45) NOT NULL, - `supplierAddress` VARCHAR(45) NOT NULL, - `quantityOrder` INT NOT NULL, - `orderId` INT NOT NULL, - `amount` DOUBLE NOT NULL, - PRIMARY KEY (`supplierId`)); - - - -CREATE TABLE `mydb1`.`retailer` ( - `retailerName` VARCHAR(25) NOT NULL, - `retailerAddress` VARCHAR(45) NOT NULL, - PRIMARY KEY (`retailerName`)); diff --git a/9SuperMarketJavaConfig/bin/pom.xml b/9SuperMarketJavaConfig/bin/pom.xml deleted file mode 100644 index cebcfbe..0000000 --- a/9SuperMarketJavaConfig/bin/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - 4.0.0 - - com.training - groceryApp - 0.0.1-SNAPSHOT - - groceryApp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - mysql - mysql-connector-java - 5.1.38 - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - - - maven-clean-plugin - 3.0.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.7.0 - - - maven-surefire-plugin - 2.20.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/9SuperMarketJavaConfig/bin/retailShopDB.mwb b/9SuperMarketJavaConfig/bin/retailShopDB.mwb deleted file mode 100644 index f663073c3a9a102b7d82c2d910db5e9f29ad1ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7997 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 diff --git a/9SuperMarketJavaConfig/bin/retailShopDB.mwb.bak b/9SuperMarketJavaConfig/bin/retailShopDB.mwb.bak deleted file mode 100644 index 0a1943774261ab38749a02db47e6c79070179548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8001 zcmZ{p1ymi&vas>sY<%MzcXtU6!JQz%-C^VI1b3I6*x%aO3 z&rDCP)m`6OGgVVnJ>5#O&@fmK5D@SX$GX{amaq5nGdK_sj8c#gfcIV#dt(<{Q#)rS zTQ?&ncUzlN-7ik7JoUaC`dgPfYCS#4pc1qC4=~-lW#hJ|V<)_dv@-doF_g+;D&Wp9 z2VEpe+@mo}6d@G(K>~&1BNm)YYx>+%YxjF+IfDfaiqd+8%e#wC&XALDub1{+$lGj! z1p9k~#|$Kcdo>43-e9hw#|AJPtx(F{?C#O`~^d9yUxR-CEqbGMaa=N1=aWC8yYS#3NI>T z02UNJ7!GET7(kYrfk0Wd@YX`L&?WuY(r@#8%=JidDt#5r=e&m( zXEvQz%l`g{QGLC!H-ndh0%yk#d##t0)U%W`Tp@RE)|0NvmU=%A<#_$-&2f@-_CDg4 zI)imQ-q$25x3e8-N@%17?v1KY8xr~zIQrSlCnHtjgU(95i4E+7FXm_dX+lLEaZY*Z zh(0iyrSQ37bO0+!kwPfOwkaO99#>xTMc+-7xUT&oRPLbl{`(*I*3P8SFnFZ8j->Dl z%B9$GN}>Lj@X$Fd1#Y4^Aj2OSi7Sav7{wVQOzw z6Fa`?yBg9Du9>F43?SKD=b)12@sI1U$a_=1XV7jjAp z8go+4cG?vZF_Y%FkA-3*_-@B3c@zOK$^L_*|Zd+CQD>$8H<0A$S<@Fs_^J z1uD)}j}{bJ!7{EAOrMq@E!)cGv-nD?lsu5S%`n_mI13O_D#`~vjE*qy_$^Nk$lj!* zdF~iJcr@WNBWq;(nz9cAnK=xPDLWnVaXa9oU#+Gxl(_KcFejT)JsJ58HiZ9}Rx-kg z{^VH5h6x0bC@udWC}ma<)4$ z)>V6YWQGVaxWs0=NO={^l9JoQ7BUoVz>ejcpasdlqq(7-Qwaz zLW4^}gN;~9)e4|{%?y4^V@p-jZbEV!0F5BMbHoffMTli`9)IBSv7C?rB~g+25x@Re zByE`r*g^={;`mYXTMbMrL6z2%P>&Uf1Fx1#L(n#li!D?T2aOAc2unF z{T93Xs_&sqb*ktIjYR!jIfeSr!6;3Ow&o_1h|UJ>)0||~WW_M(p>rlYQDjAtf$$@9 zIMXdYjWOT@3<#MvH-Toe*B_E0FIU_W4~E|e%9BDe>UP@02_fcF@7UPw_&xBcN27V5 zr3cb4Gv3#GriLv1`}><`<`uIffRIaJAP4e3Ln6|etq!hMaLsrXc7-;q1zqrQ`h)-$57HJ21mLi1~RxwhP z%=5i{(w4X6R~>%Fjj4Y}nyV$Uu0~q@TJ4arWhnlH(*a)b zJfvYfi^Yq37-L}QyGyNE4;y{69aPlroSX$`ZIEEnH^wCt+^5OUbeYMg4i%GSP0Fyj zbMuchogIWHMdsImv;|VipC@c)x;6#sD@DaN z?|ZYZmIjxk6b|R_A1B42%_MaMco1s$#u&pHH)|-P^IJzRUtHyhkZxq%?Ap6$N0tRv z+E>>C1Qb48nsM<;hE`f)eFE?pVO*XtWt3Pq+vq2OwbZmX*$xK_URl-FHF$F+Jcepl zn@Ba|TO%suJMJ!O9rp~8$QtyJzSmcY5d_CzuFA`BQMe_pqaT}P3n?!v(~ZZH=27?3 zMIY={3{$8Ydht0O3MHh{2YqT9Fs6@lAi$&Z;3KTQQXB18CF)*srm7y%s+m9HmOqPr zj{d^+YQXT5A*X}&G{vlq%wc}AxayYwxC382I1jReb9dQz}Ah2WX*anKQA9D@8IpmXnNpgB--#I(YN zg@SySiK3u@6fe(p*^22)RT(SCSiJ~%q|B-*%HN(iaVY%j3KB4GKAj8&3RX0Rc8Ufd z8XhLH0sGqx9im8f@eduu2x^hFYHGQwC~LSAK;TrMX*O6S?3qR!9a>x(#)2mA0vZ|; zfR*HQYPf^I2Rs2G)1}s}sRPx1J_Jml*}w+8W%VbrF`f}2a|MYM!6LVc2wy!75SVa4 zKv^OH!h?$geiDK|1Q7*`oX#|LAO@|tu`ICy2~8T-X?PJRymLxkNahHfA1w8$g~rF0 z!uLuLeuX@947FZ63<>vjmdo&@474JObz_^wO9}+ui(kz;&-Fhy`cF?`0)x7Dh;yZ^ zt`NZfZG+^BM$+*Im$NnpCG!!bJg3i%+JQ%xvpT*Rql(9Jz8SbL=MR>jR#%vW#`j7- zUOhJg+MgTEvvXVvUEZm`)tnwILz@esQgd#zu4VzxcyOnevoKF0m$SYVs30B3m2m2k z5aelyCo{sjO@EB)03|xMw?me`EC-sPgXAn6k2NU;F&*n1T9jN9^)hB7hIxO3ZV)9K zNRNWlbsD%9IRK(@c$ZNFAfPKXK6Hm?4>eY14z+1kjKT|ky7odhcdYDnQwc>9p|}pI za9N?S_`nEd*1eu^UTo1>Ty2n4m~MuvdAw2w17~RPAZTkFKb-^?>G0~!1ka*D@<%s>UTyY~SMmSdr|Xc9q#)2piQT^0XHJ|IX3(+O7hOTqCE`FPy1~eE;phRs zwT-DLAjrC{7Y0J|FQH-2Hth3PRCjqRLIy;Ol8U}mZet?EuZ1b@hB=gR!ibB(mxi&N z7m+}H4WZIu5#e>}zv2fb_mJTxPfwR3Pdd%#^Wh|ep(HRPm*>L76LK71p0!=yO(=KG zBAWGKWvMZrPZ^mLpeE_BzIT;=UH3^8H+@M2`8uh$JH`l9vH^h3iMlwOhnfYw+vg)Fx)iOQSx^X*~50?vO`$Ll&V(Z6j^CfVg+u!M|^ zu)D${38^N?YDd}+;`jw*5&tnK4y#8)1at);`=qw7sk0y(xOGq2MrV&K{MH|>Fj?OV z`X1Vk3fIzY@SAj>9v>ojs}tC02(OBQ6-3vE@7R|X)PwrdVDqw>A1P?1CpW04m?cg9 z{2=B7!3I5DX)!5EfVc=mDGq!v`YogeF(L)J9%$`mMHfbRtNO2aMm&V5HHL7<$1U&Q zp&S1xV!#exsLd+>6CO}VF8tA^bvyn7j=Z!~RLNMB2*wovCFa)TszJ(v^+#vw8&Y#m zHwos8PE&P_N>!wiqt$$S>2J{{ra%N$am3u0qXY?|pP+Nf5A)HfD&VNN{SvJz*?gwY z$0~d(@u-~V<<8V2AV|TlQ#3&1zQ=fEGDh8|>f$)}Qf-Z@=la>|1$9{^-6kfDs!{dh z`UEAKD!K^?lald;j-S^n6)?Q4nSh(q|aADn0Kla?8Z;xsGqw_DoalRcD65;)x z?bXCISFDYjr{gzUA-?QZvEag)8B^{|p;2|bs&>3`<9XLlup}wpBQ&#XH~dI_1&;K! z0xPi5*Sx&El=&#A#6Pz3#E|%$lth0*kQgLl{;fEyU7v7tm4|Ls-W{{TzpVP%fjqRe zIG@k6rtrHcUt!e1UC?@U@h4hRk=hv1D*s?Um?RB?^#r%Dl#z8Nc|oKNhG3@(%SMVW=E)NZa8$(CD&vXLLtZ|t4CMt#ge=W0U{ z>KnyFJraJcsIbAW&am~aS4n`)nu8s5!t*F!T38mVl#Xzh@D<#%i*B-i-Bn(2#yq|B z;g<;z3}Sk9M=(~a*(qbiOK4|HXs0|b$x?%T?WNZ!w3JaR@xDOzESw)q9=6t&I1GHW ziUwX*#;etO`4Nm1m0~QPull{XM5;uq$Cu-M4K_a`@52 z=2}A7qUyX4Hd;d68@(Lf3n-N%CQQB;;6DrxqADAt*-ASr<(GZ*nE>`3+_Y4MMcLeZ z_e+d{OTB`0pZ15`BO3315_n09Nie*0Na%21$KllW;^QivIFJAx!lH`^lM_MEfw3Ea z7yzSfWjegY^%%M^ir;8PLvSee^raXup5S-}t|T0&n^{F%p{7VwKXDsym>cEWmoD_v znChhR9P@fNLD#w$l}=w!o5hJ*Hke)w9K~U^Q@z*SUk}Fs{xBg1AXUM^PC-4A_9(7Q3#ub+O{7kfe zItVf9bni)&R<3T55%diDx!6vGDtT|cvzhE$wHNwF*pRW#=Z8`$sjs9Gk5F|x%MR-h zGEr#w1_5T1a-#|&Vyjv5H#~Fz{N!_J`c$AHnusYHX2Ir@5m`trd0J`w1!|l9XWKne zm3_RYjb4~;M0%~?TMinWr3azmSeIup;ruJ#J-v#UzcfBMJRG%bT${QHx29yf4}hY! z8lbnFvu}4m_g-Qwdosoh9R3vNkenGL_X0`&vgpdOh*)%1D1o$d8+d`}#}Qww)O2a0 zV+yhe;JM!XK>&ii!J^yf#h#&9=pLz8cR**s*4bI|eQsupYH^U)>Nnu-;*9L1JCgRp zBF;y3eIL95^Ho*O&NLKwk#L*}5?6NH1 zqEDwAK9!}So}zaUo7OREOX9{b#INYOccRo4=EPLhHCN!lJ++*==B?t(CIM3u3?^G)>GKug-`+j;_zHQa6g7GumaqsFa)_YZHpJF_P`T zbE=UW3^#QosbR!uY+fJWlGZxj_A!!I{p^ixDv-TWY+lvSOF=+g#Cgg;euBqdEKy%u zU&YGZPNJPSH$SA#O~rtiv^wM3pq#!!IK(S*T+n7RyB~L}V*S}AB|2dVM}OFat9fsc zVvluL>dFY=lE(i0j%+yRKCmHL<3^TJeAhyd%eQMOQLM?@dMmb^Ot+binb=@kLh8O- zEWe#f-56jo9DwMP^Pm^z-MUkoHVBqW?6KkzWE}ppJmkA%eK@YN^GtADxH7W@9_+8S z&A6Xr(C0Lb)-FyAP0>qC@i5xWm-=jrU^CNNzQw(&)pjt?2% zrK0PT4ISHjqa(V`&1K1(L!v&tU=Py8G4Gx=@{bLnC~xqmuBm%1-%Vz^+S1m4;aUn2 z>y~m5?_apP5Z1Y`42(8+1kG$QC=!2lk$>&4o^P^ukEJQKUij?d@tKXKvodL~&)fS~ zEFZREg>-x6Ik+fgKc^+=05{T6@gQcjw)5!V@Oo<{|7h!Cz@lol0Xw2FuF{0cng(2Sz#qqGr%9q zEZB!e864{JS+$9w7tT%fgq<`d>@*5Q7=6HDUiwpM``=c}2ub9gOk`l3~|tuJ5Q zP^9J+Y>E64hJ|ZeI2E>J~f_ zuWII@hW;2i*c9{S8!eB-EJpnWs`_Ori?}j2Q|o+D^XXSX z&Fro=X~~ingqM;RbVBxu&DquQWcz$)mM++6>@b8Pz);7HjDt zxGg)EF%*wgHlU$(c+B2heHC(9>`3d%u@@as9N{=UTDjc+yx_2xv+21px%ark%v>J5 zlIr*5r}VG&ZwQDA&1^ZEu`gyY@9WY%l9-{nR>-!J^r~O|lG!PI- z??Twbh}p!@*^tS^=u~smj!**YG&|fFIIL1AC9cfHSXZZPS9(WIP+AfUAF-nei0pSa zatn(eMBN#Nj>8Qeq!!<9SUN{|hO_}-v<#wNM2R3HDTO_ic9e8fD5x*C-7U;jt+v>m zL>(WkzgqABH9C1Tl1wk`)UhSN=#zREQ1+Y4ycaq+ezB3T&vUvKVQcys2YPpl1(~Vn ziY*9Jlgl=+gR#AJzN^O;RI1CBYz^zA(O280NHl#Q^ThvQK3K&z z`lzRMz50)@-kLz^o!~ECAex`iG z9D(?BF80YQ$Z$=dvV{LwBPUe=7zNk+%G50M<#PA7ieTPJF4<=B?h$jnEaBzDP8ZGc z3JL1*_lumy=Jwn54|cW%o2e%|NdioUN_re!Tq->y=BCD$)4uU6*}dN)S~UVlIv zd`dictxNOqG{^qtQx`sRwN^wG*CB-C-e@tso!sr%=H3SH&Q3@ebv!Nd{fm8cMN7F? z!Hc1b04pK(4b{b)Q^2Q49L5PK&$ZD#<@?m}HzB6SFO3#pxak4ENE~zi*N(lA{LZO| z#w(wT2_gHfP_xmKios7`%=$DH>s@ohB0*t0o6gsOwwQQWy4Io4t9k9TWwy*nXU|bN zkF8)tgoI0cm_0~2446u`a2ZCt;kvaf&vdR5D(*E`_FJLlDBJBWRYCd@^KTmwEeG&- zmx+m=hqXOq3SqHBV0zePsEx>_Yt?eICQ5oAtiB5xC$~wJROQnyl2Sqmpa`@8 zoN#{h1e2_hnNE7{l~;u80c-A;!iTZ_f? z{u`rqBahdGzH2)yG2;Z)kJs&I6YS@;ajuf5JID5~TiD4|Mk=Cs=@jxjj#L=p()s4$ z7IfwV0qF`DdhYOZMxu#?usP|FMA%IM{HDEfGZZRG;ZMj}#mG>J6fAtk_UYp2w9-+L zn8$A$kpG#NJnW9obs^sq67t{Izvm^^)1*nopDb8|t0*!H{ufXI)r{$h7 z$bozZZA5zTuSm|SW0z?1MjQnz1?vMI!YhC5VykAk+W9OhHD*rCqr%1!o(DNzO4%ya z(xcX5us1-hNbkebfN@+%H%D=>DlQe;lrcx=C6KyT;xX>a_&%6xb*Q9OdM&`LBd-a+ z3|_m#$$e%zMy;rvE)IM!?L|!iDNnRYxcp>os$hh{<6Hk~ZpusOY&f2>J(Hf;@1va0 z`zDeuDIzTPI&S52{H)S4;9wZDW!y{fMGtLWt>|;AtE?w1IkWR&!rJ3-0FOye!I;}+ zuXAH3IklUz(yVxjzLF7Cz^0;7e?J>rf`Txxgtb8Mo8wZD79nh$A2Pl4@Z}peB^3bv z6*@v^pyGP)>_6S$R8v}E`|gFH_lEdad2ljzv~+NGVrKm~Sce$I0)UwMs1N>vRqyPI z0ft|~DtGDf{D2xw-4=F#r&7DNewAmR1AWgTkh{zwy9?9rJe>H%YOw2PmETvsY0yu8 znQ$hmlTr6a&latJd^wh)9`%IGa&V^t!KK;MG-{$A+HioI?%g&@vXD?%(EtCv-S;Q^ z`)CgMOZ@jv??3eaT^au$3jy&?<3d3ERVV);{_iUJ4?*=#{9DcZZ}7iA7wy{E`Zlq}Zb)oN(2&t;q|vfnN6NR`#8xB? zdr8=6HCn1ZdV0qb|t{=01#gwXw8D#5_%g52ra>FxyFzqQv5A z53pRc5N8Olj=jNINVwQ-v6vgjLI*E(L!Y`-*inoRVS2`z!DAN(+fMUueOjj4IPl08 z4T#sUSK>&>Y?VBQsh0*lc8AywrnBuqhT2%aROPs=6~G+iBh$4m>R$$3A-Q9+?6uu> zg0XglX?5t%FF3*}G<1)_`54dwVhVe>knAK@oB#_T|A(I{c?$in=n9PaJg$1y#ZjDF z%~_!uQYM!ibOF=X81tfhy9!p0(N-K{hAX01LzZKDjR*&~s|7->A3jk1<#GcDX=X#QGfW{D35cKO|10S z<8GVqbq7yq@_@-)$KP}~mF>OGQL#<&Kw57WI}GEIbbM#83_89*)-&~HRupEZn|hT( z^r5Cq4zpF5w&2eKN5}%HM7NNWm@?0DfRDjh94gP-{e6H1N9xmhsH*UqHFC0?kQCOr zU(D5J{6D=nz~$?zTJ12oCa?#mk4n~9NO4KMVZo2(%pZ+6XQ61w{5*xpqO(``Qw`&& zL6vwE@U{g%lp{cq=6J7QMO>eZvfV>A0;*i3Bk+D{BcSo-XwZ;_WbkY!lF3jdCzbI* zX)-k492pw2kPNjR_DZS+$F=pa*NIbV&VrxHnNn(|7pvhz=pvHRwb9peRIQCn%%TMk z$`O-H{9;OUXb~Cxb<$TNM@G%kOw3YgBQwOEGtq|7g(RspGayOL*i6z&X_AJxb0iI+ zi%6=aZzHbanFM!&0~Z|0t7*Am9C(+7dpFsmy|KccgFSf-f!86;!S_?M71+RA4Ydd` zt5o175~z;7kX7Io?uoL^N(DZ{r?g63fiLjNLS^X+e1#Q6pN|!Aut(p4Rlr3G6_CU* z`ZuXM`i47*QZpezQADYZKI+cEO;7p;3JtE%D8l=gb-db$;4I*c30@-|Og@LORl#5K zyNcgaFa|aJeHed_z&N&#XzfXCKcTgcVf#s~eIj}86g-6tPb0$xv}ECT?N^w(b?nT~ z@a*pi?^*mSEdqYd;otET1<%6^*aCPF&ZBkZ*Gt%=*hcVo%2qe9tr*!}hF2cJmihLo zf$g?|&4LEZYx15FLlKNtQrMY0KxqR251&BnLQAgoGlfDy1NiQVDT#ypz;r*IsOI)%-Ff zkl@adAA}h1QZ*HknjGK)hxM*KZ{GOhd3L`2`1Az;9>U!kR2XbJD?6!Bx^pCsMMoO# ztw|EJogHf=+VLLQYEWgcTmTZGN1a!LBb1)O;uEEnf6CxeYwLhPwQFLmL4(248TPrg z#@697tA2l@Ejp7NW6Y&VGnELhjOLj&g9KCem`9EML*#y(ArA!Y5UkxzgmYX9t&Qgc zg02h_BMk*pCggiDLcVdf z^bH;xbUegMg_noi)2#3$qac$Gv~%sSbM0cT6YgaMm1f3zZtQ5v-84&-RGzy$LrXH!&f8qls(C5O)>hC&u45c39dtkz`WAWOC(&)b zmpdOUgyKSn<1L9ND5FN-TcxL+ANPifLa9;XSr%LiEqCeq;0Z<__)w)d*B|095E}0T!vPQST9rGI~d!q5gIy`UuUh1!jrbfB|}zscn`hxCSfK jYru6_rIEn!;2gu+6o%D;p+eXS+$h?caEIPiVz~7aMj`>W diff --git a/9SuperMarketJavaConfig/bin/src/main/java/model/Customer.class b/9SuperMarketJavaConfig/bin/src/main/java/model/Customer.class deleted file mode 100644 index 44c6b4a6c7772da9192daea6f366c6b93c0a3245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2818 zcmeHIU279T6ulF-O}c558e2bWoz}07AIXD0RS~2p1kx%r7R0B??3hfuyR*zrih1-` z2@3k|AMsy^cQ;A1p=)U%2n8RqliWS`%(-VK_x}9-^*aDOfm$AN1lA(W>pqh~{eT^@ zy02W})wg?*QNGZ5um~(CFFY1>>TlWyf*S%h9|9UK0n#9_I121CUl6D?$2ogO%b@d& zKzW3D>AG4(5rJaJ`o0Lv4sJ?d{<#dKc|l;yX`IYIOQgC_z}iN#Jd|<2v4&S#D_ww# z#QOCvz`d1sBwWgsA4-oIsR9~m)%JuRZBcun)fLng++!L+A>)UvBj{%0%qDe}h-jb; z^_k&aY7i?vh3HBei=NhEPiwJ++91tmlmN2D+E@Zlg%@3mE|V>?RR^ATj&_X|!;y3`S7G(O_#fYC+)ZW7oyz4Kz@#pGx**>W0*&=lujz^pjc zlQk9KHUaPSZIT8*vx|lvrW6lnUrOxpq^qQ0$H5XJ-=-&E2~iUPdr$Q=7q4Y}I7=g2 zlc|!2M-!uYP!mq#9T`P9a9cP{BG>>t0i5<0k*ql#u`73**-#W1cSi=matKojRjPL8YC%+T;5li|)^oXle2nGAQQ&~T8+aBm6? hI+Nl46dL-O49*l9K4&oGpo+IJ2M^#et`?r_!#|g0;!^+s diff --git a/9SuperMarketJavaConfig/bin/src/main/java/model/Goods.class b/9SuperMarketJavaConfig/bin/src/main/java/model/Goods.class deleted file mode 100644 index 2fc692b29d6944aff1a068b8b8b7d6c6c66afd81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2013 zcmds1+iuf95S$=i9sMCF6s-Vm8G_TdXaeC*h{jl?Tyx(ihdaq zNbt@_A;xx6yXsP$|9t-m0MFrB1xf_wW92y^6Opse4w(~5p9jvm zlzv=+GJ#g=4OrB3K6LlFrwLSg$-k~ofVc!|skOyIPGEW?M{jE-qTU+#zv8`8QdMD^lwR#dipMfI zv6iA=DSRN$zvKxO+%)=KGlfj zUk8|O5sQ`TB$etU5;|F=Rm&2k9*dIrE~m#zw4{vcqXD;SZa4^pCp3+R1FleG6l*o~ zv{W=JtKFs|ro+hRUqrM%=S);`^SN%J)~@RMu}!!B1l4Erf*bm_5Rk13JZBWGFnMND8}*Faxms^F~1eVV3Vr*iJj0=%v+fCT&W43GxXYBUrJgRV)Kyda2>6lDXw268ib&a)V zx>{qI`7UUU5xJ`|MvXQERtI-PV+U zgR8&Nm}_`WAqMbw9nX6DZowSPr@lJeC@>_r^D->JO(VlCg9d8Uun4rkP&(FNVz7-2 zOR!vE$g{X((BK#u?!jzOiEb=;-D!FN7cnFUQ c3`r+u{a|9)H87OmF~*eO2|UGT8M!)t0ZTN`N&o-= diff --git a/9SuperMarketJavaConfig/bin/src/main/java/model/Retailer.class b/9SuperMarketJavaConfig/bin/src/main/java/model/Retailer.class deleted file mode 100644 index 938e4b89828d13e38667491b69514937203dcd3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1874 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 Bfdc>l diff --git a/9SuperMarketJavaConfig/bin/src/main/java/repository/GoodsDAO.class b/9SuperMarketJavaConfig/bin/src/main/java/repository/GoodsDAO.class deleted file mode 100644 index 46ed15b45ab25b547edf969a5e8c4d9ad3ea4a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 721 zcmaJ<%We}f6g_U!%w(F95@>mY>1x_VX2FhDNQjpr1-fXc#M1FtsmqK#@;DLwG9-{- z&*$&~h&xWI6sck{w(q&GbI;sgf4=(?)jBeWQ{gSQZ7njKHhmGlhpku0>){sqH&x_`>hdS!DJp~KKyMZa;*x)_@bzdstM zYFo@z&ZR9YT?ntO;gz$KLY4J%o^-}%iswoe!ckBq`;pG|k zl%T#;MCfV)%`|9c8Z+l1>=?8V~oD3+^u}m2^(L z(`Nerpae0ty10QJL;Gkc)=oNF$+M_(*vQu#X`?>O%87DgL5eW+M^=jBR5;z(OE4CB z9{4dN=_tGo_lFFdPL+19mabMh4B)KFg}(%M)8RF(DK|N>Gbhzs-E`dwCFsWo^&&iA z*a%RBNB=Csf;&U^y{>E0VobW!Z3fy0S}>qR({G?nc0|^}5>37%{?t#tqWhE3HEh$_ k#DKn=0crNFk6ToL;Wl={y^A}+cQ>5(@R;s4W#7lczt)MuP5=M^ diff --git a/9SuperMarketJavaConfig/bin/src/main/java/repository/GoodsDAOImpl.class b/9SuperMarketJavaConfig/bin/src/main/java/repository/GoodsDAOImpl.class deleted file mode 100644 index c167fcdd48a70d484d97def0ccc591263064de1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3459 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 diff --git a/9SuperMarketJavaConfig/bin/src/main/java/repository/SupplierDAO.class b/9SuperMarketJavaConfig/bin/src/main/java/repository/SupplierDAO.class deleted file mode 100644 index 24ed59b5590e79703ef6d7f16a3591f3abc6a7d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 757 zcmb_aO>fgc6r3$4PTbI>ftGJ+RrQckDL!z63JFn=A_aO#sKjxzeoD94UTeLH=r2P8 z3GVzI?uchMB|+uL!Ml3nnWuTP@5iq%-vB(t;}9DH`=!%yrc556tA&ak6}B|qx{G)` zFN)NVJAQc*A`s}-gjD6T_+)xc+6y#~bZTQk4xAL_o6HBGct(Ted z`b>Hj(5He8tqXXpK{eK(@-bMGN3F4UCZ9>I@~X*{IaAe3a8o78)$<4(_J`NIT}Ot) zUAdf2p#9dA zCFefjc*}+WuMDpt5O6*>(cn7d>d6v~zM}b|7kx(iJEI%u@>y}f-*$~uE7`+sZXj?6 VJN3PbyY;_&^?4tU_zqa{;5SKg(-i;! diff --git a/9SuperMarketJavaConfig/bin/src/main/java/repository/SupplierDAOImpl.class b/9SuperMarketJavaConfig/bin/src/main/java/repository/SupplierDAOImpl.class deleted file mode 100644 index 02ec3f3875516cc6fc04e41bb8fc721f31919f34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3306 zcmd5;TW`}a6h7|C+Gb-ncHxd015yU9#JCTT5Cf^GFtHUR9^J&-Jd!waoND`DNJt>T zJO6-R!W-haUE36bTBK1>l_s`7e?I5<`1ASl{lg~!Sb@7a$Pln2<&=FUg7PkFu(INz zjD(hIzq}cTp(nUnd$eBhLoWwe0#i+p$AazhdVQBWItQZ!mImP|^Qj9840J>{|3hDXH=>O|su! z1&T+~YjBr3(hmi)3K`H)$-2k==pMBSwH;1f?s!ZgC}hrCw$15c*Z)Q8N*>WbYU(rX z>`;vp_+E%kCnuomB@@1qv7?lj-daKUp;Vfh!9D7*z|hq>ZClp^l4|=eLN+=(o3aSi zk}|6ILv9sb#>^92xbb~(CMkp?G>ziWfMpPA6+4(aw3Qonk&1}Mfy=iTs6`;S;b@aBKGTC)flQF zftjjwnD?3~VcG|sS-m470#~YoXuFXD6zMVMy6szoz_MNW)q-DpDwVZjg}|weIMBl9 zm7pOafp$DHTG^CsG{dU4kLqe3&Jy@OfWWtBq#UHbbZ&>1lXyWY?#l-6MmuX)ij_Pp z5_mW4*c`?wLyzJR>w|9>#%(s;?_=XbDb0tth(%CZ#|TUD+Klih(VI4 z&p8+ziW(CAY~r-tYoSpZt5xeg6-H!c+o^g`PB!Z$QwDbH5~Cp1PW6GUBMs)oSmv!D zSNHnQ!A+c(G&cvgdrH%m+9Bw1%Tu<(Br`^R7$ z|BqtpMiU2MeT0cOGgI$j<}>zYVD113h?~c6gGUrBz;S#NH~}XSb?N|h8sBX;vsR1k zObXjVD%&}rzhTRC*v_Z0(Nwkzu=E?Ykq+C%6t-e2+hwp*V^vIHxS7hZ3|A8jU60Zj c9;7ggz%{fx1Eo&9%hfgc5Pe%hoVaOI0xjQkRSC)EkQ}(tic1AjqyUG6N*p)qQM$$UTI)>&zYGZ^ zxbtWD2Z&iGR#mCu;9bqko98!g=l9?5KLNbNVT3J#=ati=T$y5Ysa9%Kky{x}qqAk@ zZBA~wjw7@L_G(0?ipA)|{F1a6=$z`z6vn?6xRo5A3$)H`N)fsO{VVhv=d9~sTj0;f z!ck?j6{S+!yfm5e#ul=4cAimQy^?Wvc0n>FohiqlQt8iXLGoxL>`11TDp^=BbLI7g z^o*u2C9AoHc6u0w8U_)=rgzP4^3pnPXQ7$Yst8 zvG_kIMh81R?4mEwKHWIApG>a2S+kr3@A?x{(EDXRCpS}UhrnQBwaU(wGa=q2w^f=p z5(RdWNfVqLj|Fy@WvVgCMdYq5N#Hr zHZ;Oxe)^^o;pw&ASWhI-duOVO9h$LQRa<~pg!c|;u_w3D<~ZW$#U>m7K+#xXSZd&8Yzi$2Jtg$RrfladffFH&PF5V9T2e;!am2g4%ooi!ZonQiz`dooFw~HTIuk{N9j=5?g|%a? zn2U;W-I3nE01f7OIi{U|)UE2@EkA=;o`OaiS)}oRi`LUBaZxwg^}AiCBBn{`@ed;8 zo>d)wYIBH$D>RLhh^w=)8+6-9iq6W?{9`J@R3354&@d?MAVQzV$kxBBl?aRcIp~Pt zSHF{TrG$r?o-+J@0a`Ev7pI^Gmk2D_PXDBLd2g6XFzetRy-9*LS9=T(H-ULay3F5a zN|=6ca9no;R+x2Xs4`}@5i8J`ZDyzq7#AyAzZh-QTNSuYAReOHMFt3V>8xI*CL5EMsi1|+C>AX7t7YP@E!XxpuNi-6_iKG~?io#EumGe#$$wJQ_l z^4G#xW+_*3px9+Koj}#;jiDbVQsyUk?c66&$ur8(K#Sx(EKX&3c;XK2%1U5rTf{M* zwmmGaF{}XE3!e#mN>GLhwpF~dC$Y7#HRCmy!uK@xo?>hXTk9Llyq}-@0`otxSAqq6 zn+(8b5#J^rqu??uWn(qCGJuf%J14?bSRO#=bGTN(ffjPO0XGK_#tgrV11&&UD@0g@ kTe#L-o!f|TT9dT`w0i|;CAf?EC9vTUwiVQM9UegQ53dxgod5s; diff --git a/9SuperMarketJavaConfig/bin/src/main/java/service/GoodsSeriveImpl.class b/9SuperMarketJavaConfig/bin/src/main/java/service/GoodsSeriveImpl.class deleted file mode 100644 index f3452194915514b28f8fb413ee74ee4d5378d894..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2080 zcmd5-+invv5FMu>n`{FurKN>(F@cIiLdgR>QG`@cK#@`^(NKv;XV-09cI}nzjp#S< z%(oyF3EufA#CSL9g@!glLiAyM+v77c$DZ+zp9kLn;4!RtP#~~kbkK^KkgYv7U@gP- zKm@$?TB*=%aV-YC9Vd|oMFO)KB4Tp4wb|R_f%Tw7pmsKaV>2~5=++XRX) zRLDJ;CNOiv`BH18%W#=YeR?M~H!2$NkOnGFM8vF6k|tX9A|9Kk)UR~=oQ6Dzm_|^- zf)8w$)7sGe8VwaUR4PkjW`jPph~^&?^!Wr@2Td1x(>c)`?ajGGoG5Ln=7}=GD!oqw zCLLjq<6`byjgUAADE-RjfNL#6K1N(>6=l?k>sN9K&H-g1tgmgJ1N#pq zCvyLS`sITUGga_lmcT;2bCj-mP^&JTXF7Nl-lTDl>n_6#B{0`f0gJYo7H&RVEZV*> z1Ri$It{B6Tvr3>mx}F4<>h06E+v|-sf#tWUv?AthIS@vmxiy!kS;atWerF`?Y8h@4 z_&h;v8SOadCQWp#lif-J)0)R>kmtQqy4^S(ZyD|oIJl4jOq8M+<+199XS1bJ9q?De zU77hzsiP++E6N_+Kk@G5k`t(I2xG7+cCkDdxCi*K;CBh%wIcQ&l(DVg>`Ar`;C}`G z{ap16T=|Zx1-OcB2{C}*9JbYL?87yf&(;>;I-(Ybs3q)2Y$Y7$Y&XWRd1Kj@;npA6 g3WsdB$FR+gWxM;AY>Q*q3P90=0xI|bd#7FP7pZb(qyPW_ diff --git a/9SuperMarketJavaConfig/bin/src/main/java/service/GoodsService.class b/9SuperMarketJavaConfig/bin/src/main/java/service/GoodsService.class deleted file mode 100644 index 9fd9d631f3ee4d2155ff6a30421cc6dc9beaf3d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmaJYx15PdFbcC!tn4YYiNmD83(_P~u+To9m00S*b3I67V{b=kF7UMGTIh6EDa z`7Qhg#H_PXRjJ~zw&%^8@$=jH{rCG%0MGF>!Vbfzb}}o4Hra((i>y{|t)n zwaU4)Wu*(@wKcqQc2TIZe!-L8{9N%|$wD|HRYHCiOT|a6su9nvs=2YAm%__)?uo6w zRHWt#+sSeBqH!Z)ysh2z)@5ZKm6OndOJSN`3&pp(l3sZDH5u+L7uYA;x;v4xP!y6AK`Au-3#k|JfXcy)erFK9~B~yaFQ?&~kgC2x;P`N*$Bfn8c%-nATeoM~+k2|A60u z1QNXScX&q}r_I{2plnhf5Lntuv0?qk-QIN7z-XJ(l+{^Hd<@si z!%;kxkcnNg36LA@B1tGy1Ozs2@j~VpNzw9_S<^BIt4@OiEZg(uz5l zF0Q-MJ+`~XTsJ|plXulB8&wHMXd1;KS6HF|cgGG=r+snRRVpGH2QL300`Au6mT`^+ zNVa*0R0KVFz$wGLB85=|t9+!JoKRCKj>pXCDK`+Sd`hR=J+72+5%Pp~Myr*eoyG=F zT#ngUJdO=*M=KFz9gq`2=DM`t99)=%8MsJb$!-nXLf=Qjw2k=|s_9Max4GJ7*a-+M zwxq+nJ*I^D9xP7kuD}jtxAME2Q8KotIeXaHjH6O2d2D%uUyW+h^uILCjS^fZ@c9&t zD&3J&zwt={d#~cY?C}H=o2}ifHcL<;5RRE{Zc&j+9J)-WRF>^#MrD!Q27xc*BR57_ zV$FACtQ`JI7`-heIUTuNldFS3xiwfrF-`TD7vt@A7pIAN5o#!@WQrLp!u?~{ai1)K z*)0)8c$#*xdq=Picvs>xg--#BP{Of{cmFhw7LI0p24?X+hhL8qTL9}joO{2x@D&z+ z;%Whw20H-lmT_+E(F!iX3XTTh@(4n~{5vDU6<9?-DYL7Hkn$O#UCZFJlF4TcXfE1% o2HILC+6}n*AGC?1NN;7JZDgPo;5P0lfDI3DEMdOyz&)t{1@zOuK>z>% diff --git a/9SuperMarketJavaConfig/bin/src/main/java/service/RetailerService.class b/9SuperMarketJavaConfig/bin/src/main/java/service/RetailerService.class deleted file mode 100644 index b22ab3810e5c1f96198406cff731b5a85e10ea1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1065 zcmcIjO>Yx15Pc3wH`%771PbNb1dtLA$$=ZGxKw~DEg+FliKFASQkUKJ%IgI9Wk?{w zogal5Z?lRbA+-m%cr@eZ=QsA7U%$Wo0Pqx#0@N5D7gml^p|jDcSc*}h>{3fLdZ(Pw ziL#TkJV2dcw?rf&n~&bkPL*^F%>$X}OuOd{m->TahWeq2Re%;lXN`Vgt+7pPv)caq z%&Nj9OBHiz(p)FPX_N8XnpvXK;u#NH(-XyGB@4Zy>dA^zAm9`CFN*(=g&}5P4iB|S6 zTDUV@aQ7uwVJp&wI|uU0n7B9xa{-#eMd3{PF9cnzwGd70v~d|7hOL8@rS|&K+C&p) zbv7S+lXW7UsW*#srtDOZZy36fks>)3R{MNa+!k?M`Iup+A5~JugCmC4QmaqpYmtrn zgUCP1n4#^kleS;$qM$yf^xwr61I-l;E6||#X<&=;fU+m6YWN+^58d!9+CQmU!!E5J1JrS) mtoXU@;wlwLBlgO89XHCj?<1YMS+2M6kYY$DZ{sfRwyS(YmXZyBCb2b=bbo-JeVPHHb+HF_FB8$*E}#D%n?|hh=jm`9?@mq{aHz9R=B72Sw$NvRAoLdg`@`dgV%Z-wR|V&^u66y_0uQ}xCHftklD zkV zrCB#MngtjIZu%qf0=(^mw-&@@Z9#uSi9lLhDs9cFR8K}AY4 z8S+;`;y$nN4c@aXGUMnbeP*p2q9~I#1%||9l(p(nq88{xjiQWN?`u_ODyDx4a(BSB z79lTzIhRXdQ{UGYsLJR0Jnrjb6i&rf{Lj*U9Ci|>{f||9s#KUxOR^fAfpd$n0Otv; z*8Pu-vSYN6y|!(nOFriR^DORiz0a^W5?Jw7z@h`Dg?%1P&X~Tyo_xojsPWtK!=Ak` zR-M@W>%J4d-Pj>e^Iej+=iv&0_Y?GNx1vNLw@(Rd;@l&!I1v1;OKAet`cA{QMSxyb zJEA9<$uw%W>gG3n2W~$?_pTH8V|wnLK=q9jaKaw*)J^7|-ulv>y4|N2>#B`)UWf$d z>ql{39^G#G`MccPy95ruXk4e-AFu{HD$@aff+s%$7hOG!eVy}zjR)VM5-y=VxKCg< zH^hStJc`+L^x#LVcSnHVHxGWsH7+=qKF>s&V$<2j4`B+|01t9_&Ei!759V>K;vsbo z#~O}yegPKo_cT6j2u#RkVZR$_m>5->ho|thA8z#u)2*3G2-Q)|-W_b!Z&fdb^M{ iS1MQFP66xP0@e!L%YARcFE}n@j9TzL{;l`{e)<=sv#}8X diff --git a/9SuperMarketJavaConfig/bin/src/main/java/service/SupplierService.class b/9SuperMarketJavaConfig/bin/src/main/java/service/SupplierService.class deleted file mode 100644 index d88e3adafb8a640f4958addb1236e6d0df42101c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmb_aO>Yx16dbopHra-zO=4KL=PczD^XFTdm&WWcaGhrO56!Mdp5kG8<9r9FD#S3kDF04G~ z*0JfbbZ)M(jU4(%4ZVrssyFJ4tx?5{OHp`*De*sUtmcB-&n5jwQiL{ccd?BgL+iB3 zX@4+UC$seP+$Yx?se<0k^C_8$aA7d?M_P*POc>?s2HX;9y80Z3lR*pI%T``w`%*m1k(z^&aH@dMe%o)d6JuwS1C SxLe=dtM~hOM=DR4Lg~!eP_9=Hw38n~aU@Q zMk%SvaE(kn{}3v!rQhKmb!89Twy3ig)4MSsEvwUWTm~>*6LJf8iyV~5+UC62zPMI zV&4p-8+0$$CfPw0Wnto&9`O*RRXGpe2(yNgVgz!(!<7;q9|3C_CBiJP4?80tXpp`m z&dh7t*a>spHSehw%)<3)sKN~bi#2CZT0L)VC#5&%VAS8mL7S@shSfx1!I3WW51A6l zyuVm9CjzT@)5-NzB&ms2US*z_rUUBM?8_!xUa{@nx=p}x(im));SPbHIo^O&V?=QC z<;qwiL10$#Kz8`R9mSemx680bK#%cic~b)oiX)GiA%m8(;**%TLE!5cO&qght(J_H z%ioG5cb8ND4mG~+Yfhlz^w%&kCp*lKvEgiDj;0#e#7gkwLW}Gr3W4c8p*6li2l(!4 zSOaWZ_)X$hfD)8ZRcp|nsIQC49Z|1&sy*2Mx?KVbIb!u&T__>HRtSnO*6;+Aln z;1LBkVHqWXTd;ztly?=^Qnqq}>$2U>U|Y##y9@WOU@M%n(G0eYOty8ne+ApbIopE_ Wwyg}d0z5>W0z85S$|)Q@hOK`ebe&TG diff --git a/9SuperMarketJavaConfig/bin/src/main/resources/applicationContext.xml b/9SuperMarketJavaConfig/bin/src/main/resources/applicationContext.xml deleted file mode 100644 index 7065378..0000000 --- a/9SuperMarketJavaConfig/bin/src/main/resources/applicationContext.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/9SuperMarketJavaConfig/bin/src/main/resources/database.properties b/9SuperMarketJavaConfig/bin/src/main/resources/database.properties deleted file mode 100644 index 9c1f900..0000000 --- a/9SuperMarketJavaConfig/bin/src/main/resources/database.properties +++ /dev/null @@ -1,4 +0,0 @@ -driver=com.mysql.jdbc.Driver -url=jdbc:mysql://localhost:3306/mydb1 -dbuser=root -dbpassword=root \ No newline at end of file diff --git a/9SuperMarketJavaConfig/bin/src/test/java/com/training/groceryApp/AppTest.class b/9SuperMarketJavaConfig/bin/src/test/java/com/training/groceryApp/AppTest.class deleted file mode 100644 index 44bfbd74c5df96567599f1f05268b9a15e4c7519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10115 zcmeI1&2tn*6u{p^%x;#DEJ+9mehl~(1a|pSlpwk$1cOTgB!KwIWVW-JFgv~W^hV;% z@@9GQV3j9tdb7%lrKP1-S)MHa0nh#c{sC55zMhZWWqB~OU0V{A!|qIXzy9@muX|qi zy!rL-?|uY;Be0r*J_8Q;!Y)eY%i^lFW)*E-D@tKGp5s-ERl#j0)=Twz5r2y)lz~kK zAh83YysZ2F|$!km)u(cfDPnYIrYjt+mQlIv6dcD6_SSih8lp0 zHmQXhtCW;r(sJAzq%Pc8g;M<|&{y)L0rySpy=1_qDPCb2*pA&>UOFWN7g>0~$WLDM z1oOGO#wsSdy6(7vk!D@+C70Fw<7RGPafO)`X1kU^p}J*Xv#QM8gVKd~VhXK^*<)5X z^G%OSvt~(q#gy2aU9aP;wD-nIE-2?0lv0ITvBI&PTAd4Na#1yH%TwefX2x1?SdqZ6 zhIHHwqqJJjg1fkYl2oeUnn~3AUltOq&V5I6v7V%TdPzTgc9VeraWNID9NUp5Mj^E} zxaUjJu+i0K7)~elnvQQayb4=(Jba3mu?6p~hAZ2p3+7o2cB%!XOv_V`eF$zt<_0># zFyVYta?>*9dY$D4+Jka}=*>Yose=k8aZq1&s@((X^)nd1a7)1634;ZOMDbmDJVCr` zUApAQvk+<2Yi&C4DGct|?|Q9J2R?;D9b0R!73#pJP)MD3610fj-dnMBYeXFrYD}*1 zifQ>6GUcgv8kXx%EJ%T8xBaHe<9{NYs8fP^;7wfj%1+$YldTQOy|p!gc26se$thP^ z3SY&fjk?0R)Gv9-rtryKCX(tQ+(4)Jmz6;DXYD-KkT9{E#X%cQ*?j=h&svK2rk}D48V2b6gl0TU3*k-kI zJd1p~B&{XO$5D1&Xn4}8u~~1;@f{qf)I96sIQ?ZcUz1sQ+%WQKG9bx;J>Dr2&JSIR z-HCnCfN|2Phq5qXz_-0|SE?Y~rL%7D`dgWG_*M-^Feiv<5GGlyM-~nk@N;h*5Hs)0 z3=cKx6|3E_g9i9_z%T={xYmMK*DRpJr*E%Akc~`y77f@eSdFi-fQzNj*r+tP=CF5T z?_&~I72}sf%m}MuENQPW``Qc_a}C!uV6?r6sb$PS`dK((z)Z5zX_hUXhOsT*EJs@43U2QiTQgfRU?A1-YJV~NzDpw3vo+_J;QN5 zSN16f4aGH9q}iy%1-8Is{C*xfYrLbj>4PEFaGI%a4dKw6ql&O!(2TTTNvZMj5h$n# zWyVyMAIY4LCICNJv{#=K!8eBRg9VdK5{}$P3ch+^RSPm0X%qF&E%1i0*$jR~z@;C( zYX>>_47`EPzd7rafwyoMk7p_RI+B5_ZIw|7%fJ#c18tgO%HW_Tl2KWX3@l^k*uBlp zD_9w?+^7<9XC2?i?7uKlJ0jy3gW&9tI#6TsOmDaNPn!!F3qh zRQpyK!RtOGjKUcHZ^P12q#1b4eGlVTMs|DyJAcAbA3TKr{XvTX599q{C2q&=fad!M8o)1-Y!(w^0%eN57x)1-Y$(vBmIiW`%} zs`!E=Jg=$GS0wGEChZ53_JStu7n1g(Cha$pRzg}@&;L#mUeeU(50W;eN&AzeO>5Hr zB59}eXhw#l&1lj_NZM&lnn}`L)}&34v{_ABk))l`q#Yw^uV~Wf6GB;&MxPMQYSQRE zeNK}`@9FcJv?@6Z=QL?`l6GE`M(^ntG-)4@x-DqZJ|bz0nzTCChc>Q pc3G45B}sc#llC=1>w_!!meL2WfrHmPzBRoLZ^GMPfej3*{{R()|J48h diff --git a/9SuperMarketJavaConfig/bin/target/classes/META-INF/MANIFEST.MF b/9SuperMarketJavaConfig/bin/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index d617fcc..0000000 --- a/9SuperMarketJavaConfig/bin/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/9SuperMarketJavaConfig/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.properties b/9SuperMarketJavaConfig/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.properties deleted file mode 100644 index 53c079f..0000000 --- a/9SuperMarketJavaConfig/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Thu May 03 09:21:35 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.training -m2e.projectName=SuperMarketJavaConfig -m2e.projectLocation=D\:\\MyProject\\SuperMarketJavaConfig -artifactId=groceryApp diff --git a/9SuperMarketJavaConfig/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.xml b/9SuperMarketJavaConfig/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.xml deleted file mode 100644 index cebcfbe..0000000 --- a/9SuperMarketJavaConfig/bin/target/classes/META-INF/maven/com.training/groceryApp/pom.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - 4.0.0 - - com.training - groceryApp - 0.0.1-SNAPSHOT - - groceryApp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - mysql - mysql-connector-java - 5.1.38 - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - - - maven-clean-plugin - 3.0.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.7.0 - - - maven-surefire-plugin - 2.20.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/9SuperMarketJavaConfig/bin/target/classes/applicationContext.xml b/9SuperMarketJavaConfig/bin/target/classes/applicationContext.xml deleted file mode 100644 index 7065378..0000000 --- a/9SuperMarketJavaConfig/bin/target/classes/applicationContext.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/9SuperMarketJavaConfig/bin/target/classes/database.properties b/9SuperMarketJavaConfig/bin/target/classes/database.properties deleted file mode 100644 index 9c1f900..0000000 --- a/9SuperMarketJavaConfig/bin/target/classes/database.properties +++ /dev/null @@ -1,4 +0,0 @@ -driver=com.mysql.jdbc.Driver -url=jdbc:mysql://localhost:3306/mydb1 -dbuser=root -dbpassword=root \ No newline at end of file diff --git a/9SuperMarketJavaConfig/home.jsp b/9SuperMarketJavaConfig/home.jsp deleted file mode 100644 index 1cf0edb..0000000 --- a/9SuperMarketJavaConfig/home.jsp +++ /dev/null @@ -1,26 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" - pageEncoding="ISO-8859-1"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> -<%@page import="java.util.ArrayList"%> -<%@page import="java.util.List"%> -<%@page import="model.Customer"%> - - - - <% - List customerList = (ArrayList) request.getAttribute("list"); - - for (Customer ref : customerList) { - out.print("Id: " + ref.getCustomerId()); - out.print("
"); - out.print("Name: " + ref.getCustomerName()); - out.print("
"); - out.print("Address: " + ref.getCustomerAddress()); - out.print("
"); - out.print("
"); - } - %> - - - - \ No newline at end of file diff --git a/9SuperMarketJavaConfig/index.html b/9SuperMarketJavaConfig/index.html deleted file mode 100644 index abf8582..0000000 --- a/9SuperMarketJavaConfig/index.html +++ /dev/null @@ -1,8 +0,0 @@ - - -
- -
- - \ No newline at end of file diff --git a/9SuperMarketJavaConfig/pom.xml b/9SuperMarketJavaConfig/pom.xml deleted file mode 100644 index 5ee67ad..0000000 --- a/9SuperMarketJavaConfig/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - 4.0.0 - - com.training - groceryApp - 0.0.1-SNAPSHOT - - groceryApp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - mysql - mysql-connector-java - 5.1.38 - - - jstl - jstl - 1.2 - - - - javax.servlet - servlet-api - 2.5 - provided - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - - - maven-clean-plugin - 3.0.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.7.0 - - - maven-surefire-plugin - 2.20.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/9SuperMarketJavaConfig/retailShopDB.mwb b/9SuperMarketJavaConfig/retailShopDB.mwb deleted file mode 100644 index f663073c3a9a102b7d82c2d910db5e9f29ad1ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7997 zcmZ{J1yEc|w=QlWF!(@_L4rfD5ZqmYI}Gmb65QP#f)fZ9+}+(}fZ!H1NRUAv=iGPS zx&NvA_TF7xd#&%Q>gw*bzN)npW#JKUVPIfTU`7pdeUlT^mhRvZ^biY}KwDC)~s(`IbEG?_e14%etQE$V4lN`?2bv~ z!(Wf&tX{%X`j2}jCus^J7O6Q*nR^|Av%apr>god(`T^2xjUVhaRGI%=%1%zz_WU?_ z*<#DX8o~m_iwGG{`tNeVD5F`W&qoqn`B@u1W!1mbWXJgNhvjlpl)5wZX9x9p0QdST za-*43`7_yj>-{qau?^($@*tN03eq5;QdM$lw&a$XMAa#oXzwYEuiS56etm5HY4CaD z{#jo=y#R!B%r9LiWS@z^Ca!jtZEcDsg#>io%uwF+rM0NeM3ZXg{fD3d70>56QVBSc zGFn}Bw&9~6*-5{qM(N3{+YD~7Gj0d#e@`@%)-^DTI{7|ej8g4VLUkD!R>(wu?A;4u>aDF{yi!vNiZrC zk2m|CAkhFvQUV@P9)UKF6$Q1(CeD@^!JZv6*Yyf~BArq&Ha?q5xaDshKwwGm~v@0aP zQZ#G4>~XJ1zsNal7jcEPv+aQEiH~Wv)-Bp?@*G1w^n1g*BzlsQoc%SMiU?gb&jj?j zzI0EqGQT8T=`NY5@_Mhj5jML{7}jk`CLy({`dW2wH7bRHZP~T?JZq>$^1NLS`O}J! zdG-AI{*_Deb={F3n|os{C>=~wr*u7ae`~umBTDpP>{H!L=|$iQmunkItK^A(T%zF| zYKu7+!^ZAHpu&9BSYfdhBGanQ%&GaCWn0;TdS8i^BB+4-Ec0!-4IfFdf_xBkY=x1_ zZ)R#p_F4289!0_}T zp{Rh|!~*Nzn-FQ9_|S6zB5P_ z@z*NIl2ft;Q5{I5!2Up(U~)uNthXYxz-}}dnR+D=n+Vij2?(q!k_Tb34s1mGZjJVX zlFOJi1aP<&->^> zXl!lCxyzTJ8+BeXs~Ivkk{qKCWIt;CN`~%uKE^a%bstd5rRbDrRxE=Tch=X{tc+Rt zYax|$i(?X6uI}Uh4 z@RgP{vc0)v%gqx-18Kv@A)U7F0E~~S@;I0n@%}{>Ozk7*ptGFVIX=p*QeUttvT8_kV8KeF4UG!VaaB>vm&vqqM_S#MM2`pxU{|8 zS!m2E*RaV}w3^y6Wj@R8ccS6xXdk|qSqHwCsY)0rfakLfnX(gk3+5q7jom&Jr-7un zZX1Yg##S-s0dCKhb0TRdVNZLe^lYj1n782Lw39|9Afy-PB(AzrEgw+9>Gt>~r>j;6 zE?=Nmrz z^EQ+skTnhDU%O71f*@5znTNVW#2|+1175aDM_e0Le?viUnOBiSDn_g*mVCWThd_by z)+pN$Xq{WR*b|S=>@6iBDat1Dt8T%&aV39nnq>-kkFKQbBO6?&ryKHyWG@Ok~!{AU~_a1~gP_5^u*y=asjqng`OuLX5)>Vx z{BIsAKMj|{U=tz&B8u}xjANU_dN6wP{v598g$UE}qr0IaAww%Z$tb{~Zs2LXAYUW- z_^xP-DD=tYYWr#nwZ-Qm5o*B30>iZwHBg5}i8PcDngKI-oiQ`e$}7)_pzn&#E=iSJQrNTB)rQ1uX`c{xMq-P+^D${X2=A%E-Z9b zk!kKX`^`zSOTS}&_TKM_kkoen8*{%YMwZ=dFDvu#w>#XRZBwkE)6{`NWP^$8!pRe5 zYX?VxPk?n_I2eQjnoic5Vle|1wRXNJql)cFjSlnuxa)_wPzoea_NK4`0Py5_Y=a>{OAk!qi9{-Kh+uI`%A~nN|pIspmxvkjdj8${X6y0(7Cy!hXyU zBzQl$KUWK_oiYu~aLW;D$F(nQij`3Yy&Ou|>D8SktkJB1{O!EX3uVh#EVf6ga@T}- zmm2Lf&YDRq44G0)24%|h#>cSDuAUS$;Mu-ujZ%1ZC`YP}+VEbjeHdhidv zv(lUD&?d0bsEiu1_e!CCuv=)YGMiKS8oOKW>XT)qw+gmjP#$hBrMsJA?9i)y9`XH| zm#dwfG+uV>;O1e}z!H&_(pf>?ph> z&J!QsPHI7uQy9b2@KgQhYI0kCa`F?Sv#8aLq&m-04!g`J%O6tqYtv=5Y~8W=UwDrF z7=JR|X1r7GBc&dm!6w1Cyq`%)6o#av65a^#;F|BtpbRwtd1n3IJglJ>`$l}-5(98) z|31{4BGlh0+EDnKK!54T=7?MY*^=4A5Xa&!!s9C1D~;>0NyK%JotMu{Tj{p6qSdg-xEpa>Bk7%zA5?ULo#wkLy z1@^#RsN+HiNu03Vp@-b#db&kLftrkR_uKN*@pKq+_y>4)OR7HDz!ef|i9fu?M!2pB zIB#p$$uUpMD*44m;jCYf(_u7?-$%g_+cIEYqq8b){f>>$S?Tb0Hf7eS|KbO|Y}yz% zbr)(*$nh8iF<#WcZ`tG^?~>nr5oOt1F<^Y_FBa^tJ%K4gO4pqdZ7K9VlEW3bN50MlN~wa89q_SCWTCcx*m*7DTsk!{k$W5o*LTKHFw#;-Tt+a@^urCcrz~6kKcl+ttr~I8LsjxMC;*E!hRFKnJTB#q~vm5*RhN(1V z$ArU4a+0~nhSN=Qili9K=^}aJl}uA*p{2*=Bxd#H{UvArtS_hA;7a3VHItM)@$8CH zbK_fcyOEag7+;7=$senas>Qi_(gC8%Z%B6IH)(Ux_1qR>b?uXHbt|#mi|{EA;tlwn zFh-t~_Hi^;CNjUMaegLAdT=<6&#SxUbdw&{BKWOro>{wJUXge)|B>JPE6Fz~S7o;4 zhUM90dJWTTNXlt+%gowzMp2bSRi}udQq9kl#;lmK@janQR35U4_gTzg^=aI7Wmn$G z)KzyfG<7u$UDTDa(h`|pf`(4Dp26P+aP%E+Hr1|_QL%V4&xZ3?8XL~1TE+A_ z%RVu)pc+w$0zg_DSyn6n3CFxb78652KERHfabG%d+NGK(RzbFwm$UZwt+rR)IM2%> z&-W&dMqRHO+bn7*@jjLCNlDp!VUYqo(Xh^Z4IyS%{fm)rX6e+p zPc6E!h^M<|GI^Q)#UvN4ogEpb2|;_LsSo&jH(=Ehs%+p z+YrWnWufmdV)RJK^k~5tT;232p14=>`AiWXiSzyI0=VqUOn+Q$bJ8J2Vdq%Z80_eQ z&3MmHAWG?fCYh@#a!p=7#}(Cg1X2znC$>&X9E$vSUUKsC6+upfs8q7@)jRV}q2J{9 z72qIqt~o=_6HikmC%+V*`3nvBlfH@v#N^|`m@=^A4FBXnBI<^M{X;}xT<7CO-%XX|Tlm@AC}*~> z;9u>6v>cq4O2vP{*PonhrP8AcW<9Xl@TjVDp#|+kt6R!GA z`V^eyc22y3SF(b0B}N_a*@=5kLiV$(bxYTgRzK_45A?cs4eV>C`BnGNU((TV1=;7b zWm>yOgJ|*SK z!_}ELEDhZMm@TXApwqze#412AL_jG2O_53*fPw|53Hq4N213YWqCUx+YT5Mm>FbAI zc^6hA;M}?7wip|8If_V*U~p(Bs@35Ysve+hmF0l^+$FVmj6bf{Eg}ue)rM- zF9#z{AKrJYfi9X9PZ;Ab5yIY`YF}j`|2|1Hf(?!nlYQMt`Fi{!rRh(pLUiZK>sU zalUf3$?hcj_-Osvf(xk8&ZUuTdSR!AC+>(f1-^i@-(2Rt(8c$Qi$Z*y*Ru#;)6YBr z-!2tqrC}*FwMC_Ia*o=s6Jws8E$VAq1yd{rPOS$_e-4!95guKC!w@6OM>eT(tg9(& z$FFugxgoW%?_D%uZh3AUdUlEF~(fN|&xnFMZhCyrHYrjh*<#nCpQq&PSA!p1IviIq0ceJwjKNbnsl0?&D>S_tmE+V)SaQm^!{q5Z|NTVrDy~+o{E)1;vA%m^k`)Mz}-A zKBl~>>`UR3p(`ING2S)x#fx)*WE4KrB%IgU*q+i|+Qf?>^Sw^Jg(K3;pkEZeIq!4Z zUPwXvG_?N8=VDUOek;su?4*21Qpc=cQ=!%^FFXnqzO(7_2hb9mfJomw9Co#!oxaSL z73JbJCg-^ojE0(cNrbQmD~F9x!4@IIL^x8jmhF|nSwj73&5iv=a5>s`yGuoYVbuKV zMr6|g%I#%RlKP0Yr%VwdUI;=Dy9|vHrF6AwUiM^3AJnQtz&NEvs-&`jZi)Oo93NI7 zkvS4I5Hm5KaHjsV1$QB^P}MriA7u$LL*qbU62I6&8)O*yU@3t;dl-FPD~BtlN?3v; z4pQdGcVaUc`$m}kD|iP>s9*~cX0Yi97|x@nBCWjK+GVWwu^WZH{GL1NXR(McstBI$ zkFMqnT#^$ih?!)TH8Ru9$h-Oy>2|=HH!c7;>Ep>mh$&4nf{bxcQcG40j@~Up!f^44 z3m{H$le7i3iALtd^FCilvIeCwlN{Iep-$9Z10EWPLQ1&v%P_yuusMg&RGUJ<|!h=U8s*R;3Y9->z7WcQdOUCQ3HZa@n z(tByLnAv|}(yr(Fa-r|mib%>dN!|Ip{b+*sxHiFA@^I_a8oGs-LT#ihLYP4%&*emo zEhb%H9$`UmJ{XYk85`_@GH)c3M2wi50ZW3{5Ws8NCpSx_oE-6hp8X9SE{TeT$JjnY z42w=WItu6bW#j*4um8$Ro_5FQda$nv3H|Tyf956D)8r|IUKZS;)wl1pYT3zk*Ri4j zp}>?R=jEPo*ueq^Z8QeQ5#LR1+#l4>p5P~ic29?Qeg1;jQ!5H!zjoh;%x|a14%63M zAzHY|!F{mwpy(Mo7!fIv)y;OB`!11`jd&_nDpn{V>N9WLQnO~6>iHZ74Nh+C{pXD% zLQhJ<)bFd*kbAAAU~hnGF&Oz_&^SJ%o8w!s3IR3dv@u8fC6K01{61c1V&9Q-b-1Ki zdM&`LEx&>2JBoIjv&ZaAtZH!?eZ1qr%oiFeSb36F;^hZx)6YiOT)wr>=BC`lE`}4S z+p`%-13pRx+%Liz62d~F&l6TY$B)WQgARtVTgH9wbikMks>SMQZn9p8lpkCU6W8uX z0=P_i3dh|q`&{bVDQVo56z9ZJ^%afa0yY&C2L{;K5bt zM=oFR-ctimp5Y^P2h0Bq{r*pRaQ;zRZu@!)L9YYtFL`h_cCvJEasI%{KU9Mj!~%es z=GS-B!L4<1!*)c0;Fh^|c_CxO(6of#-6~hFtzYHa=fdBy@Z~LY$nGKxxQrw{uo~?8 zSrzn`Z5j+vUMBt)(ao$m1KVN_Of1Jy)nc4bSPt!!qq;Vlnnq97!W#~LqJP~RMOj!l zT=@TgTlaNke?N@@e@*{x^8UmA-<9#dxG*q{0S~XO;=gqAAIAT#lK(Ks3I0Pf|4sb& zHU5X#^6o!~tp8^Id*}aQ3X%NJb5N8;MEc8z`1-zk4VZ;j?*%xKQ1!gssI20 diff --git a/9SuperMarketJavaConfig/retailShopDB.mwb.bak b/9SuperMarketJavaConfig/retailShopDB.mwb.bak deleted file mode 100644 index 0a1943774261ab38749a02db47e6c79070179548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8001 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 customerList = retailerService.viewCustomer(0); - - request.setAttribute("list", customerList); - RequestDispatcher requestDispatcher = request.getRequestDispatcher("home.jsp"); - requestDispatcher.forward(request, response); - } - -} diff --git a/9SuperMarketJavaConfig/src/main/java/controller/AppJavaConfig.java b/9SuperMarketJavaConfig/src/main/java/controller/AppJavaConfig.java deleted file mode 100644 index 448070a..0000000 --- a/9SuperMarketJavaConfig/src/main/java/controller/AppJavaConfig.java +++ /dev/null @@ -1,154 +0,0 @@ -package controller; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.datasource.DriverManagerDataSource; - -import repository.CustomerDAO; -import repository.CustomerDAOImpl; -import repository.GoodsDAO; -import repository.GoodsDAOImpl; -import repository.RetailerDAO; -import repository.RetailerDAOImpl; -import repository.SupplierDAO; -import repository.SupplierDAOImpl; -import service.CustomerService; -import service.CustomerServiceImpl; -import service.GoodsService; -import service.GoodsServiceImpl; -import service.RetailerService; -import service.RetailerServiceImpl; -import service.SupplierService; -import service.SupplierServiceImpl; - -/** - * @class this is java configuration file - */ -@Configuration -@ComponentScan("controller") -@PropertySource("classpath:database.properties") -public class AppJavaConfig { - - /** - * this is java configuration file - */ - AppJavaConfig() { - } - - /** - * @injection - * - */ - @Autowired - Environment environment; - - /** - * @url it is url for a connecting to mysql server and database - * - */ - private static final String URL = "url"; - - /** - * @USER it is USER for a connecting to mysql server with username - * - */ - private static final String USER = "dbuser"; - /** - * @DRIVER it is url for a connecting to mysql server with DRIVER - * - */ - private static final String DRIVER = "driver"; - - /** - * @DRIVER it is url for a connecting to mysql server with PASSWORD - * - */ - private static final String PASSWORD = "dbpassword"; - - - - @Bean - JdbcTemplate jdbcTempalte(DataSource dataSource) - {JdbcTemplate jdbcTemplate=new JdbcTemplate( dataSource); - return jdbcTemplate; - - } - - -/** - * @bean this is used to insert properties of database. - */ - - - @Bean - DataSource dataSource() { - final DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); - driverManagerDataSource.setUrl(environment.getProperty(URL)); - driverManagerDataSource.setUsername(environment.getProperty(USER)); - driverManagerDataSource.setPassword(environment.getProperty(PASSWORD)); - driverManagerDataSource.setDriverClassName(environment.getProperty(DRIVER)); - return driverManagerDataSource; - } - - @Bean - public CustomerDAO customerDaoBean() { - return new CustomerDAOImpl(); - } - - @Bean - public GoodsDAO goodsDAOBean() { - return new GoodsDAOImpl(); - } - - @Bean - public SupplierDAO supplierDAOBean() { - return new SupplierDAOImpl(); - } - - - /** - * this is CustomerService bean used to invoke the - * services - */ - @Bean - public RetailerDAO retailerDAOBean() { - return new RetailerDAOImpl(); - } - - /** - * this is CustomerService bean used to invoke the - * services - */ - @Bean - public CustomerService customerService() { - return new CustomerServiceImpl(); - } - - -/** - * this is GoodsService bean used to invoke the - * services - */ - @Bean - public GoodsService goodsService() { - return new GoodsServiceImpl(); - } - - @Bean - public SupplierService supplierService() { - return new SupplierServiceImpl(); - } - - @Bean - public RetailerService retailerService() { - return new RetailerServiceImpl(); - } - -} diff --git a/9SuperMarketJavaConfig/src/main/java/controller/GroceryMain.class b/9SuperMarketJavaConfig/src/main/java/controller/GroceryMain.class deleted file mode 100644 index d027b9bbaf041c6d4f606fde58cde6f413f25cf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1198 zcmaJ=YflqF6g^Y6Y$;W0Usimg5n3Ky6vRgnff`9oL6Q=p@zZoWmc`vpGdo52BmNKl zAVCx3XMdFOZVR!5jl0P_?%cWe%(>_O{`37OfCW@cL>O|mY-=T5S14;kNn5C+P42W! z7!1jMe!wl4w_Dbm#=fvM!|<}xcJvCvP@%ZXU{qvN#4&`C1fm#b7^^vLvDNh&LhbN| zD;QEWX>)g%D<{~W8V$YY_zd}4c=j?y4p0!h!u#4k6m_kfcB@?6HF1SuU8P#kK@?{+#;X{+LL-{0nX@2%&qbvmwNbM44>rSBF)nsV?9_R^u}#*sue zcvg-fTL?oDL!Ket-|jvMNBiqc(d6vQ_Tw10U)OpslF^$M=*<$iMeySsUP`TcnMgTC(Xz%NhsUD?nrB! zN~bA;;9fb7hgdYRz>x0M`}}bNkFZ1p1;y4b5o8pqJ^gXjA|0heL_*%DT40#3g>iHy zm5cQt{Urhh&v;{)4UG`aa&Wsfz#%ED7RD|4MVnpEJ7Qo}5>j78ubiN3k^{Y13JAdj zh`?USBDA7rqtT?jMKhy0I(>}T7g|IRr!hDN5>(${>^abUiFPBnj4`qVmp_wVl;-&# zNWM#@j*+R&q^_ReS_Hpvdy{R=8L0^~gL@~qKa3^gD`v9BH$3>4XPhE{;sxE3LkfAM zF@+4l%Jp(D_T%F*o{(Rh)b goodsList; - - /** - * @param supplierId - * @param supplierName - * @param supplierAddress - * @param quantityOrder - * @param orderId - * @param amount - * @param goodsList - */ - public Supplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount, List goodsList) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - this.goodsList = goodsList; - } - - public Supplier() { - // TODO Auto-generated constructor stub - } - - public Supplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount) { - this.supplierId = supplierId; - this.supplierName = supplierName; - this.supplierAddress = supplierAddress; - this.quantityOrder = quantityOrder; - this.orderId = orderId; - this.amount = amount; - } - - /** - * @return the supplierId - */ - public int getSupplierId() { - return supplierId; - } - - /** - * @param supplierId - * the supplierId to set - */ - public void setSupplierId(int supplierId) { - this.supplierId = supplierId; - } - - /** - * @return the supplierName - */ - public String getSupplierName() { - return supplierName; - } - - /** - * @param supplierName - * the supplierName to set - */ - public void setSupplierName(String supplierName) { - this.supplierName = supplierName; - } - - /** - * @return the supplierAddress - */ - public String getSupplierAddress() { - return supplierAddress; - } - - /** - * @param supplierAddress - * the supplierAddress to set - */ - public void setSupplierAddress(String supplierAddress) { - this.supplierAddress = supplierAddress; - } - - /** - * @return the quantityOrder - */ - public int getQuantityOrder() { - return quantityOrder; - } - - /** - * @param quantityOrder - * the quantityOrder to set - */ - public void setQuantityOrder(int quantityOrder) { - this.quantityOrder = quantityOrder; - } - - /** - * @return the orderId - */ - public int getOrderId() { - return orderId; - } - - /** - * @param orderId - * the orderId to set - */ - public void setOrderId(int orderId) { - this.orderId = orderId; - } - - /** - * @return the amount - */ - public double getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(double amount) { - this.amount = amount; - } - - /** - * @return the goodsList - */ - public List getGoodsList() { - return goodsList; - } - - /** - * @param goodsList - * the goodsList to set - */ - public void setGoodsList(List goodsList) { - this.goodsList = goodsList; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Supplier [supplierId=" + supplierId + ", supplierName=" + supplierName + ", supplierAddress=" - + supplierAddress + ", quantityOrder=" + quantityOrder + ", orderId=" + orderId + ", amount=" + amount - + ", goodsList=" + goodsList + "]"; - } - - - - -} diff --git a/9SuperMarketJavaConfig/src/main/java/repository/CustomerDAO.java b/9SuperMarketJavaConfig/src/main/java/repository/CustomerDAO.java deleted file mode 100644 index cfb9f3b..0000000 --- a/9SuperMarketJavaConfig/src/main/java/repository/CustomerDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -package repository; - -import model.Customer; - -public interface CustomerDAO { - - - public int addCustomer(Customer c); - - - public int updateCustomer(int customerID, String name); - - - public int removeCustomer(int id); -} diff --git a/9SuperMarketJavaConfig/src/main/java/repository/CustomerDAOImpl.java b/9SuperMarketJavaConfig/src/main/java/repository/CustomerDAOImpl.java deleted file mode 100644 index 2cda69a..0000000 --- a/9SuperMarketJavaConfig/src/main/java/repository/CustomerDAOImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -package repository; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - -import model.Customer; -@Repository() -@Qualifier("customerDAO") -public class CustomerDAOImpl implements CustomerDAO { - - /* - * - */ - @Autowired - private JdbcTemplate jdbcTemplate; - - public void setJdbcTemplate(final JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - - - - public int updateCustomer(final int customerID, final String name) { - - String query = "update customer set customerName=" + "'" + name + "'" + " where customerId=" + customerID; - // String query = "update customer set customerName="+name+" where customerId="+ - // customerID; - - System.out.println(query); - return jdbcTemplate.update(query); - - } - - public int removeCustomer(final int identy) { - final String query = "delete from customer where customerId="+identy; - System.out.println(query); - return jdbcTemplate.update(query); - } - - @Override - public int addCustomer(Customer c) { - String query = "insert into customer values('" + c.getCustomerId() + "','" + c.getCustomerName() + "','" - + c.getCustomerAddress() + "','" + c.getPaymentMode() + "')"; - System.out.println(query); - return jdbcTemplate.update(query); - } -} diff --git a/9SuperMarketJavaConfig/src/main/java/repository/GoodsDAO.java b/9SuperMarketJavaConfig/src/main/java/repository/GoodsDAO.java deleted file mode 100644 index bffefd8..0000000 --- a/9SuperMarketJavaConfig/src/main/java/repository/GoodsDAO.java +++ /dev/null @@ -1,13 +0,0 @@ -package repository; - -import model.Goods; - -public interface GoodsDAO { - - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice); - - public int removeGoods(int goodsId); - - public int updateGoods(int goodsId,String goodsName); -} diff --git a/9SuperMarketJavaConfig/src/main/java/repository/GoodsDAOImpl.java b/9SuperMarketJavaConfig/src/main/java/repository/GoodsDAOImpl.java deleted file mode 100644 index 193eca4..0000000 --- a/9SuperMarketJavaConfig/src/main/java/repository/GoodsDAOImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -package repository; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - -import model.Goods; - -/** - * @author Ram - * - */ -@Repository() -@Qualifier("GoodsDAO") -public class GoodsDAOImpl implements GoodsDAO { - - // private DataSource dataSource; - - // private JdbcTemplate jdbcTemplate = new JdbcTemplate(); - - /** - * configuring a jdbc template - */ - @Autowired - private JdbcTemplate jdbcTemplate; - - public void setJdbcTemplate1(final JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) { - String query = "insert into goods values(" + goodsId + "," + "'" + goodsName + "'" + "," + goodsQuantity+ "," - + goodsPrice + ")"; - System.out.println(query); - - return jdbcTemplate.update(query); - } - - @Override - public int updateGoods(int goodsId, String goodsName) { - String query = "update goods set goodsName=" + "'" + goodsName + "'" + " where goodsId=" + goodsId; - // String query = "update customer set customerName="+name+" where customerId="+ - // customerID; - - System.out.println(query); - return jdbcTemplate.update(query); - } - - @Override - public int removeGoods(int goodsId) { - - String query = "delete from goods where goodsId=" + goodsId; - System.out.println(query); - return jdbcTemplate.update(query); - } - - public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - -} diff --git a/9SuperMarketJavaConfig/src/main/java/repository/RetailerDAO.java b/9SuperMarketJavaConfig/src/main/java/repository/RetailerDAO.java deleted file mode 100644 index 5e3aeed..0000000 --- a/9SuperMarketJavaConfig/src/main/java/repository/RetailerDAO.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * - */ -package repository; - -import java.util.List; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public interface RetailerDAO { - - - int addRetailer(Supplier s); - -public List viewGoods(); - -public List viewCustomer(int customerId ); - -public List viewSupplier(int supplierId); - - -} diff --git a/9SuperMarketJavaConfig/src/main/java/repository/RetailerDAOImpl.java b/9SuperMarketJavaConfig/src/main/java/repository/RetailerDAOImpl.java deleted file mode 100644 index 331f7f9..0000000 --- a/9SuperMarketJavaConfig/src/main/java/repository/RetailerDAOImpl.java +++ /dev/null @@ -1,153 +0,0 @@ -/** - * - */ -package repository; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -import org.springframework.dao.DataAccessException; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.core.ResultSetExtractor; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public class RetailerDAOImpl implements RetailerDAO { - - private JdbcTemplate jdbcTemplate; - - /* - * @Override public int viewGoods() { // TODO Auto-generated method stub String - * query = "select * from goods"; System.out.println(query); return - * jdbcTemplate.update(query); - * - * } - */ - - public List getAllGoods() { - return jdbcTemplate.query("select * from goods", new ResultSetExtractor>() { - @Override - public List extractData(ResultSet rs) throws SQLException, DataAccessException { - - List list = new ArrayList(); - while (rs.next()) { - Goods e = new Goods(); - e.setGoodsId(rs.getInt(1)); - e.setGoodsName(rs.getString(2)); - e.setGoodsQuantity(rs.getInt(3)); - e.setGoodsPrice(rs.getInt(4)); - list.add(e); - - System.out.println(e.getGoodsName()); - System.out.println(e.getGoodsPrice()); - System.out.println(e.getGoodsQuantity()); - - } - - return list; - } - }); - } - - /** - * @return the jdbcTemplate - */ - public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - /** - * @param jdbcTemplate - * the jdbcTemplate to set - */ - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - - @Override - public List viewCustomer(int customerId ) { - - String query = "select * from customer where customerId=" + customerId; - System.out.println(query); - return jdbcTemplate.query(query, new ResultSetExtractor>() { - @Override - public List extractData(final ResultSet rs) throws SQLException, DataAccessException { - - final List list = new ArrayList(); - while (rs.next()) { - final Customer c = new Customer(); - c.setCustomerAddress(rs.getString(3)); - c.setCustomerId(rs.getInt(1)); - c.setCustomerName(rs.getString(2)); - c.setPaymentMode(rs.getString(4)); - list.add(c); - System.out.println(c.getCustomerId()); - System.out.println(c.getCustomerName()); - System.out.println(c.getCustomerAddress()); - System.out.println(c.getPaymentMode()); - - } - - return list; - } - }); - - } - - @Override - public List viewSupplier(int supplierId) { - String query = "select * from supplier where supplierId=" + supplierId; - System.out.println(query); - return jdbcTemplate.query(query, new ResultSetExtractor>() { - @Override - public List extractData(ResultSet rs) throws SQLException, DataAccessException { - - List list = new ArrayList(); - while (rs.next()) { - Supplier c = new Supplier(); - c.setSupplierId(rs.getInt(1)); - c.setSupplierName(rs.getString(2)); - c.setSupplierAddress(rs.getString(3)); - c.setQuantityOrder(rs.getInt(4)); - c.setOrderId(rs.getInt(5)); - c.setAmount(rs.getDouble(6)); - list.add(c); - System.out.println(c.getSupplierId()); - System.out.println(c.getSupplierName()); - System.out.println(c.getSupplierAddress()); - System.out.println(c.getQuantityOrder()); - System.out.println(c.getOrderId()); - System.out.println(c.getAmount()); - - } - - return list; - } - }); - - } - - @Override - public List viewGoods() { - // TODO Auto-generated method stub - return null; - } - - @Override - public int addRetailer(Supplier s) { - - String query = "insert into retailer values (" + "'" + s.getSupplierName() + "'" + "," + "'" - + s.getSupplierAddress() + "'" + ")"; - System.out.println(query); - return jdbcTemplate.update(query); - } - -} diff --git a/9SuperMarketJavaConfig/src/main/java/repository/SupplierDAO.java b/9SuperMarketJavaConfig/src/main/java/repository/SupplierDAO.java deleted file mode 100644 index 1db9abc..0000000 --- a/9SuperMarketJavaConfig/src/main/java/repository/SupplierDAO.java +++ /dev/null @@ -1,17 +0,0 @@ -package repository; - -public interface SupplierDAO { - - public int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); - - public int removeSupplier(int supplierId); -/* - public int updateSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); -*/ - public int updateSupplier(int supplierId, String supplierName); - -} diff --git a/9SuperMarketJavaConfig/src/main/java/repository/SupplierDAOImpl.java b/9SuperMarketJavaConfig/src/main/java/repository/SupplierDAOImpl.java deleted file mode 100644 index c417c0b..0000000 --- a/9SuperMarketJavaConfig/src/main/java/repository/SupplierDAOImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -package repository; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Repository; - - -@Repository() -@Qualifier("supplierDAO") -public class SupplierDAOImpl implements SupplierDAO { - - private DataSource dataSource; - - JdbcTemplate jdbcTemplate; - - - - - - - @Override - public int addSupplier(final int supplierId, final String supplierName, final String supplierAddress, final int quantityOrder, final int orderId, - final double amount) { - String Query = "insert into supplier values(" + supplierId + "," + "'" + supplierName + "'" + "," + "'" - + supplierAddress + "'" + "," + quantityOrder + "," + orderId + "," + amount + ")"; - System.out.println(Query); - return jdbcTemplate.update(Query); - } - - @Override - public int removeSupplier(int supplierId) { - - String query = "delete from supplier where supplierId=" + supplierId; - System.out.println(query); - return jdbcTemplate.update(query); - } - - - @Override - public int updateSupplier(int supplierId, String supplierName) { - - String query = "update supplier set supplierName="+"'" +supplierName+"'"+ "where supplierId="+supplierId; - - System.out.println(query); - return jdbcTemplate.update(query); - } - - /** - * @return the jdbcTemplate - */ - public JdbcTemplate getJdbcTemplate() { - return jdbcTemplate; - } - - /** - * @param jdbcTemplate - * the jdbcTemplate to set - */ - public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { - this.jdbcTemplate = jdbcTemplate; - } - -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/CustomerService.java b/9SuperMarketJavaConfig/src/main/java/service/CustomerService.java deleted file mode 100644 index fffc1be..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/CustomerService.java +++ /dev/null @@ -1,14 +0,0 @@ -package service; - -import model.Customer; - -public interface CustomerService { - - - //public String addCustomer(Customer e); -// public String updateCustomer(int customerID, String name); - //public int removeCustomer(int id); - int addCustomer(Customer c); - int updateCustomer(int customerId, String customerName); - int removeCusotmer(int customerId); -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/CustomerServiceImpl.java b/9SuperMarketJavaConfig/src/main/java/service/CustomerServiceImpl.java deleted file mode 100644 index 5cab024..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/CustomerServiceImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import model.Customer; -import repository.CustomerDAO; - -/** - * @author Ram - * - */ -@Service("customerService") -public class CustomerServiceImpl implements CustomerService { - - @Autowired - private CustomerDAO customerDAO; - - /** - * @param customerDAO - */ - public CustomerServiceImpl(final CustomerDAO customerDAO) { - super(); - this.customerDAO = customerDAO; - } - - public CustomerServiceImpl() { - // TODO Auto-generated constructor stub - } - - - public int addCustomer(final Customer c) { - final int addData = customerDAO.addCustomer(c); - return addData; - } - - public int updateCustomer(int customerId, String customerName) { - int updateData = customerDAO.updateCustomer(customerId, customerName); - return updateData; - } - - @Override - public int removeCusotmer(int customerId) { - int removeData = customerDAO.removeCustomer(customerId); - return removeData; - } - -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/GoodsSeriveImpl.java b/9SuperMarketJavaConfig/src/main/java/service/GoodsSeriveImpl.java deleted file mode 100644 index 8c57291..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/GoodsSeriveImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import repository.GoodsDAO; - -/** - * @author Ram - * - */ -@Service("goodsService") -public class GoodsSeriveImpl implements GoodsService { - - @Autowired - private GoodsDAO goodsDAO; - - /** - * @param goodsDAO - */ - public GoodsSeriveImpl(GoodsDAO goodsDAO) { - super(); - this.goodsDAO = goodsDAO; - } - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) { - int addData = goodsDAO.addGoods(goodsId, goodsName, goodsQuantity, - goodsPrice); - return addData; - } - - @Override - public int removeGoods(int goodsId) { - int remmoveData = goodsDAO.removeGoods(goodsId); - return remmoveData; - } - - @Override - public int updateGoods(int goodsId, String goodsName) { - int updateData = goodsDAO.updateGoods(goodsId,goodsName); - return updateData; - } - - - - - -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/GoodsService.java b/9SuperMarketJavaConfig/src/main/java/service/GoodsService.java deleted file mode 100644 index 345474c..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/GoodsService.java +++ /dev/null @@ -1,30 +0,0 @@ -package service; - -import model.Goods; - -public interface GoodsService { - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and adding goodsID, name,quantity,price - * - */ - int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice); - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and removing a perticular Goods from table - * - */ - int removeGoods(int goodsId); - - /** - * @method this method is calling a Repository Goods which connect to database - * table Goods and updating a perticular Goods - * - */ - int updateGoods(int goodsId, String goodsName); - // public String orderGoods(int goodsId); - -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/GoodsServiceImpl.java b/9SuperMarketJavaConfig/src/main/java/service/GoodsServiceImpl.java deleted file mode 100644 index 92d25e3..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/GoodsServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import model.Goods; -import repository.GoodsDAO; - -@Service("goodsService") -public class GoodsServiceImpl implements GoodsService { - - public GoodsServiceImpl() { - - } - - @Autowired - private GoodsDAO goodsdao; - - public GoodsServiceImpl(final GoodsDAO goodsdao) { - super(); - this.goodsdao = goodsdao; - } - - @Override - public int addGoods(int goodsId, String goodsName, int goodsQuantity, - double goodsPrice) { - - int addData = goodsdao.addGoods(goodsId,goodsName,goodsQuantity,goodsPrice); - return addData; - } - - @Override - public int removeGoods(int goodsId) { - // GoodsDAO goodsDAO = null; - int remmoveData = goodsdao.removeGoods(goodsId); - return remmoveData; - } - - @Override - public int updateGoods(int goodsId, String goodsName) { - // GoodsDAO goodsDAO = null; - int updateData = goodsdao.updateGoods(goodsId, goodsName); - return updateData; - } - -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/RetailerService.java b/9SuperMarketJavaConfig/src/main/java/service/RetailerService.java deleted file mode 100644 index 536690d..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/RetailerService.java +++ /dev/null @@ -1,30 +0,0 @@ -/** - * - */ -package service; - -import java.util.List; - -import model.Customer; -import model.Goods; -import model.Supplier; - -/** - * @author trainee - * - */ -public interface RetailerService { - - //int addSupplier(String supplierName, String supplierAddress); - - int addRetailer(Supplier s); - - -public List viewGoods(); - -public List viewCustomer(int customerId ); - -public List viewSupplier(int supplierId); - - -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/RetailerServiceImpl.java b/9SuperMarketJavaConfig/src/main/java/service/RetailerServiceImpl.java deleted file mode 100644 index 0ca673b..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/RetailerServiceImpl.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * - */ -package service; - -import java.util.ArrayList; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; - -import model.Customer; -import model.Goods; -import model.Supplier; -import repository.CustomerDAO; -import repository.RetailerDAO; -import repository.RetailerDAOImpl; - -/** - * @author trainee - * - */ -public class RetailerServiceImpl implements RetailerService { - - @Autowired - private RetailerDAO retailerDao; - - @Override - public int addRetailer(final Supplier s) { - - return retailerDao.addRetailer(s); - - } - - public List viewCustomer(int customerId ) { - List customerList = new ArrayList(); - customerList = retailerDao.viewCustomer(customerId); - return customerList; - } - - @Override - public List viewSupplier(final int supplierId) { - // TODO Auto-generated method stub - return retailerDao.viewSupplier(supplierId); - } - - @Override - public List viewGoods() { - // TODO Auto-generated method stub - return retailerDao.viewGoods(); - } - -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/SupplierService.java b/9SuperMarketJavaConfig/src/main/java/service/SupplierService.java deleted file mode 100644 index b230abd..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/SupplierService.java +++ /dev/null @@ -1,30 +0,0 @@ -package service; - -/** - * this interface contains various operations. - */ -public interface SupplierService { - - /** - * this method is used to invoke the Repository method addSupplier - * which will hit the databases. - * - */ - int addSupplier(int supplierId, String supplierName, - String supplierAddress, int quantityOrder, int orderId, - double amount); - /** - * this method is used to invoke the Repository method removeSupplier - * which will hit the databases. - * - */ - int removeSupplier(int supplierId); - - /** - * this method is used to invoke the Repository method addSupplier - * which will hit the databases. - * - */ - int updateSupplier(int supplierId,String supplierName); - -} diff --git a/9SuperMarketJavaConfig/src/main/java/service/SupplierServiceImpl.java b/9SuperMarketJavaConfig/src/main/java/service/SupplierServiceImpl.java deleted file mode 100644 index 1ea11f1..0000000 --- a/9SuperMarketJavaConfig/src/main/java/service/SupplierServiceImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import repository.SupplierDAO; - -/** - * this class implementing methods of its parent interface - */ - -@Service("supplierService") -public class SupplierServiceImpl implements SupplierService { - - /** - * @param supplierDAO - * this will be used to access DAO methods - */ - @Autowired - private SupplierDAO supplierDAO; - - /** - * @param supplierDAO - */ - - @Override - public int addSupplier(final int supplierId, final String supplierName, final String supplierAddress, - final int quantityOrder, final int orderId, final double amount) { - - // SupplierDAO supplierDAO = null; - final int addData = supplierDAO.addSupplier(supplierId, supplierName, supplierAddress, quantityOrder, orderId, - amount); - return addData; - - } - - @Override - public int removeSupplier(final int supplierId) { - // final SupplierDAO supplierDAO = null; - final int removeData = supplierDAO.removeSupplier(supplierId); - return removeData; - } - - @Override - public int updateSupplier(final int supplierId, final String supplierName) { - final SupplierDAO supplierDAO = null; - int removeData = supplierDAO.updateSupplier(supplierId, supplierName); - return removeData; - } - -} diff --git a/9SuperMarketJavaConfig/src/main/resources/applicationContext.xml b/9SuperMarketJavaConfig/src/main/resources/applicationContext.xml deleted file mode 100644 index 7065378..0000000 --- a/9SuperMarketJavaConfig/src/main/resources/applicationContext.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/9SuperMarketJavaConfig/src/main/resources/database.properties b/9SuperMarketJavaConfig/src/main/resources/database.properties deleted file mode 100644 index 9c1f900..0000000 --- a/9SuperMarketJavaConfig/src/main/resources/database.properties +++ /dev/null @@ -1,4 +0,0 @@ -driver=com.mysql.jdbc.Driver -url=jdbc:mysql://localhost:3306/mydb1 -dbuser=root -dbpassword=root \ No newline at end of file diff --git a/9SuperMarketJavaConfig/src/test/java/com/training/groceryApp/AppTest.java b/9SuperMarketJavaConfig/src/test/java/com/training/groceryApp/AppTest.java deleted file mode 100644 index 6d9a363..0000000 --- a/9SuperMarketJavaConfig/src/test/java/com/training/groceryApp/AppTest.java +++ /dev/null @@ -1,444 +0,0 @@ -package com.training.groceryApp; - -import static org.hamcrest.CoreMatchers.hasItems; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; - -import java.util.List; - -import org.junit.Test; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; - -import controller.AppJavaConfig; -import model.Customer; - -import model.Goods; -import model.Retailer; -import model.Supplier; -import repository.CustomerDAOImpl; -import repository.GoodsDAOImpl; -import service.CustomerService; -import service.CustomerServiceImpl; -import service.GoodsServiceImpl; -import service.RetailerService; -import service.RetailerServiceImpl; -import service.SupplierService; -import service.SupplierServiceImpl; - -/** - * Unit test for simple Application. - */ -public class AppTest { - - CustomerDAOImpl testAddCustomer; - GoodsDAOImpl testGoods; - - final ApplicationContext context = new AnnotationConfigApplicationContext(AppJavaConfig.class); - - final GoodsServiceImpl goodsService = context.getBean("goodsService", GoodsServiceImpl.class); - final CustomerService customerService = context.getBean("customerService", CustomerServiceImpl.class); - final SupplierService supplierService = context.getBean("supplierService", SupplierServiceImpl.class); - final RetailerService retailerService = context.getBean("retailerService", RetailerServiceImpl.class); - - // Testing Addcustomer method - - @Test - public void addCustomerToDAtabase() { - final long id = 0; - - final Customer customer = new Customer(11, "mukund", "melbern", "credit"); // - assertNotEquals("Invalid id", id, customer.getCustomerId()); // - - long dummy = 1; - final long value = customerService.addCustomer(customer); - - assertEquals("", dummy, value); - - } - - @Test - public void addCustomerToDAtabase1() { - final String name = null; - final Customer customer = new Customer(19, "mukund", "melbern", "credit"); // - - assertNotEquals("Invalid name", name, customer.getCustomerName()); - } - - @Test - public void addCustomerToDAtabase2() { - final String address = null; - final Customer customer = new Customer(19, "mukund", "melbern", "credit"); // - - assertNotEquals("Invalid name", address, customer.getCustomerName()); - } - - @Test - public void addCustomerToDAtabase3() { - final String payment = null; - final Customer customer = new Customer(19, "mukund", "melbern", "credit"); - assertNotEquals("Invalid name", payment, customer.getCustomerName()); - } - - // Junit for deleting a customer - - @Test - public void deleteCustomer() { - long dummy = 1; - final long value = customerService.removeCusotmer(102); - assertEquals("", dummy, value); - } - - // Junit for updating Name of customer - - @Test - public void updateCustomer() { - - // customer.setPaymentMode("credit"); - final long value = customerService.updateCustomer(2, "Ramesh"); - assertEquals("", 1, value); - } - - // Junit for adding a goodIntoDB - - @Test - public void addGoods() { - Goods goods = new Goods(1002, "kitkat", 5, 12.00); - long value = goodsService.addGoods(goods); - assertEquals("", 1002, value); - } - - // Junit for remove a good IntoDB - @Test - public void removeGoods() { - long value = goodsService.removeGoods(1001); - - assertEquals(1, value); - } - - // Junit for updating a goodIntoDB - @Test - public void updateGoods() { - long value = goodsService.updateGoods(1, "apple"); - - assertEquals("", 1, value); - } - - @Test - public void viewCustomer() { - - final List list = retailerService.viewCustomer(2); - assertThat(list, - hasItems((new Customer(5, "rohit", "mumbai", "credit")), new Customer(3, "sona", "chennai", "credit"))); - - } - - @Test - public void viewSupplier() { - final List list = retailerService.viewSupplier(1); - assertThat(list, hasItems((new Supplier(103, "Rahul", "nagpur", 20, 112, 20)), - (new Supplier(101, "kiran", "Newyork", 20, 112, 40)))); - } - - @Test - public void viewGoods() { - final List list = retailerService.viewGoods(); - assertThat(list, hasItems(new Goods(1002, "kitkat", 12, 40))); - } - - // Checking Retailer Entity for null values - @Test - public void checkForNull() { - final String retailerName = null; - final String retailerAddress = null; - - final Retailer retailer = new Retailer("Spectre Litt", "NY"); - assertNotEquals("Enter valid Name", retailerName, retailer.getRetailerName()); - - // assertNotEquals("Enter valid address", retailerAddress, - // retailer.getRetailerAddres()); - } - - public void checkForNullAddress() { - // final String retailerName = null; - final String retailerAddress = null; - - final Retailer retailer = new Retailer("Spectre Litt", "NY"); - // assertNotEquals("Enter valid Name", retailerName, - // retailer.getRetailerName()); - - assertNotEquals("Enter valid address", retailerAddress, retailer.getRetailerAddres()); - } - - // Checking Customer Entity for null values - @Test - public void checkForNullCustomer() { - - final String customerId = null; - - final String paymentMode = null; - - final Customer customer = new Customer(1, "rama", "wardhaa", "debitcard"); - assertNotEquals("Enter valid id", customerId, customer.getCustomerId()); - - assertNotEquals("Enter valid paymentMode", paymentMode, customer.getPaymentMode()); - } - - @Test - public void checkCustName() { - final String customerName = null; - final Customer customer = new Customer(1, "rama", "wardhaa", "debitcard"); - assertNotEquals("Enter valid name", customerName, customer.getCustomerName()); - } - - @Test - public void checkCustAddress() { - final String customerAddress = null; - final Customer customer = new Customer(1, "rama", "wardhaa", "debitcard"); - assertNotEquals("Enter valid address", customerAddress, customer.getCustomerAddress()); - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierId() { - - final int supplierId = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid id", supplierId, supplier.getSupplierId()); - - } - - public void checkForNullSupplierName() { - - final String supplierName = null; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - System.out.println("supplier:" + supplier); - // assertNotEquals("Enter valid id", supplierId, supplier.getSupplierId()); - assertNotEquals("Enter valid name", supplierName, supplier.getSupplierName()); - - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierquantityOrder() { - - final int quantityOrder = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid quantity", quantityOrder, supplier.getQuantityOrder()); - - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierAddress() { - - final String supplierAddress = null; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid address", supplierAddress, supplier.getSupplierAddress()); - - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierOrderID() { - - final int orderId = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid Id", orderId, supplier.getOrderId()); - - } - - // Checking Supplier Entity for null values - @Test - public void checkForNullSupplierAmount() { - - final double amount = 0; - - Supplier supplier = new Supplier(1, "Jessica", "10th Street", 2, 1, 1990.00); - // System.out.println("supplier:" + supplier); - assertNotEquals("Enter valid amount", amount, supplier.getAmount()); - - } - - @Test - public void checkforCustomerOneArg() { - - final String name = null; - - final Customer customer = new Customer("johan"); - assertNotEquals("Enter valid id", name, customer.getCustomerId()); - - // System.out.println("supplier:" + supplier); - - - } - - - @Test - public void checkforsupplierid() - { - long supplierId=0; - Supplier supplier=new Supplier(706,"raman","andheri",10,25,2000); - assertNotEquals("Invalid id",supplierId,supplier.getSupplierId()); - } - - @Test - public void checkforsuppliername() - { - String supplierName=null; - Supplier supplier=new Supplier(706,"raman","andheri",10,25,2000); - assertNotEquals("Invalid name",supplierName,supplier.getSupplierName()); - } - @Test - public void checkforsupplieraddress() - { - String supplierAddress=null; - Supplier supplier=new Supplier(706,"raman","andheri",10,25,2000); - assertNotEquals("Invalid address",supplierAddress,supplier.getSupplierAddress()); - } - - @Test - public void checkforquantityOrder() - { - long quantityOrder=0;; - Supplier supplier=new Supplier(706,"raman","andheri",10,25,2000); - assertNotEquals("Invalid order quantity",quantityOrder,supplier.getQuantityOrder()); - } - @Test - public void checkfororderId() - { - long orderId=0; - Supplier supplier=new Supplier(706,"raman","andheri",10,25,2000); - assertNotEquals("Invalid order id",orderId,supplier.getOrderId()); - } - - @Test - public void checkforamount() - { - float amount=0; - Supplier supplier=new Supplier(706,"raman","andheri",10,25,2000); - assertNotEquals("Invalid amount",amount,supplier.getAmount()); - } - - - - - - - - - - - @Test - public void testSetRetailerName() { - Retailer rname = new Retailer(); - rname.setRetailerName("Thanos"); - assertTrue(rname.getRetailerName() == "Thanos"); - } - - - - @Test - public void testSetRetailerAddress() { - Retailer raddress = new Retailer(); - raddress.setRetailerName("Knowwhere"); - assertTrue(raddress.getRetailerAddres() == "Knowwhere"); - } - - @Test - public void testGetAddress(){ - Retailer rname = new Retailer(); - rname.setRetailerAddres("wardhaa"); - assertTrue(rname.getRetailerAddres() == "wardhaa"); - } - - - - @Test - public void testGetName(){ - Retailer rname = new Retailer(); - rname.setRetailerName("gamora"); - assertTrue(rname.getRetailerName() == "gamora"); - } - - - - - @Test - public void testSetGoodsId() { - final Goods goods = new Goods(); - goods.setGoodsId(8); - assertTrue(goods.getGoodsId() == 8); - } - - - - @Test - public void testSetGoodsName() { - final Goods goods = new Goods(); - goods.setGoodsName("Thanos"); - assertTrue(goods.getGoodsName() == "Thanos"); - } - - - - @Test - public void testsetGoodsQuantity() { - final Goods goods = new Goods(); - goods.setGoodsQuantity(5); - assertTrue(goods.getGoodsQuantity() == 5); - } - - - - @Test - public void testsetGoodsPrice() { - final Goods goods = new Goods(); - goods.setGoodsPrice(552); - assertTrue(goods.getGoodsPrice() == 552); - } - - - - @Test - public void testGetId() { - final Goods goods = new Goods(); - goods.setGoodsId(1); - assertTrue(goods.getGoodsId() == 1); - } - - @Test - public void testGetGoodsName() { - final Goods goods = new Goods(); - goods.setGoodsName("ironman"); - assertTrue(goods.getGoodsName() == "ironman"); - } - - - @Test - public void testGetQuantity() { - final Goods goods = new Goods(); - goods.setGoodsQuantity(8); - assertTrue(goods.getGoodsQuantity() == 8); - } - - - @Test - public void testGetPrice() { - final Goods goods = new Goods(); - goods.setGoodsPrice(8); - assertTrue(goods.getGoodsPrice() == 8); - } - -} diff --git a/9SuperMarketJavaConfig/target/classes/META-INF/MANIFEST.MF b/9SuperMarketJavaConfig/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index c8c47a7..0000000 --- a/9SuperMarketJavaConfig/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: Ram -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/9SuperMarketJavaConfig/target/classes/META-INF/maven/com.training/groceryApp/pom.properties b/9SuperMarketJavaConfig/target/classes/META-INF/maven/com.training/groceryApp/pom.properties deleted file mode 100644 index d03f0f7..0000000 --- a/9SuperMarketJavaConfig/target/classes/META-INF/maven/com.training/groceryApp/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Sat May 05 13:26:20 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.training -m2e.projectName=SuperMarketJavaConfig -m2e.projectLocation=E\:\\JavaTraining-Capg\\SuperMarketJavaConfig -artifactId=groceryApp diff --git a/9SuperMarketJavaConfig/target/classes/META-INF/maven/com.training/groceryApp/pom.xml b/9SuperMarketJavaConfig/target/classes/META-INF/maven/com.training/groceryApp/pom.xml deleted file mode 100644 index 5ee67ad..0000000 --- a/9SuperMarketJavaConfig/target/classes/META-INF/maven/com.training/groceryApp/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - 4.0.0 - - com.training - groceryApp - 0.0.1-SNAPSHOT - - groceryApp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - - - org.springframework - spring-context - 5.0.5.RELEASE - - - - mysql - mysql-connector-java - 5.1.38 - - - jstl - jstl - 1.2 - - - - javax.servlet - servlet-api - 2.5 - provided - - - - org.springframework - spring-jdbc - 5.0.5.RELEASE - - - - org.springframework - spring-tx - 5.0.5.RELEASE - - - - junit - junit - 4.11 - test - - - - - - - - - maven-clean-plugin - 3.0.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.7.0 - - - maven-surefire-plugin - 2.20.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - - diff --git a/9SuperMarketJavaConfig/target/classes/MainServlet/DemoServlet.class b/9SuperMarketJavaConfig/target/classes/MainServlet/DemoServlet.class deleted file mode 100644 index c5ae59b8436db6c19f4e6f95305fae85c6544fe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2102 zcmb7FZCe{f6g`s!Hig)h^fk7nQU${6qF7LZ*fbPNn?ePOVzs!00TwsexH|#-S$^sh zed^<9f0U1Bc9#&60*_zj?athL&Y3%R{`vQhzW_|)X9F>TTQ4lTvMRj;M=En(mfdJ< zAR*AZZyi`irXQL2l&YFf*+hE;I%n;Qt>y&c*`alTM8VybU5MjS3LWSaxKgw$a;a9{ zlHQuNY%*|N;F^YE+OD~{+%P0@Q{a-4N6Oq&Wv3gr@u7i? zz`#YALog}a!CisNzElObqGUy_{Z^%FH$u{;V^wy|Rpr^0UE(&-E3oK#yQW{&OFN!b zmWQtQi&@f#3BsyWTxDrqX1+0`=N)@DU#&WJDX;~hj+B9qcw+&pAWp%te9G}a;I{VX zxsD?}ljok1c<7`H_wb3n>wb;#bs%{NGB`|(Net3yspc!UEIloxU6KZd1n%gx;>0YR zHZGQ{6mA4#21W(O&!gAQA%$_60>-XXkEK-+n0}9P?J%2Gmbdn0N#zWD%ExgA#3Uw3 z%9F~nDM^FW!zNNIr;VDFf$1ifEgQNqg)dW>0dqZdV9Uc}RhVem#i0;jP1%lFw3*yV ze8uPHaM+EnkvH&2p#P#A3*JQvk5OO@rdVDvleTJ#2{w4XOpz%1I-dw6_js4%`+il& z{w9T|SQNNU$)l$?Z~IkCmG-13@bEp3LpCRMrR`X*8_)5=KvCfSX;N)lQ&_?>FMP-K z4lQq6;87Ux#Jj#87Pm9XLc`ir4Gb?VA(SQ1{lr&m1w3|2O*|QT5NHL^ekh7X*!p4d zp$beC|6igrO)|wZ(({z9CC_wv9lu7MNdi|}b4#En5}^4a`&y)ksGn@1=bNXCJ4;to z;2*Tam@St1Q#g&MpPS?9u2r|@mE;276j3$(MdLaL&_6Zvfy=l;Cs%`AG4$Y?b|iXuCdswU(e#ZvZpH8??rkLA z;r>QE-M9J{A1{ri2h!O(hU54f6Elgi^k?bMqv_O4N2ViQ#}_fobdIEFGo5wJ#W9ke zuVaC0M#dN!t>al78e$w8;#2^qpFszZ!65D;i(d9w46*(VV~qVYM|qB(v#`A)*Eg65 zD6NE0BT58~m-sfIxrr65l3oT2SmT*E{Y}&BI*CtnJc;k9UY?P@#|A0CB9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/9SuperMarketJavaConfig/target/classes/controller/AppJavaConfig.class b/9SuperMarketJavaConfig/target/classes/controller/AppJavaConfig.class deleted file mode 100644 index ef16c1b55a36ae46a5112a26432a53af29031e80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3191 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 diff --git a/9SuperMarketJavaConfig/target/classes/model/Retailer.class b/9SuperMarketJavaConfig/target/classes/model/Retailer.class deleted file mode 100644 index 211a6b65589bf564c41816125df15b57352a9bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896 zcmZ{hOH0E*6ot>UHPssJ!}@+uSGHBm!i9n&h~TOys1#hL?NB3W3o-h;6coXQKfoU) zo|#E(wUNMNW^(R1-@W<#dj9~hhm9;!0<*nANBYjC3|-HcK^7T-!kzo*I=1wShkU3>k4r$mnCNU+D zZ+Lxq{?Kd5;M#5Z+IP@){iYju>Kt8W!ds7Sg~o4GCT>;7ImT~l%_#`X*_eQ(cJnr} zuo&N!VcfTAt6Z&(ms5EES2&*#tXeFNSjJN*j#S5YxvRlL(3WQ$xxh>ev8#rPO(LfG zhf;hkOyEx8Zz2>4~Bg z6sKwis3bBjG0YSnQ?2^3G~W=-bXjF^O*9axV zQ)u|Kl+6|5nR>ZgFmjbaaw+6L(LdMY1-+P$?;M`wj%o_|s-{CKtB{gXNVPV$_0ya} zfpqImrdBbE`Gi6vmd|=NTgg?c3JpD|>&2Q;d$?1{<|+yemUv}Mw|-ix7x9vkRLGkz zm9o{eQN_1kBG+q1A-7LFz zQmLd3GqJFz(ANLGZD+(_t_`T}qkg)iQh+8D>W?n$c}bz?RT>~SThl5Hl83DqRPstI zq>@jb&Z_jBv@WZp(h&PaR2rrc$euQex$XMtVXksdKP-ssl#cYmo?bEd+uU^3jt!*5 zZwh8r02CWfcep<+TUQpJSpyDoD4(lYsGMTNh{74FcJ8{ODRv%dbCxA_F}l#594@NX zed#zB?e=5HKpSMU0t0Q=o11=k-tDYRKm2T4K6r_``jvToKdqT~w3v9;rh zCYg>3CsCEMt^-zh?Ufzw+O$^>cU}k11vB~<3_mt&-?ihglc!day*fy@6uM;Z;G1=$ zfbR4VvNmQVGIZZ+>Qr{sN1OCESMYVV-cf0rcDR+x2aYq|f-`fw>Y?{h<65X=@L=}?q)-c);|Jd#B4=7i4k1C~Bc|~& z2a!B42ptL0Ld|(4t{(AK#NQEtoTQ2Kus+4~J76V`ReFn-z%Wy)SB`R<1~>7Lm4a)W zC<>$F`!UEd#d&1F>f?bSR*Va=Vpxb3qe8406j+JJ1aAAq-YC)s<>&(L%bklfhLeAQ z?!~Ibp3-=1szH-6twB?)z`H)t+4>1ojX@9^)ZEBK9wyVK;N zAgmBx4C94anxr}GT&8*aEy61b-(A60qXmlL3onXz6k%~heZu0HI9`oMAaL2@xCVs9 zk#UTgh|L3R!dR3T!!(M!9ODFjIksi2d^W(bG3h=*+9#fh0z4*&Nq_;97z1b~z|Ww< z5=Wj%oYo7o;+BRN;*jMC{Mk-lEOOi-al88t$OTrRMNg_>2 zB27sm{9gf*pbF`l$vTczhW&&le`$uzPDBaEkmDdJHCux?{H$BlLMtRG+6D+F1;V)W zYEtJ6@e2wC*T&4#RE+!^&!;#30oyfi;k(Zr` z%-D(OAadA)2q%t-yyBRepglFmjznH{PEF8GqzobtdJy4OVj{0O5((RheBnssb!Q@B zJCQFz!X$JsL+HS;ac{tF1=9b|kV&Yv$!O^d}DsckBv=lby&nAo6Vw zBHT4h>?Cz+q{%r^gW3E(1Vzq z*{!+e#_$*wRPnC@D{J-$K{G}DPukoM+A;;c+J!xZCGf7aXV`vE+Clc& zmv)%#`_i5}ql3UF(w;w~!$1!98Rc8y2gE3TjPd>>rRgU+pvP@e=*`(_fL0%!{0Ab8 BEgt{? diff --git a/9SuperMarketJavaConfig/target/classes/repository/CustomerDAO.class b/9SuperMarketJavaConfig/target/classes/repository/CustomerDAO.class deleted file mode 100644 index dea0d980fc5ffac863d4e8982c26564222d77528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmYk1%?g4*6h^;M)3P6ez-O>cE?TyVA`k=@KEb4eDC)>K3cXs39-xPc#=>lKXK~LQ z&V9b_4*+{CEocOeU^QVD5p3L` zax~iPOL|5R_!1N>2r&%0SdfH0$z$$LHLJkNQ~+4t{%{`d>Pee9=@5Sa92+x4x$^^WwF z&<|W&daKLp6}#O^At`Wu-#9SzmfYS1St#(O!W5>(Du!GV_VYO2&BM#)%BXX z-}Wr0x$7CWJaoP9b!DSBTuH#b8kuxz2ko@wW;BR`O~hPUuGJHrhFCfz}^ zTz!MO28<~UyPUzhc$mTifze3dv)3BlQ+lOTj|VL$gGX3OVNsy;-&4Q!_H zjNHz;YuLiJz_q3fPCzPbFn+cS%P)5zKOZ@NuHm_=`$&(WYGD=lOATMCyKK+hvT1tK z_to_`8opK6!@S-wj%=n?V+v^)0*QQ)vNqTy=hLF}TW;tzpHQy{=OMoI zgPb#*)j6L#j@P);ISX}KdV%3zxJckSM`a9}-QcK9m0K30oS8MoIV$HRS|>OUmgauP z#Hn{CIvu0WcoboxV--hG(L1yRUdGKh){i8eWGwwpOg_)vdVyEwk1>sbdt6 zF~9aJUSBxIJEh++!MXf1T{@J98335VG=HwP4njqXKsK%f_ z#h|qav_{amW2`gn?5E71>(7)H@%oFN_19|s9S7=jIl&2*1DI!jEZ`yMMZTG4GB7eQ16|I*zzlRAD+3z?$eHX6 T9AKK0feR=Dv>iw?G4KEYZ&NoK diff --git a/9SuperMarketJavaConfig/target/classes/repository/GoodsDAOImpl.class b/9SuperMarketJavaConfig/target/classes/repository/GoodsDAOImpl.class deleted file mode 100644 index 04ee97f8e216f9a4b067ed649fd349966d624d41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2245 zcmb7EYgZFj6x}z3ObAgRRw^nIT9qU`M*0$s(1Iw9jYNT_weKOh#G%PdI+?)YQ~yvu zv|TN(RoChd=#O%_@0}sMqKkf*IdkWpv-iH|asPYu&%XdZgk>Ni@UADDZp-#vZ_iwD z-D+!ju~cX@>jt6%gWJ}QW!5dHW|lU$WyLoT6S&YNL?F3c-K=a#hFZQ9m@2wn&1^M2 z+o^4NRzvQ(-p{7;F)OYo%|}PP^8zDlZO6A8vTV2P&AME49M`ve+jUw3b6ue}rRB8D zEvurXTb%%NvF*FNwkNBEjoq^y+g}jq$z;m{(fe*yCeVX{B>IsQ7%19~Tx~ZtrMF>` zS0Gh%D^|U1dA3@IKcoJ0n?gp4T~4l&MW(@)^pBotR=~`375;`CWXpYEIg&6C7l>Qc zsxF7XrA(oCSci3AWi(${&K3+@VZh0)rM6wKN-vI43bvh=^!&8#_-?wUs+-=i>TTJ| zBybsHDhX+Ui<#5-*|PF@FNybYooTe1P3cqxu4W3^Q_dk{K8~9LVoC*ORA5$Mx*POc z0451Ap#Y{8z>FeXejDK}`e&8@2T6AHN6ee=1{o4~Cv!S7--k~yXW;g+-d^8p`LdD3 z9o%K7xNV;~2}Ihi`GooQi7Bl{K7o5!Ffh*<&}l!uoy4aqordapzwRWki2DYX1afB| zg(Q~ofC+Cmt9p#O)}}xbUCjbZBDm_)t5r^!YT%O{!R|b#9iFx=4w=6vkkD%$t-=Vg zEYSN)TYB8+4~SP(uLulxYrSkCj;E|l;2E|RyFd6+BIYOJSm$u1cb`j72LB6HX06|o z4R=R|=utKkvAz;WS7lxLGQH)wjS%o;=s@lGd3A9BG(xpe_eo#~kfE zZr}kXw7>;QB6UY#2@kQNk6ps&C}{a5JmS9|?e_(Wh!P=%$J|xPT4i*Qlwau+rI)D> z@`MLDl)grt>R8meN~zPKQraUz&ufw?jNuk;Vpa>x1&|$qW=EhI3LIm#lo(a|4SX4j zsd23&k83gIFsr10OnU0liK0D4f19*(EYBTHpAJAe^y4A@P)Hgf-Pd>)k{S00djxO^$(QxV+%jM2A(PZ=l}o! diff --git a/9SuperMarketJavaConfig/target/classes/repository/RetailerDAO.class b/9SuperMarketJavaConfig/target/classes/repository/RetailerDAO.class deleted file mode 100644 index 19e875a992cbadf0b857226d4dd5f69fc2b0343e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmaKo%}N6?6ot>NwPSzOTEV>wq1~8;%Mqa{N@1YjJVES)l9DzZqE5`a^62)-vC@;l%Pd8bE>qJ_SU_KN9Cn9%H2)p3EG6=N^YevaiNOiq9TmOldPcxuZ_rbw9R r_4hgi!XDQOw7Ix_bof9>aKQ5}Ph04*?ql$+4_P1m(#L!=Y@8>bx2(V0RNIMb>EqUCP-0OSvmKddmekAb8deB>(}1^T*jV)h`@Q*XgHqf zJMMmN-S9QjGTf!YYO&t1Cg&7H1rj^j6D?3P=$iiar9wGML!Y(eMxy?sASqkxmn*b+`HPAWeA)tIl5+TXs#*GZDmxJ zCNO?NzR5Y3HeiHsmNZ`zm`aucZoJ3VOThV5sBHSCl`EN^Pq+B;o^CXJ)3H4TZwiba zx>eRnhc*Ro31p7rwW>KenX;hkhUXnR2=rIXnyvXwm%y(4uWIH?by8;KZaGfX%P-^= zOb84I^#m0cTvywdWydj&AqDRcbeBgQ7cn$|_wc@gDUx{zI@f6E~Qx90&XbyMBvOz zmLx$c3iyR^mdx$Xf!O_baKpWOZcZxh=tkO@WBZ{Tc~z_U;QW zTBMV~Lu>cq2zFtxXJQ4$dKY-V(OKe&BmPH6ouMkerthw3jrQ6nPgA1x{>A{@;4>${aScaBu-Qx3Y*H#RF+o>ub z%jaJGx~gd62{)Q;ELc`BP+a29Fm*Gp7H!*b7cI^63=bEGzmK0&5Q&6*Y55D%$4@^b zGXs>aBf@_mp3eLNHT@iCp79jHYf=|jr1vDw@~qNFYKJkxZ;n6480~e+G2VOw=Ww2K z1aHg8LZvOr^Wzs7zyBN;R({087r03A-EuY)J-}oHEu^!VQwNxl;-zdR*4AFlW|Tnu zu7wY$vj_M%f_pz>G2241g_TfRZ($>pzHH$^<^T@`zW@7&>7ST18UVP8LCQ(OPO+pk z3(xR%oaQOZcW4GTki%`vVI7z7fIqE|XmM~Y0GkerZ-XTaY(XdJ(=btmL72m+(4$6} z+sq=#32i2AJJbvy@+SrqEc}7ZM1gGW($LM83BLUfg WsA|87~LnNOd%s6H*Kx-BE^J|25D7nC^Z7D(Qs>MXsN9ZlhZITnMr3RTzn9J z_yYb_*OD&mT0VfUq)Xi=6VjwoG+9}E=X~e8?EPK%{jXnt18^OC8X^K0JXv*pD{#Go z^gS6EmMy*c>~gMBwMVBkL9>K$UWEF zNpF`n&9v!ylCJ!k9Ta4+upfAaN%sPs!ItHZPBLcx^+7XyH)A=!|OV3 z;6rvri^E(gd{9&mKGrd#|1TYjrwcPXyIaAC@qf)0R zr{fEJNkqhYOp!vwE+^teENfUgE@Hd6jul0Prbace9fk0ojsn(*zQvhBFEAKCu|$g~ zDmN)*{6NP;W!&Fl+$fe(Khp7)Quk2Z#@as=-x z&*B_)QJ%kjfsu#LacS`flwaU7#rKv{$<8B;MsSGnR5E&mYf79-CC@Z&KT0LFhWN=u z>IgFttpAM9Qiu5b5cyDAJ;eP`T5n1ll#)kyEb#r`-%b3;=+Qcoo9LmuM*R1gTagIX zxkeu#!Lhl44cx{f+~tg{;xVNskQ@q^Z}(x=k&lN+8pw$W1~$pSS$KR=BIW^FOFSj! zG9xLbLfsa17H?vR{E3)`TYtdp%aXcnDq5*i#TetADn{pc@(?>J{jd<7b>cbR^&17M YQkR?t;V!B?NAV0kb}6ais#5Xu58*Exk^lez diff --git a/9SuperMarketJavaConfig/target/classes/repository/RetailerDAOImpl$3.class b/9SuperMarketJavaConfig/target/classes/repository/RetailerDAOImpl$3.class deleted file mode 100644 index 1829fec0515ea4171d1f288bc4359ca8e954d0e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2343 zcma)7?Nb|N5dS@aauA-D2nDs)zKNKSrm14J8l*;EY%oA+Dz^A~T%Lx5%U!s;Q0TjF z^=-y+{MZ>kIgVe|8R=kW`~&=#bkyCukR~lflL_qYKD)R3`|a-Y$KSvG4qymhX^05y zcU8slOy6S7o4;s!{m1E@`G>zWL+6G~+w?~S z4#synn3xl29d(MT0|L7xG_*(2f-Z>;!~|O6e4s0D+G@I5UQq5ieZf)!-Fe5*tvTH_ z`MIWS<T&oix8PYZ%J&>J9=O1+!%9e$}PIPX4cKhVx~D%t{xk zm5OC5H#3saa8RHpNGV7<>$>_nXCB1?bZIyuu&3E6io@vY#M5|2!vH~AFQ-nsL>vjC zvZVZ+?GsV)Tq4JANr|IK5n-P4w{pl8!vk|1GA(f&&r)gRTJX8Q2ru#uQ4QKKRA)Hc zki_#iK|D8vo2GVTp9eh>bL{h?#7Xw)Zt%$#i!MRS=9eWhoMDX2vsK;pO@DpHEh?9d zuSkrrF-pcjnJaSAuS#U`TA1{hQwSAHrfEJ4>z=R560mw1~o(0KZN%jO#2m3R;D6Aul+LLTp3fz?FMIRwkaH_7MCTO!$UH9$yW88QGi(xj6 zA@bWTqMa7}@PAh{LWp#Y+lECqj$N8k{-RUVa7$p{!!HDh&+&zTTs76Dtv02$tZ#%y z5@gP{l{;$bo~Jwvy|8N%vF5JPPsUPv} zT^uIysp(X*brby&Y+x{z+_i~gEIyY?w$;QJQc10L;H6Zuy(SK)k}*1QiVu$-O>N@! z2;TYyQ>hIUHnya9Ht<2HTc}H_Ze6TP%NuZ#n^+OJ{m=5zpD5ARpyHbLnG?U;{fTH s$F{-b25xXUA%|@NXS7%X4Hx-gAbnKh>SIciwVzTFUy{Uq!7S6~U(wc4X8-^I diff --git a/9SuperMarketJavaConfig/target/classes/repository/RetailerDAOImpl.class b/9SuperMarketJavaConfig/target/classes/repository/RetailerDAOImpl.class deleted file mode 100644 index c945433c9c2e0d14ce66101c03dee68f6446b867..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2592 zcmb7FYg5}s6g_JmGDZ!=2_%Iin3fdVI4BA9X+lCE2~HiLn9|U=w4K(OX=Xb8+#l8HT|JDk4NW~`?P|66-gECcd-v~u{`eEX3|s{fh7rMQmTfqe zIMUX+qZ=j{OAD*HO3hTz%`mv9ALyE?SIgS!_8u=f3VIoaJ6kcRd!_B-1}AIX;S8C) zCCZvz6GpYXBlHSCw8Xw9_h>~+aP4u^?kq#^oKZELd4{fJYLlUR(JJv6y6~EcKExOX z@txHQ8zbrVaWGjvD?`-Y=$fO&M0MW6s*6@odwf;WLYKJ98ae5 zUaGERm|EVj9oo`YFv?ZkaRo&hZ`&}JuMj>{^E_ndvwdK=q(VV7iq{z~*xaOgCDMr< zVO0`k8Arh=;W{1G#H|=ca8;&zjbSW#RtBlf7!r6x!8k+u)yu5nO-wNKJaf4?VtAVL z)AkrHIFhLBe~`A$ZP#=P+uNM)%920vVMZO5u`K~yDk9oWC#z8X>6$`je=hAW=!sbiHu(UPOi$gxS zUZF@!c&Ok3mD8)n$%+jvDBiBufX{+ktC@!6 z^9<&~O~hOjAGMKV2R;IF!dD_kLE&t~Gcl}th>wk^gGiwTEv8>DmBJP)H5asx2BK6h ziccA?8C9DLCqZ?x5+Z2Hi38nqxt&N(#_&15RPY5IF2DVR_A0)TB+C;PF0D|*SE zWVRV@bP`otJwxe4LE>VQQS8u=k#Tob7&1n@DaJynB)Dxyu}`~FvL%sNs<23)Zms0q z0v)wXR5I$jgRNB{$_th&iu@s6MI_X)V!@>}Ewx32=c-jM7ERr@xs7q^yj}F~p?^d+ zV7lOoM*d2wOhqyta;HBzQ0EF3_e7jVxPw-T|!SN zKEp~Aj@1r0)=tH-E^%yh#<5Q^Ou|t)1;@v2I5ykZ&UkeqrLb0ZzHMSB(qQKkJS7WB z?RS*7tmKkc$t}uYs*ca<_&Q#c4<62FwH(gldo*h;b{*zV5bi sM{4WOn=)K#RC)x-wBlDf0^xbG;m|lj_(o`yzh!@*=H>nV1^x+TT>t<8 diff --git a/9SuperMarketJavaConfig/target/classes/repository/SupplierDAO.class b/9SuperMarketJavaConfig/target/classes/repository/SupplierDAO.class deleted file mode 100644 index 8890dc8250e1fc4cd93a61f8f310e3fde746947c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmX^0Z`VEs1_omWUUmj1Mh3B>)Pnrt%#!?~O8wx{f`XjP)FKy0e|82IMh1bb#Ii*F zoW#6zegCAa)Z`LI2JXa^6qqtb25k*bAB39VlA_GKbZblzPfr(3Peum5qSV~{vQ&h2 z77b6ZcxgdOVhNJC7&c=;D!GF5ON)|I-7<4hfv$rY1az(*$Q5ji42%rSK)*3CFaurB a%D~0|@&!8s2bkt$-~!43y#OSc7h+o_-NMRR(W=*?=o7fGryuBAO}BTowaT8X`cXs#Qr)8j;)d?)WvAg*CA~^2 z_$STVuW5z0Jui^hGb+_h$sD>*zqyj*?rL7$HSOIUSGVK~$Nf=LK3dgrrS|xkH=`qq zrfvGm0==2+mO$SF$B=RKVkm)gNC*s-Ok1uttcr9u^-7Hik|n3A*S2)mRPUj&&wp-u z0+XfgwWtm-**V=XT740i%@l*0nhh!YigEs|rC2Ovi&0z_xZG)9)BAqItQpdcVT`Fw z+mo)JHf`TYdtvj_2YRg`y-XY_OsI+`1x7Mwb7Z%a$2$pJMVdX)>vd@x#LN`4XPm>N z`53MVh&dH_Lj~RxnC}Mt27nm?%qW1Y0?4U^g*PRfqkmTUFC?JhU4fYIG&>=1DRVY5 zKY;h~K@_)6NUwb8`O-?@L)_-rorcezG)bC{_LNibi79m}AIBZsjpAd0i$Uj4{+vKw zwKJ-e=GW{22rMNqfOs7DuoA^50=c)BVgmQ^fUR%TDSE1`>y(Q8CR(E{az28FM9Z*B ztt)k&772AX)bd#|3|D#->iPYKZu_QxxaLwotin;J!i?ya)3DhSQ4r`~Z%Fr0V9=G8 zb0Ev1toWT!8O0dZ1*Q#IlfF#vxQ^A)-HYeamF?G}u|%x>5UW{Y2P@U>J5cES9 z+em3o`t280@zP8TUkMC%NjS7C{o`M|zydY$_9F=zcN#*={2v6hQsT`G_Q+Jr<5H{a za4jyVX$g#Nu;r#Dw@lCEQdzNW$Jc$+u{o;Qt_dk&S33S-U1}TcrAx+lx_VcnZhP8} zUJX{W-iFuK8+y&$;hJV>f3PgLrCMqsM@&)Hz5MS-5C5Wwaot0yoX-gDT#|gA=bOe; z@a)gM!r*Vb^x#711Ue1#u3YJWBrft~H!#Ad3jUW#26$S3A@wXd`U>L{N4S!lI>Pnj zG#_)VOUE>S!Zgy?@*nAM-9{rv$Rua!cZB)7vET9DSnLQNhf9(ryk9kwL7CuLb-P$I` z6Z*v%y^6K4^j*fO$f=<8r(x-2{Dg#AcfgnDF}j06z;)8Qfl=HHXr`MWZJJXd&0$Vq zBcLfz#%7rGXL>7=T9EV$Chc_iOEye(pA=R}fqf1r@H|6dj%#}X)118;Z>|a1rl7Su zrG=fk8j?|pdWNqd>(5IENjc>x>WqPX-L~^r#V6mgScwk-T0PY0{ fsis$(TqF>&p!M4z<9GO;=Mdk2;HeY6;-UH)7JVF| diff --git a/9SuperMarketJavaConfig/target/classes/service/CustomerService.class b/9SuperMarketJavaConfig/target/classes/service/CustomerService.class deleted file mode 100644 index ab30bb328d9017ed09e6adca1ccd14199ff4a6da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmYL^%?g4*5Xb*hrez-lMZJPu^3btk5C}pCpJ3A=6m?@=eYg%iKo1qI*~evvWq$LY z-#nhTJAfUg4tj)j#i~hT_78QXWx*=y{thg{JQI!Zb5UOW(>dc<6UHJ*z9?bgg@sHw z|4r{V0by2O6QTK!t-K)oM@3qt<)tGP7qV$dsm*SJ-UeJ0JiZe4NIUHs-W*Sm9yUqwck;}NxZLi zy6rSl0@LTRFP*mZ&Ya`MxoYY(CIse3qzTx~1n6MzSfEe~RM!t(?FW}b3f}ApEWGP^ z+U=;i8@i3Q+VebLOYQnzDDb-G2WL*$4P5W+G>{#2;Rm0bhLT?BoXTc|CWi^mUQhcM zZlGF(op|GVuHI#3rBU4FxbE%FqMUkX@Rj)xjqSjyIG`hM_{Vvdg`dxX{g}6 zq(0u%{HAQzW#F29a+uN|T?$^RjWERcNL99MwFV9g%$8~$(zl0>?3AlE9$+zzqQKnk zmSr)If`DkUCpXgt(j+*LS~8$2kneR{Qmbpmxl*-u-N+Mdj7>+{AHnP}6g_?#D(K};)d=TenPW)cbREMr{ zx-by_*JIo=3Is~GzKl?-K>7NztDGc-o{#rsyGOLCK`qG@%VoPc#yKq0ZLX92CMLLM zxSDetSXx!&N^UEX*26H;W z+~z8HH*PSm;WANbk#I{9l#yWM#8CX|NE3@XW~8CcRlZ_o{R#^f-Y$OTL98nVS|Q_V z1hgCn4>jdT@Q_e8;~!y}voMb!0sp}06tVIKytr|N$79%Cx{1Ct$3Do_~rcUSa*VA~q;;b3_p_jVWR)D#C&jS@1k+r%jp{94|v` F{{aWY22%h4 diff --git a/9SuperMarketJavaConfig/target/classes/service/GoodsSeriveImpl.class b/9SuperMarketJavaConfig/target/classes/service/GoodsSeriveImpl.class deleted file mode 100644 index 712bf619f75bdfb405090e57c477af1223e1b245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1203 zcmZuwT~8B16g{&oE%b{*p%f{Ig4z~jRg5t~Nr*(!qyZJv2j8acP#4?XW_Mdc{7b%= zXbe911N>3Ov$JbSun)VFd*|MB?m2h&_n)7?0PNyv5{AH%r`(a%R_2l8bi7mLS|e5O z4|++&1@h-|B+Z_*yXHyjT($iq5&{c1TY`Rp>282PgO>f{@cK6JceRbiupUjq$wr8HnwuX}92J>L( zI~SI#I)qKUux!iU7bsOG5?7l7@mEeqr4Ykx25IC4VwGxh1_JXLBrz>8+puhPJnXlW z`(AQ5-ZY%H>@}rp1#y&&`yVY%yWF^GLgX9AnUjwTp(K#hj@CN@qAoC_qhmS~jP@U@KvoyL9ZGuaUkapj{KnPW5r@R%V29F| z0%=$Eosl{UHb!qM^>Cs}2KR73ybkW8;^Ckp{eQ*9Ns_|$hZ)qcMdGj_>`t9JL$|G7 zTY;qun(_K8+X-X{R3`4;^OdU{|8k&Ab_5?8&7B&_-jGNcEiTIA4i_2YGsVXU_Q`XG zUwMLOif5c>8X3N`j9#t|DM9MSTWG)cNwMB!RusV>C)q`B&fq|Fh>k(2KY=drWYU=f{ zcubv*sMD;g65Jpxml}b8V09oN7plC%b`1NgH_@wfx~9=S;D>%QjC^^+FGbfdiK@izZdLY}_7#SEDn1Rk`U|4R_6?ob!ooo07i!hiC` zL}T#5AK;HN-kDts!9MKH-n-|Xd+xdO`_Io`0Cw=)M2evjieTh*gncNb8=l00(;xIq z7z}e~e8lY@_q+CS`%H8q6B&kuNi_`9T}9z?$xvzrVjx2=lEFpH+}J1wUTV7!s8$Rdqd3prQ}vrW$zN5g(w1Rpr{WteZu4)3*i;HfxC8qp_@ zge)~D&8Iw}R+Z|+(Q2(3FqAErm?kH<>uNt0-f3Q$coM1UcAZAe$zcgACYBkB6TGr; z8x;mqTk5zB%wd?((Ggjr2KbMaA+G`NhMY`}E*P>pejCt!iJ?J!B&@+B&X5a4Uyj6~ zS{XT3bz((T3lH!x{;mEe;NigK(LZo`(nxXnV+(a`QscNFuFjswVbBo=o-)3qJ6^kI z+iDJm>cs7bkqCs0E(XF*N@xXBBiX1Mkh?FQ!J6GMJJpgi8ZORSpSC7^44m_xWr-xFEXXf7fN53xI%JQHSr!5 zQOTINNclT@wj%CgO}8zQJ9o6GBJN|Igw0X3K{@3PEj$r$OlT!NuLWGj2^QW#)B1- a!7S>qtp`iN)&@P%E6-8Kr}R7vvGW(QK=fb$ diff --git a/9SuperMarketJavaConfig/target/classes/service/RetailerService.class b/9SuperMarketJavaConfig/target/classes/service/RetailerService.class deleted file mode 100644 index f93c593160cc79de8118a3471b4d4626304a170d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmaKo%}T>S6ot>NwXr{Ht%7S8Lc4JmE+cLPr4SIz6O75FOi4RsGKufz!Uyo7#GBYr zq2g}NopZiBbKXB*-vC@=5}`vlFWJ>5WA(&dn}S{Xr6Y6+a!PLeEsjXbb_tFvJEL5;<>#F%; pk3iUyZh@|pw~wA22oVls-j`_y1JOf_zV)H#qhI=1ZpN+i;0s znwStY@dx;$jAypng;?-I=k!d^dERrG{{Hjh7k~}COv7N9@`XB)4PhOKfJ;ZHTGy|( zJ5Cw{3?s+q5Qfq{}dBdkyX!awWANUk(JH zBo#7k-_WR@52@vNv)P**!&uR7lbmDK!cNDLLX}I^3}{*=(iqBN5>sj1XDD1h6ccwb z&cH}_PUr_-TPUqnE!oj-!azEfE&YJ%$<$=a1~gi{ru(_R%U;7#R?OZs@f7RSPt6NeL%g9^PY<=X#VhZB zP4|O2T40Jkx9DT&J(A7PKWLC_maM*~mqq7o@+`7U-!7kH_#1sOFhZve1`4=Crw-L= zqZlL0^wR0n$*(EeAe&qMj>5_XCJcNb_bOs0LKM1TF@h5C0Mi6vdQb=xL{L-T2RJY8WR7M67m_bk{>w#Rt#>l|Pzzp;t0|PVA2doTi Y3?QGdGjM=uP6jTZ4A2`ul8J!_0AzSaZ2$lO diff --git a/9SuperMarketJavaConfig/target/classes/service/SupplierServiceImpl.class b/9SuperMarketJavaConfig/target/classes/service/SupplierServiceImpl.class deleted file mode 100644 index 9ea7a5b91fed1d3314c6ad765a5703c30b473ddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1263 zcmZ`&+fLg+5S>k&3%L+V2?-4p=r!SHS`ey4TPbQ($x@U^q~d)OFLY^Qr)xWi@91yz zrBbDeKJ)|nQB}`6PJ#qHcxQHZ=FFKh>%aeg{~@9SI!sZFQN;{>GtYQ0MB~#0vmW^F zrBuQOZ1Syir2n2#yjnYDWPEUKk)b#ha+IYUqe4?Uq7@9fLVe<>%V@Fb_IUr4E2;O< zq2Yg)AhOoHr%|mBs%5!tPn2V{UA3AsxjMe4e|-DIvKlpOj-XBMPS~W|vuI1{)i-O2G)SZOTn7Q&V*&KiLGBW{{v2p7O?7ILcjy8Iurr4NDpC|9u`)e{0-n5 zy0rC^mMc5EMWdJ~C$FiTrlWK*{T)|hxJ6VYT1VXtB(4KuGlV_?0Ma99?XA*USgu5m z5f=+@H{iuXZxgo~sYFlUB|`5hJph% diff --git a/9SuperMarketJavaConfig/target/test-classes/com/training/groceryApp/AppTest.class b/9SuperMarketJavaConfig/target/test-classes/com/training/groceryApp/AppTest.class deleted file mode 100644 index e2c7ce61f73861408bb71e53e59f77c934a21171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11470 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 L%4<+(3BUe3BKfiM diff --git a/AllStudyMaterialLinksToLearn b/AllStudyMaterialLinksToLearn deleted file mode 100644 index d46fa6b..0000000 --- a/AllStudyMaterialLinksToLearn +++ /dev/null @@ -1,145 +0,0 @@ -#Spring boot -http://www.baeldung.com/spring-boot-start -http://www.springboottutorial.com/spring-boot-crud-rest-service-with-jpa-hibernate -#Crud Operations -https://o7planning.org/en/11645/crud-restful-web-service-with-spring-boot-example -#SpringCloud -https://o7planning.org/en/11669/spring-boot -#JspServlet crud operation -http://www.codejava.net/coding/jsp-servlet-jdbc-mysql-create-read-update-delete-crud-example -#Jpa Tutorials -https://www.javacodegeeks.com/2018/05/spring-data-jpa-tutorial.html -#NOSQL mongodb -https://www.javacodegeeks.com/2015/09/mongodb-a-scalable-nosql-db.html -#Mockito -https://www.javacodegeeks.com/2015/11/testing-with-mockito.html -https://www.javacodegeeks.com/2015/11/testing-with-mockito.html?utm_content=buffer28329&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer -#MicroServices -https://www.appdynamics.com/lp/getting-started-with-containers-and-microservices/?utm_source=javacodegeeks&utm_medium=sponsorship%20content%20syndication&utm_campaign=jcg%20sponsored%20post&utm_content=getting%20startedwith%20microservices&utm_term=jcg%20sponsored%20blog%20post&utm_budget=digital - - -#SpringSecurity (ChargeAhead) -https://www.youtube.com/watch?v=QA9JJ-NFLo4 -#For Phone Book excersize to sort the collection -https://www.mkyong.com/java8/java-8-lambda-comparator-example/ - - - -#ForEnumAndExceptionHandling in SpringBoot -https://github.com/Wushiyii/springbootTest - -#Transaction rollback in SpringBoot -https://github.com/lukw510903926/transaction-distributed/blob/master/src/main/java/com/transaction/service/StoreServiceImpl.java - -#Marshaling & Unmarshaling(JAXB2.0) -https://dzone.com/articles/introduction-to-jaxb-20 - -#Scenario in Serialization -http://javabeginnerstutorial.com/core-java-tutorial/transient-vs-static-variable-java/#comment-2998 -#Call Rest End Services in main method class using RestTemplate -https://howtodoinjava.com/spring/spring-restful/spring-restful-client-resttemplate-example/ - - -#HowToLearnJava -https://www.javacodegeeks.com/2018/05/10-tips-to-become-a-better-java-developer-in-2018.html - -#SpringLearning(LinkfromJoseSir) -https://www.dineshonjava.com/spring-boot-tutorial/ - -#CodeJavaFromBegining -https://github.com/mafudge/LearnJava.git -(VEry GOod Handy Exercises for beginner) - -#unit-test-spring-mvc-rest-service-junit-mockito -https://memorynotfound.com/spring-mvc-restful-web-service-crud-example/ -https://memorynotfound.com/unit-test-spring-mvc-rest-service-junit-mockito/#unit-test-http-post - -#Mongo db -https://www.mongodb.com/presentations/webinar-back-to-basics-thinking-in-documents?utm_campaign=T5_V3_DEV_AM_E1_Schema_Design_A&utm_medium=email&utm_source=Eloqua -#install mongo -https://docs.mongodb.com/manual/administration/install-enterprise/?utm_campaign=T5_V2_MongoDB_Enterprise_Edition_Download_Email1&utm_medium=email&utm_source=Eloqua - - -#setup eureka server -http://www.baeldung.com/spring-cloud-netflix-eureka - - -All - Do watch this video during Weekend - https://www.youtube.com/watch?v=rEXbpSB78fAhttps://www.youtube.com/watch?v=rEXbpSB78fA - -#EurekaServer -http://www.springboottutorial.com/microservices-with-spring-boot-part-5-eureka-naming-server - -#configServer -https://sivalabs.in/2017/08/spring-cloud-tutorials-introduction-to-spring-cloud-config-server/ - - -#SpringCloud -Please complete this mandatory training for better understanding of spring cloud in this week. -https://app.pluralsight.com/library/courses/spring-cloud-fundamentals/table-of-contents - -https://github.com/sqshq/PiggyMetrics For DEEP learning -https://github.com/darshitsanghavi/spring-security-multiple-login-pages - -https://www.linkedin.com/pulse/oauth2-microservices-implementation-part-1-amit-bansal/ -https://www.linkedin.com/pulse/oauth2-microservices-implementation-part-2-amit-bansal/ - - -#cloudTraining -https://www.aws.training/transcript/curriculumplayer?transcriptId=3jwmpYfhzkSg7zgWqiCrDg2 -https://www.aws.training/subscription - -#Spring boot security -https://www.youtube.com/watch?v=egXtoL5Kg08 -https://github.com/amitbcg/training-spring-security-demo - -http://aurelavramescu.blogspot.com/2015/12/hystrix-commands-inheritance-vs.html - - -#Using JWT security -https://github.com/szerhusenBC/jwt-spring-security-demo -https://www.youtube.com/watch?v=mD3vmgksvz8 -#JWT TEchPrimers -https://github.com/TechPrimers/jwt-security-example - -#AWSCLOUD slides -https://aws.amazon.com/events/awsome-day/awsome-day-online/?mkt_tok=eyJpIjoiTkRBMVl6VmhPRGs0WVRJMiIsInQiOiJwb21sejFnMWF1aHV4bU9wVjFBUFAwTVhxOEpHT1J0OEZYSjZZRTJUbzErbjRLVk5MaHlYbUJiNk1GWStrUmIxbW5iamlUOXFoVCtUNWlueUxrZG5lZz09In0%3D#time - -#JWT tutorial code -https://github.com/szerhusenBC/jwt-spring-security-demo/blob/master/src/main/java/org/zerhusen/security/JwtAuthorizationTokenFilter.java - - -#Lambda expression by sanjay sir -https://www.ibm.com/developerworks/java/library/j-java8idioms7/index.html - - -#WSDLwebServiceExample -http://www.springboottutorial.com/creating-soap-web-service-with-spring-boot-web-services-starter - - - -https://www.katacoda.com/courses/docker/deploying-first-container -https://rawsanj.github.io/decks/Docker.html#/run-docker-explore-tomcat -https://labs.play-with-docker.com/p/bcggmqu08n7000cptuf0 -https://www.youtube.com/watch?v=wCTTHhehJbU -https://docs.docker.com/samples/library/tomcat/ - -#LearnAWS HandsOn -QWIKlabs.com - - -#KOTLIN by sanjay sir -https://www.thoughtworks.com/radar/languages-and-frameworks -Hi everyone, - -I attended the KOTLIN IN ENTERPRISE Workshop by ThoughtWorks Pune. It was a 2 day session with hands-on exercises. -As mentioned in their Radar, ThoughtWorks strongly recommend using Kotlin in Enterprise applications https://www.thoughtworks.com/radar/languages-and-frameworks - -I had already started a Kotlin Project – AWS Service Broker App - https://github.com/RawSanj/aws-service-broker, will improve the same with Kotlin features I learnt. Also, feel free to contribute J -Looking for projects who want to be early adopters of Kotlin! - -Please find the attached Kotlin Cheat Sheet and Workshop docs - -https://docs.google.com/document/d/1TPDYVqZD7DbMGqa_hwXi6PlEuKoCWS6ALWbNOqmce6o/edit?ts=5b2de65c - -RahulSir -https://dzone.com/articles/exception-handling-in-java-streams?edition=433197&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=Weekly%20Digest%202019-01-02 - diff --git a/Angular 5 important link b/Angular 5 important link deleted file mode 100644 index 8f4c975..0000000 --- a/Angular 5 important link +++ /dev/null @@ -1,12 +0,0 @@ -https://dzone.com/articles/fun-with-angular-a-quick-overview -https://www.youtube.com/watch?v=oa9cnWTpqP8 - -https://dzone.com/articles/building-angular5-application-step-by-step - -https://www.devglan.com/spring-boot/spring-boot-angular-example;jsessionid=4FC443A27C01B96D8A6A70788ECBEBC4 - - -https://coursetro.com/courses/19/Learn-Angular-5-from-Scratch---Angular-5-Tutorial - - -https://stackblitz.com/angular/aqqoggkrvbj?file=src%2Fapp%2Fapp.component.html diff --git a/BlackPearl Configuration file b/BlackPearl Configuration file deleted file mode 100644 index 1769c95..0000000 --- a/BlackPearl Configuration file +++ /dev/null @@ -1,16 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/mybank -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true - - - - - - mysql - mysql-connector-java - 5.1.38 - runtime - diff --git a/CheckList.xlsx b/CheckList.xlsx deleted file mode 100644 index 715ebbe0b407e5caf961f6377d1b5baa1d85438a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9119 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 AIsgCw diff --git a/CheckListRam.xlsx b/CheckListRam.xlsx deleted file mode 100644 index 648f886ed678fb296d86f147fd44ff55c617e4bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9140 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 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/.classpath b/Eureka Server App/BankApp in spring boot new Eureka/.classpath deleted file mode 100644 index 6d7587a..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/.eclipse-pmd b/Eureka Server App/BankApp in spring boot new Eureka/.eclipse-pmd deleted file mode 100644 index 410e8c5..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/.project b/Eureka Server App/BankApp in spring boot new Eureka/.project deleted file mode 100644 index 9ba21a1..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/.project +++ /dev/null @@ -1,40 +0,0 @@ - - - bank - - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - org.springframework.ide.eclipse.boot.validation.springbootbuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.springframework.ide.eclipse.core.springnature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.wst.common.project.facet.core.nature - - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.core.resources.prefs b/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.jdt.core.prefs b/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 714351a..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.wst.common.project.facet.core.xml b/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d858295..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.springframework.ide.eclipse.prefs b/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.springframework.ide.eclipse.prefs deleted file mode 100644 index a12794d..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/.settings/org.springframework.ide.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -boot.validation.initialized=true -eclipse.preferences.version=1 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.core.resources.prefs b/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.jdt.core.prefs b/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 714351a..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.wst.common.project.facet.core.xml b/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d858295..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.springframework.ide.eclipse.prefs b/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.springframework.ide.eclipse.prefs deleted file mode 100644 index a12794d..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/.settings/org.springframework.ide.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -boot.validation.initialized=true -eclipse.preferences.version=1 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/mvnw b/Eureka Server App/BankApp in spring boot new Eureka/bin/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/mvnw.cmd b/Eureka Server App/BankApp in spring boot new Eureka/bin/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/pom.xml b/Eureka Server App/BankApp in spring boot new Eureka/bin/pom.xml deleted file mode 100644 index 77e0a5d..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - bank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/BankApplication.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/BankApplication.class deleted file mode 100644 index 83bc78b5489464ed4435a71257ad09b6fd268ca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1353 zcmb_cQE$^Q5I(ov+Jr(!*%&ZDW=|ati4Z(dgtSc{Rq8;ZWfJ1aN!-?3Vh7u)*bm{i zAb|w${3ygZ0a~F7hO~!V?D+D1zPs=4+xJgj0N@eaZ9Mx}F}P$bPoT7uJDt0?7}c}#t8Jmb`!<(xWzz>x(N8I75g z%F>9_UmyV;SSkz^G7%c@lb+$xgljHiWSD4`;r?BLX9*4Blo>-OBIRZ!%VBwb(Ig2+ zUdNxa_>@gK-NnFzMYaQ%?OmEEZm5ecV>X^qi%H<`a|~(uPpn$tsuq-~S%p&tCbC>< zOO>9k$l1AEMx`1KPz_5OSOG?@qO2^J?+r4i7GbF=a;~wy(pX)@R%u!lu(#)GRmg-- zgmm@66I`<*waeZCJt~ZKC+J0)bcv{dmmqy_WSwCDai=PdzsKPF(1OctSc5ABwtB;b za4U+w6Lx2amw8cS5!YjeS|!jOs+gt6ObfUF`LSVV!Vq{k{O<`)ldbLF;?~ zpAEF_$_uVS7k3_9gH8P65bh)H0%2$Ec(6Xjk`2jge Bo-zOc diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/controller/BankController.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/controller/BankController.class deleted file mode 100644 index 11b28f13e438c73974510a496d871b878e3aa98a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4318 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 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/model/Bank.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/model/Bank.class deleted file mode 100644 index 77d3900fd55bcf1d0b02ff17377c5f1dc6d7d7c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4678 zcmeHKTW{P%6h2Nv_L9(qKq<6brs1}Mu*)SakWB)cG;IS8kw}Py#LKKb>`r6PtUR+( z_JQApR3v!kMK-hGv_{k{r%(*09b|ZN-*WXiix~N$fasL z<|n-2>9ApXkyM?w*0#~+>bMbVUj&UU9F}0(frS_taMfw-w;v17Ixs`HT^|Rot5v7z z!0jLU%F0mesuO8sI}k0UwB=T6WgM7xcYOpcxDSOA5x2rW;z3{FRM}X1?+kG0ZtI{Q zDx95GJQT>zLyfc!%(+{#b64 zhjh(NB${>il{nOUTn*?~A@B8szlHK$<2H2Q?!V-29qz@nGwV`GyNNWlf#Ix54PPG#_;iiFX@iSQYks3(J1m8=(O)NN?iShaF6P?n!EL5rAH%<5yI z%nC!}2`iZG3WN7}vRXOp3MRvzjx3}9)kAK(%;RJv))s8^vx~sKmBD`sJT1cZKLcf& zs%Dl~SSU>|;9hKIg|X20EY4ReI~YxNkfAEHDC5iydID|5(HU|uyXZg{%sftVJ|v5Q zF{%$yf{EZ09!Zj|T1i5BA~4wp<&Ydm8vi-Kv*69aQHIEYw4#U)3gDi>FDaZoOs%oQ zVE8AAxwg!tVSVL`U!)R#wNgN_R|Y9;!Dk38VC*Y{?4Mv}m;U4+OJe81Qt{65~W&+H};ZnW)E2#}f0kFpP>47AUVvMU08l9yT50 z>#?q50h6j8m$J!h6Kdq8iT8P-ysRC#in>gG&8YjNWX6L?aDRYJ%`l~nyWa|v$_Q*} zmVRBLl180U-23ba+tvP-_6O%(VB&)9fEyFzt8fe6o`ajf9Jo<))8;G*v?eug^Dd^> z@B3j}L~#jrVA0hc4~~XqZ#X$^yAqqLEs=rtPQtZ@ZTWQ+F3lUwGSnTg1w>5OSltj^Rc8@K~__`{RXgxB!?IwDt*-N9$|cewS_ z;v2ugTYtvu@8F%-0Iwyy&m|~$2i}e6-h=mX<|4xf84UGIhGqD0jA05{6B)7??qxE3 z1S?|<=`KFbkYOW}p#h(aF{CnNG3;bAd1Z8i9qMheG)w?}%eR_PYUpB7{^-`BKCL%1*~aqdDg(7d&E$dxtC-a-6Eh zN{@RZ0*wrKmxY|byp!*}uQXF_?rh3n7z+JU41<8-PRJtQqNn-@YDpkb6QiZ#d7SFHY%{MZ)^}BVYJxoxru` z@*!@ui9W5sI|Od#U$YfOGOEIRr26u?hJcj`V|}5MepjZ_KvZt`rhQ6NDsS}w=4o| zg=6OhV{y8uDR|rsScD~Oz}zF&<8%r8O)FObE!`7ai2_)np5!srZ6jpL?dujp`N;sg ze{nrF&z9B`E!}8ZlhG!0unQ~ct2TD&PCluPX;K1x33W zW@Sa-MuB8PsnI-Tr2Sh#%37e~6$iOqO43*1A%VqfG4x$770j5( z6(^|%YZchW!5F*(Kj@nyiqQ%@J98DyyxG|C;}|c7TGz&~2zcwl8*dp(@ETmlQ3XeJ z998je4WAOsKw~_w|390|&B5!1x%p)74Y*ZUe;eoC#HWsPci=62zm20++>PkjKVjjQ z`FCH!`+wu81WWkV=zz}$_|`k>wI9Mq$=t{A3C^5HXc`dOMubn{vjRd%qbD3p2oH=1 zEAV*%A^(b&fy25H;cnvZ>??8(CWLJx!acZeln?r1e4diFPQ R{5?KD;#0*Fy9H07^FMJXN+bXP diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/repository/BankDAO.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/repository/BankDAO.class deleted file mode 100644 index f296085c9de1734c92297a6431c6de9eeb2ce42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmZ8dT}lHn5dNlJn|5t&``|U2m%gnCiik?2(0YMv2y1GaEJ-Tt)qL;(9!gA#2z4Mc zWWJwC=Ii_86TlL4h8|%VyyAOlEZ@p^$(7sl(0XH=+PTPUY2UcltqUeP-|^dYzq?s6 z6olDPu#>jot9q+dB$OL>@JipCohFQb$&1V*j5emRG9G+_xcINF#8WHRe}k?>7FR+z z+f>&T;quWcXM+h*+xTF#mtMVg4CjO*QyC_N$%zNUG=bS6z2(`2kUsU&wK@z4gnrsV ajsj;X_b>oE)*(i@jafQnLQ9Nsf&LFTu2FUX diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class deleted file mode 100644 index 85a53f04982068528718fbd901f8d597180bf217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZ8dT}lHn5dNlJn|5urK6nlDpbx@|Ad09&3f2o`Ls(P0$&zG+y_yd_Ko2Em3l()> zW?;UbVP^aFxdCv26NUldGI+&nX)IsK56P9Qd1$<`Rq0&hrL^zd>&68Wo$vT<8=|YV zzq?s5WQ6%nw3fEwi*lt^B;-ridZq8pS||LM;H>8oCQDOU8C##=bMaqah^I!r{4Bf@ zdxJsBpF-%oCbpiX#la0YBPU-T(jq diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/BankService.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/BankService.class deleted file mode 100644 index 128ab9421088e1d0dbb9c5889cbdcdfbd076197b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmbVLOK%e~5FUq;$5Pr7C~qVyr?iT8FL0q1hw_k+0vr-5adf=X)a|alvYn_o@Vk&e zf;&G7F|!S7k$4miYkOwr{eAQG+sDrU@DLufpdsK<@H#7%vDuNDt4zBx3zau^I&m&$ z6J?LHfPQW?W_u)zPTwt95wKBv6v|GsH4p zsZ=s9D!h=%(AnuapR*67vD9ajz4tu^ zhS^l}-(m8u4=K;VgE z-J#Q}*jL`Lyi_Kd>WawK3h4BQ{HXocrWjdxhEbU!2w3Y6nFTvrr#1qTk(+sqFAN9Y zIM;7I{1)7y4PtEz?$L{V1+2a@AyA298c}EppjD%N20Ght8JZ-wNZMX%lTXlo*G)da o>KD>BV1rJ!0s5}h8eZitTnD~yz-FzxS)aGyKHW|7x(#=~0|mK7E*c4S6j?M=nP9X>9|yDkgS^NBSYdFZnw1GPj)tQrn79B| z8GQC!LKy^J-@ecc+OgNRzdIZ-xczOZoXqiono2828SW~jop4es%V0g;EuH>B8cYeh z`lVFTeZ}CVZtoF;m3unH0Ja!xof~@J7;V3HpP_F$_trQQh8xCsmbjZ zJZvAFC?}3N`bk_X?(`8VyTen=&>?pdwA5CEVf%1`T;_!~j(dImT(}8OgtwQEke@31 zH?VXvYXWLBz5)oXvq{R+AhoXO+TIS&r7bd%RBlw(nKE%SPR^T!ON~Nu85i806gYE+ z@9}>`7|%=Vygz9#P&w~wF4Y8$bfig)NRdb!&(TeEx;VK%MpwlTIw3RLjkOw+HGX%l zR!?G3IP|Kzz9AhxGh`wiw`GBbqH69A3Z7YlbbDM{UaAxyOGV3gOn;~^%FHdI`~0C_ z{0zl~;&?n4ydW}cpT&NIiz{#J4jWLzDTTRAu>t0VEdjZIoM7RzvmX9e8G!HEwd8UiHt}xJ(*KkdeJjGMCh~!j(2|Q_*5sK65CTV)eB!B{ju_!N>C-u-TOCv?Bf>Mfu>riz;QEF1q>1qMqKesQ`b;^tbU77^HmOgWD z`m|ZNXH;bCZv^u(O2KPWk(G3=|Bz1j9v#3AT^@Xo>QVrG8ulJ$u<=k@OGW#TPL~$$ z0^JMfxke8_0BiJaQ*V{tA-(;-b=aWxdUZqc-vHrnu=)M=jbC8<5Bh4sEo%J?pyyR; zJ)ThT8oXYOy#a5Mq}$YAp+9e(X?TZ5PUW`zj7sjE8o76B<=%zPGsu0nMs8Fiw*~K$ TEiL!}B5xDf+=GwE>W}{hKLCZL diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/CustomerService.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/CustomerService.class deleted file mode 100644 index 8ac7b74c3cea3e1903cfa801bf3c880357f82e8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcma)4O>fjN5FM9gvzu<&vQWN}te&<#B$r-jD=r020S>!V;^;V|)NNu%ws%E;84^fv z=SLyNX`^-vJ&5^ z@Y2J+r`w&@?+BjKw)8gj^yj1MiIE>;M1& diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class deleted file mode 100644 index c5be0e25ca7894f5104df65c148d8c7dde7b3a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3380 zcmeHKTW{Mo6h3s_*m2UPO|M(qmCc&M?nN4gy=>V9LDB&M)CO3x0(+z-#%3##0!g{; z-`L~+NP!O6-uI)19m=NdHO8c7*&c>HSQ4d=-#PrwIXv`lzrXzj06v3HTF@ZymCm(%#_JNxZi)y zW7~oy0-v9ln7~RrF}2GSfpd|!yt}=>Mc~GFg|s5$dvYX<=%;*JN@bZ9N*bISZ5LL( z6q+Z9UHVc;VZSDDrrUc)pt++G-hwp(Ycr=GYprw}E|R5Bzn7XDm5z8qQHflnB`eLf zLNl59f_9b?4raOqPPbs9+XhV(Hxyl@8ME<_T4dm_aujNw z0p$u@90KQ9@K=0eA4HZbZE1-vtVn6hoD8(jsb9mNfJzTe0fK&2vHT6lB(oM+pjJ^v z?dzP67v-L)Pm8&Pq#0%oMQt!#T-s7=A%|QGCpPOFt67YJ;C85zcL{<4x1MvCTP9M| zjg%bp{z;oGNxaRje?Wt-x>y zJC6?N6Q{@+MVWM&HzuB=>?}`frb2t~Ay#4qa(~3N774F_dBU2o$FE|ZyGpOXA6U1C zRe<)Snb5|5MgyzlUm6;aYB5=_QGks5>6ZtgSY6B(Yry7mX�+yP1w|_ z3Vf~F_%9YbCe!h@g)h62tKF^MEck7>OURG^dL;kfLMoaSmfL|Ubj-gMZg05m>v8T_ zQyvNlEJu@fSmb9%EG_UXd!Int&uGCztbRYjEwKdw9(r8_2&_I4#$Z!C#G{jeJAh|m z{GG)gKnvPKzOBG2UeA^P7Tg%1^D~_PVg14zSpOAA4Y-0=Hv^yvSMlob zh=OZy9q$A_fDe)BM){q<&8dZt@QvqfxEUqy?FGEo7V_SKjrZXFcmeO`0^SB}qAv}& Q2ch!`*VKat==GyN0E0_Fm;e9( diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/resources/application.properties b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/resources/application.properties deleted file mode 100644 index 359e798..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/main/resources/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -<<<<<<< HEAD -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -======= -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/src/test/java/com/springboot/bank/BankApplicationTests.class b/Eureka Server App/BankApp in spring boot new Eureka/bin/src/test/java/com/springboot/bank/BankApplicationTests.class deleted file mode 100644 index 9bf1c99f936400428a7fee8641e617838efe5887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228 zcmcgsU2oGc6ur*+844|h0TUpZJ#{aMgb+d$A#Hp}lLAPz4DskBUh6HfBipIQFGB(e z-uY38>!hQTs3_urhuk>v@ww;v9{c-`&tC!H0o-kaN8q8+NocvT;R#!?Fj0AE3N7R; zR?3Dklc(VUhW(<*M8d34a*ANnh6aH_wIpM57QTs3cwz~(o(L)IQvzF~y(0pRXDa1w z=o09!urIV$x&xPpcmJK#+^B59Q;L}jkyROJp;esm+&rd!cRJ@Z#!u+)@=V^-2wT_#p( zTDN?(M}?uKO!={pxX;HpgJV`^NWDS_^i_$;Y7}MCHKr!M0K#3}sK|#7T<$>=t`OKB zMJrcLtaI(yxvn3fl-Fe*b3J8fBm%=oB`iB)TDb4!&xV}~L*P;LZ%1HEpoiiuKeLfy zDKg#0{kJ0LhjJl|z(o7bH&|KA zasu6GX(JTfT(GP}{2;1LbMAyO+ygwfcsBreIBG%*W4pR5wr~XCe}T@2q5lbb-zrQW uqr(6`1B|^I1y^BM{kw*<9$a6dw(>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties b/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties deleted file mode 100644 index ac4821f..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties +++ /dev/null @@ -1,17 +0,0 @@ -<<<<<<< HEAD -#Generated by Maven Integration for Eclipse -#Thu May 17 10:00:13 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=C\:\\Users\\Lohit\\Desktop\\bank -artifactId=bank -======= -#Generated by Maven Integration for Eclipse -#Wed May 16 18:21:54 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=C\:\\Users\\Lohit\\Desktop\\bank -artifactId=bank ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml b/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml deleted file mode 100644 index 77e0a5d..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - bank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/application.properties b/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/application.properties deleted file mode 100644 index 359e798..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/bin/target/classes/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -<<<<<<< HEAD -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -======= -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/Eureka Server App/BankApp in spring boot new Eureka/mvnw b/Eureka Server App/BankApp in spring boot new Eureka/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Eureka Server App/BankApp in spring boot new Eureka/mvnw.cmd b/Eureka Server App/BankApp in spring boot new Eureka/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/Eureka Server App/BankApp in spring boot new Eureka/pom.xml b/Eureka Server App/BankApp in spring boot new Eureka/pom.xml deleted file mode 100644 index 9dd1de4..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/pom.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - MyBankDemo - project for Bank Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - log4j - log4j - 1.2.17 - - - - org.mockito - mockito-all - 1.9.5 - test - - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - org.springframework.cloud - spring-cloud-starter-feign - - - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/BankApplication.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/BankApplication.java deleted file mode 100644 index 1387b62..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/BankApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.springboot.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class BankApplication { - - public static void main(String[] args) { - SpringApplication.run(BankApplication.class, args); - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/ATMController.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/ATMController.java deleted file mode 100644 index cc655e5..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/ATMController.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import java.math.BigDecimal; -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; -import com.springboot.bank.service.ATMService; - -/** - * @author Ram - * - */ - -@RestController -public class ATMController { - - final Logger LOGGER = Logger.getLogger(ATMController.class); - - @Autowired - ATMService atmService; - - @PostMapping(value = "/createATM") - public ResponseEntity createATM(@RequestBody WrapperBankATM wrapperBankATM) throws BankException { - ATM atmData = null; - try { - atmData = atmService.createATM(wrapperBankATM); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - - @PostMapping(value = "/addMoney/{atmId}/{bankId}/{moneyToBeAddedToATM}") - public ResponseEntity addMoneyFromBank(@PathVariable Long atmId, @PathVariable Long bankId, - @PathVariable BigDecimal moneyToBeAddedToATM) throws BankException { - ATM atmData = null; - try { - atmData = atmService.addMoneyFromBank(atmId, bankId, moneyToBeAddedToATM); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - - @PostMapping(value = "/withdrawMoneyFromATM") - public ResponseEntity withdrawMoney(@RequestBody ATMDetails atmDetails) throws BankException { - ATM atmData = null; - try { - atmData = atmService.withdrawMoney(atmDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/AccountController.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/AccountController.java deleted file mode 100644 index 8027842..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/AccountController.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.service.AccountService; - -/** - * @author Ram - * - */ - -@RestController -public class AccountController { - - @Autowired - AccountService accountService; - - final Logger LOGGER = Logger.getLogger(AccountController.class); - - @PostMapping(value = "/createAccount") - public ResponseEntity createAccount(@RequestBody WrapperBankCustomerAccount wrapperBankCustomerAccount) - throws BankException { - Account accountData = null; - try { - accountData = accountService.createAccount(wrapperBankCustomerAccount); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not added"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/depositMoney") - public ResponseEntity depositMoney(@RequestBody AccountDetails accountDetails) throws BankException { - Account accountData = null; - try { - accountData = accountService.depositMoney(accountDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/withdrawMoneyFromAccount") - public ResponseEntity withdrawMoney(@RequestBody AccountDetails accountDetails) throws BankException { - Account accountData = null; - try { - accountData = accountService.withdrawMoney(accountDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/viewAccount/{accountId}") - public ResponseEntity getAccountDetails(@PathVariable Long accountId) throws BankException { - Account accountData = null; - try { - accountData = accountService.getAccountDetails(accountId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/BankController.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/BankController.java deleted file mode 100644 index 553325e..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.service.BankService; - -/** - * @author Ram - * - */ - -@RestController -public class BankController { - - final Logger LOGGER = Logger.getLogger(BankController.class); - - @Autowired - private BankService bankService; - - @PostMapping(value = "/createBank") - public ResponseEntity addBank(@RequestBody Bank bank) throws BankException { - Bank bankData = null; - try { - bankData = bankService.createBank(bank); - } catch (Exception e) { - LOGGER.error(e.getMessage()); - } - if (bankData == null) - throw new BankException("Bank details not added"); - else - return new ResponseEntity(bankData, HttpStatus.OK); - } - - @GetMapping(value = "/viewBankDetails/{bankId}") - public ResponseEntity getBankDetails(@PathVariable Long bankId) throws BankException { - Bank bank = null; - try { - bank = bankService.getBankDetails(bankId); - } catch (Exception e) { - LOGGER.error(e.getMessage()); - } - if (bank == null) - throw new BankException("No such Id of Bank exixts"); - else - return new ResponseEntity(bank, HttpStatus.OK); - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/BankDenominationController.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/BankDenominationController.java deleted file mode 100644 index ee4aaa2..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/BankDenominationController.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import java.util.logging.Logger; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.WrapperDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Denomination; -import com.springboot.bank.service.BankDenominationService; - - - -/** - * @author Ram - * - */ -@RestController -public class BankDenominationController { - - - private static final Logger LOGGER = Logger.getLogger( Account.class.getName() ); - - - @Autowired - BankDenominationService bankDenominationService; - - - - - @PostMapping("/totalDenom") - public ResponseEntity getTotalDenominationForBank(final @RequestBody WrapperDenomination wrapperDenomination ) throws BankException { - final Denomination denomination = new Denomination(); - try { - bankDenominationService.addDenominationNew(wrapperDenomination.getAmount(),wrapperDenomination.getBankId()); - } catch (BankException e) { - System.out.println(e.getMessage()); - LOGGER.info(e.getMessage()); - } - if (denomination == null) { - throw new BankException("not found"); - } else { - return new ResponseEntity(denomination, HttpStatus.OK); - } - } - - /** - * @param wrapperBankDenomination - * @return - * @throws BankException - */ -@PostMapping("/") public ResponseEntity getTotalDenominationForATM(final @RequestBody WrapperDenomination wrapperDenomination ) throws BankException { - final Denomination bankDenomination = new Denomination(); - try { - bankDenominationService.addDenominationNew(wrapperDenomination.getAmount(),wrapperDenomination.getAtmID()); - } catch (BankException e) { - System.out.println(e.getMessage()); - LOGGER.info(e.getMessage()); - } - return new ResponseEntity(bankDenomination, HttpStatus.OK); - } - - - - - - - -} \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/CustomerController.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/CustomerController.java deleted file mode 100644 index 6de65c8..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/CustomerController.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Customer; -import com.springboot.bank.service.CustomerService; - -/** - * @author Ram - * - */ - -@RestController -public class CustomerController { - - final Logger LOGGER = Logger.getLogger(CustomerController.class); - - @Autowired - private CustomerService customerService; - - @PostMapping(value = "/createCustomer") - public ResponseEntity createCustomer(@RequestBody WrapperBankCustomer wrapperBankCustomer) - throws BankException { - Customer customerData = null; - try { - customerData = customerService.createCustomer(wrapperBankCustomer); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (customerData == null) - throw new BankException("Customer details not added"); - else - return new ResponseEntity(customerData, HttpStatus.OK); - } - - - - - - - @GetMapping(value = "/viewCustomer/{customerId}") - public ResponseEntity getCustomerDetails(@PathVariable Long customerId) throws BankException { - Customer customerData = null; - try { - customerData = customerService.getCustomerDetails(customerId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (customerData == null) - throw new BankException("No such Id of Bank exixts"); - else - return new ResponseEntity(customerData, HttpStatus.OK); - } - - - - @GetMapping(value = "/updateCustomer/{customerId}/{customerName}") - public ResponseEntity updateCustomerDetails(@PathVariable Long customerId,@PathVariable String customerName) throws BankException { - Customer customerData = null; - customerData = customerService.updateCustomerDetails(customerId,customerName); - if (customerData == null) - throw new BankException("No such Id of Customer exixts"); - else - return new ResponseEntity(customerData, HttpStatus.OK); - } - - - - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/TransactionController.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/TransactionController.java deleted file mode 100644 index 28f96e7..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/controller/TransactionController.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import java.util.Optional; -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.service.TransactionService; - -/** - * @author Ram - * - */ - -@RestController -public class TransactionController { - - final Logger LOGGER = Logger.getLogger(TransactionController.class); - - @Autowired - private TransactionService transactionService; - - @PostMapping(value = "/createTransaction") - public ResponseEntity createTransaction(@RequestBody Transaction transaction) throws BankException { - String transactionData = null; - try { - transactionData = transactionService.createTransaction(transaction); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (transactionData == null) - throw new BankException("Transaction details not added"); - else - return new ResponseEntity(transactionData, HttpStatus.OK); - } - - @PostMapping(value = "/viewTransaction/{customerId}") - public ResponseEntity> getTransactionDetails(@PathVariable Long customerId) - throws BankException { - Optional transactionData = null; - try { - transactionData = transactionService.getTransactionDetails(customerId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (transactionData == null) - throw new BankException("Transaction details not found"); - else - return new ResponseEntity>(transactionData, HttpStatus.OK); - } - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/ATMDetails.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/ATMDetails.java deleted file mode 100644 index e922d99..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/ATMDetails.java +++ /dev/null @@ -1,110 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import java.math.BigDecimal; - -/** - * @author Ram - * - */ -public class ATMDetails { - - private Long bankId; - private Long atmId; - private Long accountId; - private BigDecimal amount; - - /** - * - */ - public ATMDetails() { - super(); - } - - /** - * @param bankId - * @param atmId - * @param accountId - * @param amount - */ - public ATMDetails(Long bankId, Long atmId, Long accountId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.atmId = atmId; - this.accountId = accountId; - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - - /** - * @param atmId - * the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "ATMDetails [bankId=" + bankId + ", atmId=" + atmId + ", accountId=" + accountId + ", amount=" + amount - + "]"; - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/AccountDetails.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/AccountDetails.java deleted file mode 100644 index db6299e..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/AccountDetails.java +++ /dev/null @@ -1,111 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import java.math.BigDecimal; - -/** - * @author Ram - * - */ -public class AccountDetails { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - - /** - * - */ - public AccountDetails() { - super(); - } - - /** - * @param bankId - * @param customerId - * @param accountId - * @param amountToBeAdded - */ - public AccountDetails(Long bankId, Long customerId, Long accountId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.customerId = customerId; - this.accountId = accountId; - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - - /** - * @return the amountToBeAdded - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amountToBeAdded - * the amountToBeAdded to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountDetails [bankId=" + bankId + ", customerId=" + customerId + ", accountId=" + accountId - + ", amount=" + amount + "]"; - } - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java deleted file mode 100644 index 175391b..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Denomination; - -/** - * @author Ram - * - */ -public class WrapperATMDenomination { - - -private Denomination denomination; - -private Integer amount; -private Long bankId; -private Long atmId; - - - /** - * @param denomination - * @param amount - * @param bankId - * @param atmId - */ - public WrapperATMDenomination(final Denomination denomination,final Integer amount,final Long bankId,final Long atmId) { - this.denomination = denomination; - this.amount = amount; - this.bankId = bankId; - this.atmId = atmId; - } - /** - * @return the bankDenomination - */ - public Denomination getBankDenomination() { - return denomination; - } - /** - * @param denomination the bankDenomination to set - */ - public void setBankDenomination(final Denomination denomination) { - this.denomination = denomination; - } - /** - * @return the amount - */ - public Integer getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(final Integer amount) { - this.amount = amount; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(final Long atmId) { - this.atmId = atmId; - } - /* - * java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperATMDenomination [bankDenomination=" + denomination + ", amount=" + amount + ", bankId=" - + bankId + ", atmId=" + atmId + "]"; - } - - - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankATM.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankATM.java deleted file mode 100644 index 135b0b5..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankATM.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.ATM; - -/** - * @author Ram - * - */ -public class WrapperBankATM { - - ATM atm; - Long bankId; - - /** - * - */ - public WrapperBankATM() { - super(); - } - - /** - * @param atm - * @param bankId - */ - public WrapperBankATM(ATM atm, Long bankId) { - this.atm = atm; - this.bankId = bankId; - } - - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - - /** - * @param atm - * the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankATM [atm=" + atm + ", bankId=" + bankId + "]"; - } - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java deleted file mode 100644 index 5c1fdf3..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Customer; - -/** - * @author Ram - * - */ -public class WrapperBankCustomer { - - Customer customer; - Long bankId; - - /** - * - */ - public WrapperBankCustomer() { - super(); - } - - /** - * @param customer - * @param bankId - */ - public WrapperBankCustomer(Customer customer, Long bankId) { - super(); - this.customer = customer; - this.bankId = bankId; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankCustomer [customer=" + customer + ", bankId=" + bankId + "]"; - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java deleted file mode 100644 index 78ab35b..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Account; - -/** - * @author Ram - * - */ -public class WrapperBankCustomerAccount { - - private Account account; - private Long customerId; - private Long bankId; - - /** - * - */ - public WrapperBankCustomerAccount() { - super(); - } - - /** - * @param account - * @param customerId - * @param bankId - */ - public WrapperBankCustomerAccount(Account account, Long customerId, Long bankId) { - super(); - this.account = account; - this.customerId = customerId; - this.bankId = bankId; - } - - /** - * @return the account - */ - public Account getAccount() { - return account; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankCustomerAccount [account=" + account + ", customerId=" + customerId + ", bankId=" + bankId - + "]"; - } - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperDenomination.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperDenomination.java deleted file mode 100644 index 6309025..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/dto/WrapperDenomination.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import java.math.BigDecimal; - -import com.springboot.bank.model.Denomination; - -/** - * @author Ram - * - */ -public class WrapperDenomination { - - private Denomination denomination; - private BigDecimal amount; - private Long bankId; - private Long atmID; - - - /** - * Default constructor - */ - public WrapperDenomination() { - super(); - } - - - /** - * @param denomination - * @param amount - * @param bankId - * @param atmID - */ - public WrapperDenomination(Denomination denomination, BigDecimal amount, Long bankId, Long atmID) { - super(); - this.denomination = denomination; - this.amount = amount; - this.bankId = bankId; - this.atmID = atmID; - } - - - /** - * @return the denomination - */ - public Denomination getDenomination() { - return denomination; - } - - - /** - * @param denomination the denomination to set - */ - public void setDenomination(Denomination denomination) { - this.denomination = denomination; - } - - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - - /** - * @return the atmID - */ - public Long getAtmID() { - return atmID; - } - - - /** - * @param atmID the atmID to set - */ - public void setAtmID(Long atmID) { - this.atmID = atmID; - } - - - - - - - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/enums/AllEnums.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/enums/AllEnums.java deleted file mode 100644 index 055c9a1..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/enums/AllEnums.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.springboot.bank.enums; - -public class AllEnums { - - - - public enum EventName { - - - CUSTOMER,ACCOUNT,BANK,ATM; - - - } - - - public enum EventType { - CREATE,UPDATE,DELETE; - } - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/exception/BankException.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/exception/BankException.java deleted file mode 100644 index ec3a048..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/exception/BankException.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.exception; - -/** - * @author Ram - * - */ -public class BankException extends Exception { - - public BankException(String message) { - super(message); - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/ATM.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/ATM.java deleted file mode 100644 index 40425c0..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/ATM.java +++ /dev/null @@ -1,99 +0,0 @@ - -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Ram - *It will represents the ATM entity - */ -@Entity -@Table(name = "atm") -public class ATM extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long atmId; - // @Required - private BigDecimal money; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - private static final Logger LOGGER = Logger.getLogger( ATM.class.getName() ); - - /** - * - */ - public ATM() { - super(); - } - - /** - * @param atmId - * @param money - * @param bank - */ - public ATM(BigDecimal money, Bank bank) { - this.money = money; - this.bank = bank; - LOGGER.info("Inside the ATM Entity"); - - } - - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - - /** - * @param atmId - * the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - - /** - * @return the money - */ - public BigDecimal getMoney() { - return money; - } - - /** - * @param money - * the money to set - */ - public void setMoney(BigDecimal money) { - this.money = money; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "ATM [atmId=" + atmId + ", money=" + money + ", bank=" + bank + "]"; - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/ATMDenomination.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/ATMDenomination.java deleted file mode 100644 index d573e35..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/ATMDenomination.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -/** - * @author trainee - * - */ -public class ATMDenomination extends BaseEntity{ - - - - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long denominationId; - @OneToOne(targetEntity = ATM.class) - private ATM atm; - private BigDecimal noOfDenomination; - private BigDecimal denomination; - - - - - - - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Account.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Account.java deleted file mode 100644 index 846e3cb..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Account.java +++ /dev/null @@ -1,128 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Ram It will represents the Account Entity. - */ - -@Entity -@Table(name = "account") -public class Account extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long accountId; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - private BigDecimal amount; - - /* - * @Entity This is logger used instead of Sysout. - */ - private static final Logger LOGGER = Logger.getLogger(Account.class.getName()); - - /** - * @author trainee - * - */ - public Account() { - super(); - } - - /** - * @param accountId - * acted as primary key of the table account - * @param bank - * @param customer - * @param amount - */ - public Account(final Bank bank, final Customer customer, final BigDecimal amount) { - this.bank = bank; - this.customer = customer; - this.amount = amount; - LOGGER.info("Inside the account Entity"); - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Account [accountId=" + accountId + ", bank=" + bank + ", customer=" + customer + ", amount=" + amount - + "]"; - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Audit.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Audit.java deleted file mode 100644 index ebe3b24..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Audit.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.springboot.bank.model; - - -import java.sql.Timestamp; -import java.time.LocalDateTime; -import java.util.Date; -import java.util.UUID; - -import org.springframework.data.annotation.Id; - - -/** - * @author ram - * - */ - -public class Audit { - - //@GeneratedValue(strategy = GenerationType.IDENTITY) - - @Id - private String uuid; - private String eventName; - private String eventType; - private String timestamp; - private BaseEntity oldValue; - private BaseEntity newValue; - - - - - - /** - * - */ - public Audit() { - super(); - } - - - /** - * @param uuid - * @param eventName - * @param eventType - * @param userId - * @param oldValue - * @param newValue - */ - public Audit(String uuid,String eventName, String eventType, String timestamp, BaseEntity oldValue, BaseEntity newValue) { - super(); - this.uuid = uuid; - this.eventName = eventName; - this.eventType = eventType; - this.timestamp = timestamp; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - - - /** - * @return the uuid - */ - public String getUuid() { - return uuid; - } - - /** - * @param uuid - * the uuid to set - */ - public void setUuid(String uuid) { - this.uuid = UUID.randomUUID().toString(); - } - - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - - /** - * @param eventName - * the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - - /** - * @param eventType - * the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - - /** - * @return the oldValue - */ - public BaseEntity getOldValue() { - return oldValue; - } - - /** - * @param oldValue - * the oldValue to set - */ - public void setOldValue(BaseEntity oldValue) { - this.oldValue = oldValue; - } - - /** - * @return the newValue - */ - public BaseEntity getNewValue() { - return newValue; - } - - /** - * @param newValue - * the newValue to set - */ - public void setNewValue(BaseEntity newValue) { - this.newValue = newValue; - } - - - /* - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Audit [uuid=" + uuid + ", eventName=" + eventName + ", eventType=" + eventType + ", oldValue=" - + oldValue + ", newValue=" + newValue + "]"; - } - - /** - * @return the timestamp - */ - public String getTimestamp() { - return timestamp; - } - - /** - * @param timestamp - * the timestamp to set - */ - public void setTimestamp(String timestamp) { - this.timestamp = new Timestamp(System.currentTimeMillis()).toString(); - } - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Bank.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Bank.java deleted file mode 100644 index e79f365..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author Ram - *It will represents the BANK entity - */ -@Table(name = "bank") -@Entity -public class Bank extends BaseEntity{ - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "bankId") - private Long bankId; - private BigDecimal amount; - - private static final Logger LOGGER = Logger.getLogger( Bank.class.getName() ); - - - /** - * - */ - public Bank() { - super(); - } - - /** - * @param bankId - * @param amount - */ - public Bank(BigDecimal amount) { - this.amount = amount; - LOGGER.info("Inside the BAnk Entity"); - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } -} \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/BaseEntity.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/BaseEntity.java deleted file mode 100644 index fd268fb..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/BaseEntity.java +++ /dev/null @@ -1,18 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import javax.persistence.Column; -import javax.persistence.MappedSuperclass; - -/** - * @author trainee - * - */ -@MappedSuperclass -public class BaseEntity { - - @Column(name="UserId") - String userID; -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Customer.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Customer.java deleted file mode 100644 index 3299091..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Customer.java +++ /dev/null @@ -1,140 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.util.logging.Logger; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import org.springframework.lang.NonNull; - -/** - * @author Ram - *It will represents the CUstomer Entity. - */ - -@Entity -@Table(name = "customer") -public class Customer extends BaseEntity implements Cloneable { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long customerId; - @Column(nullable = false, length = 100) - private String customerName; - @NonNull - private Integer customerPin; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - private static final Logger LOGGER = Logger.getLogger( Customer.class.getName() ); - - - // @JoinTable(name = "bank_customer", joinColumns = @JoinColumn(name = - // "customerId"), inverseJoinColumns = @JoinColumn(name = "bankId")) - - /** - * - */ - public Customer() { - super(); - } - - /** - * @param customerId - * @param customerName - * @param customerPin - * @param bank - */ - public Customer( String customerName, Integer customerPin, Bank bank) { - this.customerName = customerName; - this.customerPin = customerPin; - this.bank = bank; - LOGGER.info("Inside the Customer Entity"); - - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - - /** - * @param customerName - * the customerName to set - */ - public void setCustomerName(String customerName) { - this.customerName = customerName; - } - - /** - * @return the customerPin - */ - public Integer getCustomerPin() { - return customerPin; - } - - /** - * @param customerPin - * the customerPin to set - */ - public void setCustomerPin(Integer customerPin) { - this.customerPin = customerPin; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", customerPin=" + customerPin - + ", bank=" + bank + "]"; - } - - @Override - public Customer clone() throws CloneNotSupportedException - { - - return (Customer)super.clone(); - } - - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Denomination.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Denomination.java deleted file mode 100644 index 79a6e13..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Denomination.java +++ /dev/null @@ -1,138 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -/** - * @author Ram - * - */ - -@Entity -public class Denomination extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long denominationId; - @OneToOne(targetEntity = Bank.class) - private Bank bank; - /*@OneToOne(targetEntity = ATM.class) - private ATM atm;*/ - private BigDecimal noOfDenomination; - private BigDecimal denomination; - - - private static final Logger LOGGER = Logger.getLogger( Denomination.class.getName() ); - /** - * - */ - public Denomination() { - - super(); - LOGGER.info("Inside the BankDenomination Entity"); - } - - - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BankDenominationNew [denominationId=" + denominationId + ", bank=" + bank + ", noOfDenomination=" - + noOfDenomination + ", denomination=" + denomination + "]"; - } - - - - /** - * @return the denominationId - */ - public Long getDenominationId() { - return denominationId; - } - - /** - * @param denominationId - * the denominationId to set - */ - public void setDenominationId(Long denominationId) { - this.denominationId = denominationId; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - - /** - * @return the noOfDenomination - */ - public BigDecimal getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(BigDecimal noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - - - /** - * @param denomination the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - - - /** - * @param bank - * @param noOfDenomination - * @param denomination - */ - public Denomination(Long denominationId, Bank bank, BigDecimal noOfDenomination, BigDecimal denomination) { - super(); - this.denominationId = denominationId; - this.bank = bank; - this.noOfDenomination = noOfDenomination; - this.denomination = denomination; - } - - - -} \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Transaction.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Transaction.java deleted file mode 100644 index f7f73e8..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/model/Transaction.java +++ /dev/null @@ -1,145 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Ram - * - */ - -@Entity -@Table(name = "transaction") -public class Transaction extends BaseEntity{ - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long transactionId; - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - @ManyToOne(targetEntity = Account.class) - private Account account; - private BigDecimal amount; - private String transactionType; - - - private static final Logger LOGGER = Logger.getLogger( Bank.class.getName() ); - - - /** - * - */ - public Transaction() { - super(); - } - - /** - * @param transactionId - * @param customer - * @param account - * @param amount - * @param transactionType - */ - public Transaction(Customer customer, Account account, BigDecimal amount, String transactionType) { - this.customer = customer; - this.account = account; - this.amount = amount; - this.transactionType = transactionType; - LOGGER.info("Inside the Transaction Entity"); - - } - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @return the account - */ - public Account getAccount() { - return account; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(String transactionType) { - this.transactionType = transactionType; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Transaction [transactionId=" + transactionId + ", customer=" + customer + ", account=" + account - + ", amount=" + amount + ", transactionType=" + transactionType + "]"; - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/ATMDAO.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/ATMDAO.java deleted file mode 100644 index 276159f..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/ATMDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.ATM; - -/** - * @author Ram - * - */ -public interface ATMDAO extends JpaRepository { - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/AccountDAO.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/AccountDAO.java deleted file mode 100644 index 91fe742..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/AccountDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Account; - -/** - * @author Ram - * - */ -public interface AccountDAO extends JpaRepository{ - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/BankDAO.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/BankDAO.java deleted file mode 100644 index dd78d4a..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/BankDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Bank; - -/** - * @author Ram - * - */ -public interface BankDAO extends JpaRepository { - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java deleted file mode 100644 index 7def6b0..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Denomination; - -/** - * @author Ram - * - */ - -public interface BankDenominationDAO extends JpaRepository { - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/CustomerDAO.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/CustomerDAO.java deleted file mode 100644 index a32ed67..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/CustomerDAO.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.springboot.bank.model.Customer; - -/** - * @author Ram - * - */ -public interface CustomerDAO extends JpaRepository { - - - @Query - Optional findByCustomerId(Long customerId); -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/TransactionDAO.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/TransactionDAO.java deleted file mode 100644 index ec26c59..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/repository/TransactionDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Transaction; - -/** - * @author Ram - * - */ -public interface TransactionDAO extends JpaRepository { - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/ATMService.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/ATMService.java deleted file mode 100644 index 3599a69..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/ATMService.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; - -/** - * @author Ram - * - */ -public interface ATMService { - - ATM createATM(WrapperBankATM wrapperBankATM) throws BankException; - - ATM addMoneyFromBank(Long atmId, Long bankId, BigDecimal moneyToBeAddedToATM) throws BankException; - - ATM withdrawMoney(ATMDetails atmDetails) throws BankException; - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/ATMServiceImpl.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/ATMServiceImpl.java deleted file mode 100644 index 56a46ff..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,157 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.repository.ATMDAO; -import com.springboot.bank.repository.AccountDAO; -import com.springboot.bank.repository.BankDAO; - -/** - * @author Ram - * - */ -@Service("ATMService") -public class ATMServiceImpl implements ATMService { - - // Injectiong properties of ATMDAO - @Autowired - ATMDAO atmDao; - - // Injecting properties of BankDAO - @Autowired - BankDAO bankDao; - - // Injecting properties of AccountDAO - @Autowired - AccountDAO accountDao; - - - @Autowired - BankDenominationService bankDenominationService ; - - - - /* - * ATMService#createATM DESC: create instance of ATM - */ - @Override - public ATM createATM(WrapperBankATM wrapperBankATM) throws BankException { - ATM ATMData = wrapperBankATM.getAtm(); - Long bankId = wrapperBankATM.getBankId(); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - if (bank == null) - throw new BankException("Id not found"); - else { - ATMData.setBank(bank); - ATMData = atmDao.save(ATMData); - } - return ATMData; - } - - /* - * ATMService#addMoneyFromBank DESC: - *DESC this will add money to ATM from Bank - */ - @Override - public ATM addMoneyFromBank(Long atmId, Long bankId, BigDecimal moneyToBeAddedToATM) throws BankException { - - Optional atmList = atmDao.findById(atmId); - - - bankDenominationService.addDenominationNew(moneyToBeAddedToATM,atmId); - - - ATM atmdata = null; - ATM atm = atmList.get(); - if (atm == null) - throw new BankException("Atm with such Id doesnt exist"); - else { - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - if (bank == null) - throw new BankException("Bank with such Id doesnt exist"); - else { - BigDecimal bankMoney = bank.getAmount(); - BigDecimal finalAmount = bankMoney.subtract(moneyToBeAddedToATM); - if (finalAmount.compareTo(BigDecimal.ZERO) == 1) { - BigDecimal atmMoney = atm.getMoney().add(moneyToBeAddedToATM); - atm.setMoney(atmMoney); - bank.setAmount(finalAmount); - atmdata = atmDao.save(atm); - bankDao.save(bank); - } else - throw new BankException("Bank doesnt have enough money"); - } - return atmdata; - } - } - - @Override - public ATM withdrawMoney(ATMDetails atmDetails) throws BankException { - Long atmId = atmDetails.getAccountId(); - Long bankId = atmDetails.getBankId(); - Long accountId = atmDetails.getAccountId(); - BigDecimal amountToBeWithdrawn = atmDetails.getAmount(); - Account account = null; - Bank bank = null; - ATM atm = null; - if (accountId == 0 || bankId == 0 || atmId == 0) { - throw new BankException("Id cannot be zero"); - } else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account exists"); - } else { - newAccountBalance = amountToBeWithdrawn.subtract(account.getAmount()); - if (newAccountBalance.compareTo(BigDecimal.ZERO) == 1) { - account.setAmount(newAccountBalance); - accountDao.save(account); - } else { - throw new BankException("Account Balance cannot be negative"); - } - } - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such id of Bank exists"); - } else { - BigDecimal newBankBalance = amountToBeWithdrawn.subtract(bank.getAmount()); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 1) { - bank.setAmount(newBankBalance); - bankDao.save(bank); - } else { - throw new BankException("Bank Balance cannot be negative"); - } - } - Optional atmList = atmDao.findById(atmId); - atm = atmList.get(); - if (atm == null) { - throw new BankException("No such id of ATM exists"); - } else { - BigDecimal newBankBalance = amountToBeWithdrawn.subtract(bank.getAmount()); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 1) { - atm.setMoney(newAccountBalance); - atmDao.save(atm); - } else { - throw new BankException("ATM Balance cannot be negative"); - } - } - } - return atm; - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AccountService.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AccountService.java deleted file mode 100644 index dba2067..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AccountService.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; - -/** - * @author Ram - * - */ -public interface AccountService { - - Account createAccount(WrapperBankCustomerAccount wrapperBankCustomerAccount) throws BankException; - - Account depositMoney(AccountDetails accountDetails) throws BankException; - - Account withdrawMoney(AccountDetails accountDetails) throws BankException; - - Account getAccountDetails(Long accountId) throws BankException; -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AccountServiceImpl.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AccountServiceImpl.java deleted file mode 100644 index 8819a7f..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,192 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Customer; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.repository.AccountDAO; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.CustomerDAO; - -/** - * @author Ram - * - */ -@Service("accountService") -public class AccountServiceImpl implements AccountService { - - @Autowired - BankDAO bankDao; - - @Autowired - CustomerDAO customerDao; - - @Autowired - AccountDAO accountDao; - - @Autowired - TransactionService transactionService; - - /* - * @see - * com.springboot.bank.service.AccountService#createAccount(com.springboot.bank. - * wrapper.WrapperBankCustomerAccount) - */ - @Override - public Account createAccount(WrapperBankCustomerAccount wrapperBankCustomerAccount) throws BankException { - - Account account = wrapperBankCustomerAccount.getAccount(); - if (account == null) - throw new BankException("Account not found"); - else { - Long bankId = wrapperBankCustomerAccount.getBankId(); - // System.out.println(bankId); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - // System.out.println(bank); - if (bank == null) { - throw new BankException("Bank with such Id doesnt exist"); - } else { - account.setBank(bank); - } - Long customerId = wrapperBankCustomerAccount.getCustomerId(); - Optional customerList = customerDao.findById(customerId); - Customer customer = customerList.get(); - if (customer == null) { - throw new BankException("Customer with such Id doesnt exist"); - } else { - account.setCustomer(customer); - account = accountDao.save(account); - } - } - return account; - } - - @Transactional - @Override - public Account depositMoney(AccountDetails accountDetails) throws BankException { - - Long accountId = accountDetails.getAccountId(); - Long bankId = accountDetails.getBankId(); - Long customerId = accountDetails.getCustomerId(); - BigDecimal amountToBeAdded = accountDetails.getAmount(); - Account account = null; - Bank bank = null; - Customer customer = null; - if (accountId == 0 || bankId == 0 || customerId == 0 || amountToBeAdded.compareTo(BigDecimal.ZERO) == 0) - throw new BankException("Id or amount cannot be zero"); - else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account id exists"); - } else { - newAccountBalance = amountToBeAdded.add(account.getAmount()); - Optional customerList = customerDao.findById(customerId); - customer = customerList.get(); - if (customer == null) { - throw new BankException("No such customer account exists"); - } else { - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such bank account exists"); - } else { - account.setAmount(newAccountBalance); - accountDao.save(account); - Transaction transaction = new Transaction(customer, account, amountToBeAdded, - "Money Deposited"); - transactionService.createTransaction(transaction); - BigDecimal newBankBalance = amountToBeAdded.add(bank.getAmount()); - bank.setAmount(newBankBalance); - bankDao.save(bank); - } - } - } - } - return account; - } - - @Transactional - @Override - public Account withdrawMoney(AccountDetails accountDetails) throws BankException { - Long accountId = accountDetails.getAccountId(); - Long bankId = accountDetails.getBankId(); - Long customerId = accountDetails.getCustomerId(); - BigDecimal amountToBeWithdrawn = accountDetails.getAmount(); - Account account = null; - Bank bank = null; - Customer customer = null; - if (accountId == 0 || bankId == 0 || customerId == 0) { - throw new BankException("Id or amount cannot be zero"); - }else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account exists"); - } else { - newAccountBalance = account.getAmount().subtract(amountToBeWithdrawn); - if (newAccountBalance.compareTo(BigDecimal.ZERO) == -1) { - throw new BankException("Account Balance cannot be 0 or negative"); - } else { - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such bank id exists"); - } else { - BigDecimal newBankBalance = bank.getAmount().subtract(amountToBeWithdrawn); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 0 - || newBankBalance.compareTo(BigDecimal.ZERO) == -1) { - throw new BankException("Bank Balance cannot be 0 or negative"); - } else { - Optional customerList = customerDao.findById(customerId); - customer = customerList.get(); - if (customer == null) { - throw new BankException("No such customer id exists"); - } else { - Transaction transaction = new Transaction(customer, account, amountToBeWithdrawn, - "Money Withdrawn"); - transactionService.createTransaction(transaction); - account.setAmount(newAccountBalance); - accountDao.save(account); - bank.setAmount(newBankBalance); - bankDao.save(bank); - - } - } - } - } - } - } - return account; - } - - @Override - public Account getAccountDetails(Long accountId) throws BankException { - Optional accountList = accountDao.findById(accountId); - Account account = null; - account = accountList.get(); - if (account == null) - throw new BankException("Account id doesnt exist"); - else { - account = accountDao.save(account); - } - return account; - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AuditServiceImpl.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AuditServiceImpl.java deleted file mode 100644 index 8452ef3..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/AuditServiceImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.springboot.bank.service; - -import java.util.logging.Logger; - -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.springboot.bank.model.Audit; -import com.springboot.bank.model.Customer; - - - - -@Service -public class AuditServiceImpl implements IAuditService { - RestTemplate restTemplate = new RestTemplate(); - - final Logger LOGGER = Logger.getLogger(AuditServiceImpl.class.getName()); - - @Override - public void auditLogService(Audit audit) { - - - final String uri = "http://localhost:8281/Audit/create"; - - restTemplate.postForObject(uri, audit, Audit.class); - - } - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankDenominationService.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankDenominationService.java deleted file mode 100644 index 0253cce..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankDenominationService.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; - -import com.springboot.bank.dto.WrapperDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Denomination; - -/** - * @author Ram - * - */ -public interface BankDenominationService { - - - - void addDenominationNew(BigDecimal amount,Long Id) throws BankException; - - - -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index 7540831..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,130 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.Random; -import java.util.logging.Logger; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.WrapperDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Denomination; -import com.springboot.bank.model.Denomination; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.BankDenominationDAO; - -/** - * @author Ram - * - */ -@Service("bankDenominationService") -public class BankDenominationServiceImpl implements BankDenominationService { - - - - private static final Logger LOGGER = Logger.getLogger( Account.class.getName() ); - - - - @Autowired - private BankDenominationDAO bankDenominationDAO; - - - @Autowired - BankDAO bankDao; - - - /* - * @Override public BankDenomination addDenomination(WrapperBankDenomination - * wrapperBankDenomination) throws BankException { Long bankId = - * wrapperBankDenomination.getBankId(); Integer amount = - * wrapperBankDenomination.getAmount(); BankDenomination bankDenomination = - * wrapperBankDenomination.getBankDenomination(); Bank bank = null; Integer - * noOf2000s = null; Integer noOf500s = null; Integer noOf100s = null; Integer - * temperoryCount = 0; if (amount / 2000 != 0) { noOf2000s = amount / 2000; - * amount = amount % 2000; System.out.println(noOf2000s); temperoryCount = - * temperoryCount + noOf2000s; bankDenomination.setNoOf2000s(noOf2000s); } if - * (amount != 0 & amount / 500 != 0) { noOf500s = amount / 500; amount = amount - * % 500; temperoryCount = temperoryCount + noOf500s; - * bankDenomination.setNoOf500s(noOf500s); } - * - * if (amount != 0 & amount / 100 != 0) { noOf100s = amount / 100; amount = - * amount % 100; temperoryCount = temperoryCount + noOf100s; - * bankDenomination.setNoOf100s(noOf100s); } - * - * Optional bankList = bankDao.findById(bankId); if (bankList.isPresent()) - * { bank = bankList.get(); bankDenomination.setBank(bank); - * bankDenomination.setNoOfDenomination(temperoryCount); - * bankDenominationDAO.save(bankDenomination); } else { throw new - * BankException("bank is not present"); } return bankDenomination; } - */ - - - - - @Override - public void addDenominationNew(BigDecimal amount,Long Id) throws BankException { - final List list1 = new ArrayList(); - - - - - - BigDecimal num1 = new BigDecimal(2000); - BigDecimal num2 = new BigDecimal(500); - BigDecimal num3 = new BigDecimal(100); - BigDecimal num4 = new BigDecimal(200); - - - - list1.add(num1); - list1.add(num2); - list1.add(num3); - list1.add(num4); - - - - - - - - - final Random rand = new Random(); - BigDecimal remainder = amount; - //System.out.println("list >>>>" + list1); - LOGGER.info("list >>>>" + list1); - for (int i = 0; i <= list1.size(); i++) { - final Integer randomIndex = rand.nextInt(list1.size()); - // System.out.println("randomIndex >>" + randomIndex); - final BigDecimal randomElement = list1.get(randomIndex); - // System.out.println("randomElement >>" + randomElement); - if (randomElement.compareTo(remainder) == 0 || randomElement.compareTo(remainder) == -1) { - final Denomination bankDenominationNew = new Denomination(); - BigDecimal res = remainder.divide(randomElement); - - bankDenominationNew.setNoOfDenomination(res); - bankDenominationNew.setDenomination(randomElement); - BigDecimal res1 = remainder.remainder(randomElement); - - //remainder = remainder % randomElement; - //System.out.println(bankDenominationNew); - LOGGER.info(">>>> Denomination"+bankDenominationNew); - if (res1.compareTo(BigDecimal.ZERO) == 0) { - break; - } - } - list1.remove(randomIndex); - } - - - } -} \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankService.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankService.java deleted file mode 100644 index ef543af..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankService.java +++ /dev/null @@ -1,22 +0,0 @@ - -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; - -/** - * @author Ram - * @nterface BankService - * Description : It has 2 methods declaration in it. whichever class will implements, - * will provide implemenatation for this methods. - * - */ -public interface BankService { - - Bank createBank(Bank bank) throws BankException; - - Bank getBankDetails(Long bankId) throws BankException; -} \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankServiceImpl.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankServiceImpl.java deleted file mode 100644 index 9fafbc4..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.repository.BankDAO; - -/** - * @author Ram - * @Service("bankService") - * Description : It provide implementation for BankServices method. - * 1.It Helps to create new bank - * 2.getBankDetails - */ -@Service("bankService") -public class BankServiceImpl implements BankService { - - - //Injecting properties of BankDAO - @Autowired - private BankDAO bankDao; - - /* - * BankService#createBank - * Desc: this method helps to create a new bank with default amount 0. - * - */ - @Override - public Bank createBank(Bank bank) throws BankException { - Bank bankData = null; - final BigDecimal amount = bank.getAmount(); - /*if (amount.compareTo(BigDecimal.ZERO) == -1) - throw new BankException("amount cannot be zero or less than zero"); - else {*/ - bankData = bankDao.save(bank); - return bankData; - } - - /* - *BankService#getBankDetails - *Desc : It will helps to get information about details of bank passing a Id of it. - *Exception : it will throw exception if Id not found. - */ - @Override - public Bank getBankDetails(Long bankId) throws BankException { - Optional bankList = bankDao.findById(bankId); - if (bankList.isPresent()) { - Bank bank = bankList.get(); - return bank; - } else - throw new BankException("Bank details not found"); - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/CustomerService.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/CustomerService.java deleted file mode 100644 index 09837e9..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/CustomerService.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Customer; - -/** - * @author Ram - *@entity CustomerService - *Desc: It has 2 methods declared which helps to create customer and get customer details. - */ -public interface CustomerService { - - Customer createCustomer(WrapperBankCustomer wrapperBankCustomer) throws BankException; - - Customer getCustomerDetails(Long customerId) throws BankException; - - Customer updateCustomerDetails( Long customerId,String customerName); -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java deleted file mode 100644 index a71ce5c..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,125 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.sql.Timestamp; -import java.time.LocalDateTime; -import java.util.Date; -import java.util.Optional; - -import org.aspectj.apache.bcel.generic.RET; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.enums.AllEnums.EventName; -import com.springboot.bank.enums.AllEnums.EventType; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Audit; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Customer; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.CustomerDAO; - -/** - * @author Ram - *@Service("customerService") - *Desc: This class provide implementation for creating customer and - */ -@Service("customerService") -public class CustomerServiceImpl implements CustomerService { - - - - - //injecting properties of CustomerDAO - @Autowired - CustomerDAO customerDao; - //injecting properties of BankDAO - @Autowired - BankDAO bankDao; - - @Autowired - IAuditService IauditService; - - - @Autowired - - /* - * CustomerService#createCustomer - * DESC: it will create a new customer having bankId associated with it. - * It calls save method to save he state of customer object into database. - */ - - - @Override - public Customer createCustomer(WrapperBankCustomer wrapperBankCustomer) throws BankException { - Customer customer = null; - Customer customerData = null; - customer = wrapperBankCustomer.getCustomer(); - // System.out.println(customer); - Long bankId = wrapperBankCustomer.getBankId(); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - customer.setBank(bank); - customerData = customerDao.save(customer); - // System.out.println(customerData); - return customerData; - } - /* - * CustomerService#createCustomer - * DESC: it will show customer details having customerId associated with it. - * It calls findById method to find that entity by id and return the object to responce. - */ - @Override - public Customer getCustomerDetails(Long customerId) throws BankException { - Optional customerList = customerDao.findByCustomerId(customerId); - if (customerList.isPresent()) { - Customer customer = customerList.get(); - return customer; - } else - throw new BankException("Bank details not found"); - } - @Override - public Customer updateCustomerDetails( Long customerId,String customerName) { - - Optional customerToUpdate = customerDao.findById(customerId); - - if (customerToUpdate.isPresent()) { - Customer customer = customerToUpdate.get(); - Customer oldobject=null; - Customer newobject=null; - try { - oldobject = customer.clone(); - customer.setCustomerName(customerName); - newobject=customerDao.save(customer); - Date date= new Date(); - - String date1 = new Timestamp(System.currentTimeMillis()).toString(); - - Audit audit=new Audit("101",EventName.CUSTOMER.toString(),EventType.UPDATE.toString(),date1,oldobject,newobject); - IauditService.auditLogService(audit); - - } catch (CloneNotSupportedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - - //IauditService.auditLogService(audit); - - - return newobject; - - }else { - return null; - } - - /*return customerToUpdate.map(customer -> { - return new Customer(customer.getCustomerId()); - - }).orElseGet(null); - */ - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/IAuditService.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/IAuditService.java deleted file mode 100644 index 2a509a5..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/IAuditService.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.springboot.bank.service; - -import com.springboot.bank.model.Audit; -import com.springboot.bank.model.Customer; - -public interface IAuditService { - - void auditLogService(Audit audit ); -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/TransactionService.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/TransactionService.java deleted file mode 100644 index 0d4cdb2..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/TransactionService.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.Optional; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Transaction; - -/** - * @author Ram - *this interface has 2 methods which create a statements for an Customer - *and generate a report for statements - */ -public interface TransactionService { - - String createTransaction(Transaction transaction) throws BankException; - - Optional getTransactionDetails( Long customerId) throws BankException; -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java b/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 5575548..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Customer; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.repository.CustomerDAO; -import com.springboot.bank.repository.TransactionDAO; - -/** - * @author Ram - * - */ -@Service("transactionService") -public class TransactionServiceImpl implements TransactionService { - - //Injecting properties of TransactionDAO - @Autowired - private TransactionDAO transactionDao; - //Injecting properties of CustomerDAO - @Autowired - private CustomerDAO customerdao; - - /* - * - *TransactionService#createTransaction - * DESC: it will create a statement for a account of a customer - * which contain typeOfPayment,AMount etc. - * Exception: It throws exception if user enter acoount id or customr ID 0. - */ - @Override - public String createTransaction(Transaction transaction) throws BankException { - - Customer customer = transaction.getCustomer(); - Long customerId = customer.getCustomerId(); - Account account = transaction.getAccount(); - Long accountId = account.getAccountId(); - - if (accountId == 0) { - throw new BankException("accountId cannot be 0"); - } else if (customerId == 0) { - throw new BankException("customerId cannot be 0"); - } else { - transactionDao.save(transaction); - return "Transaction details added successfully"; - } - } - - - /* - * - *TransactionService#getTransactionDetails - * DESC: it will get details statement for a account of a customer - * which contain typeOfPayment,AMount etc. - */ - - @Override - public Optional getTransactionDetails(Long customerId) throws BankException { - - if (customerId == 0) { - throw new BankException("customerId cannot be 0"); - } else { - Optional transactionList = transactionDao.findById(customerId); - return transactionList; - } - } -} diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/main/resources/application.properties b/Eureka Server App/BankApp in spring boot new Eureka/src/main/resources/application.properties deleted file mode 100644 index 91dd5af..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/main/resources/application.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.datasource.url= jdbc:mysql://localhost:3306/mybank -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -logging.level.root=info - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/AccountTest.java b/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/AccountTest.java deleted file mode 100644 index 71c14b2..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/AccountTest.java +++ /dev/null @@ -1,135 +0,0 @@ -/*package com.springboot.bank; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Customer; -import com.springboot.bank.repository.AccountDAO; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.CustomerDAO; -import com.springboot.bank.service.AccountServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class AccountTest { - - @Mock - private AccountDAO accRepo; - - @Mock - private CustomerDAO custRepo; - - @Mock - private BankDAO bankRepo; - - @InjectMocks - private AccountServiceImpl accSer; - - @Test - public void createAccount() { - Bank bank = new Bank(new BigDecimal(1200)); - bank.setBankId(1L); - Optional bnk = Optional.of(bank); - Customer customer = new Customer("ram", 2131, bank); - customer.setCustomerId(4L); - Optional cust = Optional.of(customer); - - Account account = new Account(customer, new BigDecimal(4000), bank); - AccountRequest accReq = new AccountRequest(1, 4, account); - - when(bankRepo.findById(Mockito.any(Integer.class))).thenReturn(bnk); - - when(custRepo.findById(Mockito.any(Integer.class))).thenReturn(cust); - - when(accRepo.save(account)).thenReturn(account); - assertThat(accSer.createAccount(accReq), is(notNullValue())); - - } - - @Test(expected = BankException.class) - - public void checkAccount() { - Bank bank = new Bank(new BigDecimal(1200)); - //bank.setId(1); - //Optional bnk = Optional.of(bank); - final Optional banks = Optional.empty(); - - Customer customer = new Customer("rama", 2131, bank); - customer.setCustomerId(4); - - final Optional customers = Optional.empty(); - - Account account = new Account(customer, new BigDecimal(4000), bank); - AccountRequest accReq = new AccountRequest(1, 4, account); - - when(bankRepo.findById(Mockito.any(Integer.class))).thenReturn(banks); - when(custRepo.findById(Mockito.any(Integer.class))).thenReturn(customers); - - when(accRepo.save(account)).thenReturn(account); - accSer.createAccount(accReq); - - } - - @Test - public void deposit() { - Bank bank = new Bank(new BigDecimal(1200)); - bank.setId(1); - Optional bnk = Optional.of(bank); - - Customer customer = new Customer("ramesh", 2131, bank); - customer.setCustomerId(4); - Optional cust = Optional.of(customer); - final Account account=new Account(customer,new BigDecimal(100),bank); - account.setAccountId(2); - final Optional acc=Optional.of(account); - when(accRepo.findById(2)).thenReturn(acc); - - final Bank bank=new Bank(new BigDecimal(100)); - bank.setId(1); - final Optionalbanks=Optional.of(bank); - when(bankRepo.findById(1)).thenReturn(banks); - - //final Account accounts=new Account(customer,new BigDecimal(200),bank); - when(accRepo.save(Mockito.any())).thenReturn(account); - - //assertThat(accSer.depositMoney(2,new BigDecimal(100)), is(notNullValue())); - - assertEquals(account,accSer.depositMoney(1, new BigDecimal(20))); - - } - - @Test - public void viewAccount() { - final Bank bank = new Bank(new BigDecimal(0)); - bank.setId(1); - Optional bnk = Optional.of(bank); - final Customer customer = new Customer("rahul", 1231, bank); - customer.setCustomerId(2); - Optional cust = Optional.of(customer); - final Account account=new Account(customer,new BigDecimal(100),bank); - account.setAccountId(3); - final Optional acc=Optional.of(account); - when(accRepo.findById(3)).thenReturn(acc); - - assertThat(accSer.getAccountDetailsById(account), is(notNullValue())); - - } -} -*/ \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/BankServiceTest.java b/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/BankServiceTest.java deleted file mode 100644 index 2c280b4..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/BankServiceTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * - *//* -package com.springboot.bank; - -*//** - * @author ram - * - *//* - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; -import java.math.BigDecimal; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.ResponseEntity; -import org.springframework.test.context.junit4.SpringRunner; -import com.springboot.bank.controller.BankController; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.service.BankService; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class BankServiceTest { - - @Mock - BankService bankService; - - @InjectMocks - BankController bankController; - - @Test - public void trueCheckCreateBank() throws BankException { - final Bank bank = new Bank(1L, new BigDecimal(1000)); - when(bankService.createBank(bank)).thenReturn(bank); - assertThat(bankController.addBank(bank), is(notNullValue())); - } - - @Test - public void falseCheckCreateBank() throws BankException { - Bank bank = new Bank(-1L, new BigDecimal(2000)); - try { - when(bankService.createBank(bank)).thenReturn(bank); - } catch (BankException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - ResponseEntity bankDummy = null; - try { - bankDummy = bankController.addBank(bank); - } catch (BankException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - System.out.println(bankDummy); - assertEquals("Bank not found", bankDummy.getBody(), bank); - } -} -*/ \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/CustomerServiceTest.java b/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/CustomerServiceTest.java deleted file mode 100644 index a4d52cd..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/src/test/java/com/springboot/bank/CustomerServiceTest.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - *//* -package com.springboot.bank; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.ResponseEntity; -import org.springframework.test.context.junit4.SpringRunner; - -import com.springboot.bank.controller.CustomerController; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Customer; -import com.springboot.bank.service.CustomerServiceImpl; -import com.springboot.bank.wrapper.WrapperBankCustomer; - -*//** - * @author ram - * - *//* -@RunWith(SpringRunner.class) -@SpringBootTest -public class CustomerServiceTest { - - @Mock - CustomerServiceImpl customerService; - - @InjectMocks - CustomerController customerController; - - @Test - public void truecheckCreateCustomer() throws BankException { - Bank bank = new Bank(1L, new BigDecimal(1000)); - // Optional ob = Optional.of(bank); - final Customer customer = new Customer(1L, "sumit", 12345, bank); - final WrapperBankCustomer wrapperBankCustomer = new WrapperBankCustomer(customer, 1L); - when(customerService.createCustomer(wrapperBankCustomer)).thenReturn(customer); - assertThat(customerController.createCustomer(wrapperBankCustomer), is(notNullValue())); - } - - @Test - public void falseCheckCreateCustomer() { - final Bank bank = new Bank(-1L, new BigDecimal(1000)); - final Customer customer = new Customer(1L, "sumit", 12345, bank); - final WrapperBankCustomer wrapperBankCustomer = new WrapperBankCustomer(customer, 1L); - try { - when(customerService.createCustomer(wrapperBankCustomer)).thenReturn(customer); - } catch (BankException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - ResponseEntity customerDummy = null; - try { - customerDummy = customerController.createCustomer(wrapperBankCustomer); - } catch (BankException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertEquals("Customer not found", customerDummy.getBody(), customer); - } - - @Test - public void checkCustomerDetails() { - final Bank bank = new Bank(-1L, new BigDecimal(1000)); - final Customer customer = new Customer(1L, "sumit", 12345, bank); - try { - when(customerService.getCustomerDetails(1L)).thenReturn(customer); - } catch (BankException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - ResponseEntity customerDummy = null; - try { - customerDummy = customerController.getCustomerDetails(1L); - } catch (BankException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - assertEquals("Customer not found", customerDummy.getBody().getCustomerId(), customer.getCustomerId()); - } -}*/ \ No newline at end of file diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/MANIFEST.MF b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index c002f8a..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,10 +0,0 @@ -Manifest-Version: 1.0 -Implementation-Title: MyBankDemo -Implementation-Version: 0.0.1-SNAPSHOT -Built-By: trainee -Implementation-Vendor-Id: com.springboot -Build-Jdk: 1.8.0_171 -Implementation-URL: http://projects.spring.io/spring-boot/bank/ -Created-By: Maven Integration for Eclipse -Implementation-Vendor: Pivotal Software, Inc. - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/maven/com.springboot/bank/pom.properties b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/maven/com.springboot/bank/pom.properties deleted file mode 100644 index 75498f3..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/maven/com.springboot/bank/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Fri May 25 19:20:50 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=D\:\\training\\16BankAppSpringBootJPA -artifactId=bank diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/maven/com.springboot/bank/pom.xml b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/maven/com.springboot/bank/pom.xml deleted file mode 100644 index 9dd1de4..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/META-INF/maven/com.springboot/bank/pom.xml +++ /dev/null @@ -1,98 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - MyBankDemo - project for Bank Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - log4j - log4j - 1.2.17 - - - - org.mockito - mockito-all - 1.9.5 - test - - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - org.springframework.cloud - spring-cloud-starter-feign - - - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/application.properties b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/application.properties deleted file mode 100644 index 91dd5af..0000000 --- a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/application.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.datasource.url= jdbc:mysql://localhost:3306/mybank -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -logging.level.root=info - diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/BankApplication.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/BankApplication.class deleted file mode 100644 index 06d60dd087e85f946dd7eb4d7ebbb944065f6b03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 710 zcma))O-~y!5QbkTfeqV0((qBfE(lc$In)=_OAt~);8XG$w~&QR~2j2If1=2ph2W37c1tTMC{rR8;5 zq|$y7=|nPg6O)O_NLc0L=VZg(s~N-lW2hP|6oJ5|V$nknBzYvaPUNcDW_Y=K>r z&d`uyILYTPaY2i(3^~9N=rQOg0c!L`yCfS?#K|-AEB#++{tV@qtS^HOydm3~A0WR@ v(Hb_;ri{P*F^B=pF6;kB=j-BrOcfvw3JZ-UcJPk!HS7kvhkf$C*8%V!v_H7l diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/ATMController.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/ATMController.class deleted file mode 100644 index 1eaa0cfecb36b5afb10b554104ca6978fa52a45a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3745 zcmcInYgZFT7=9)RtYA4> zYuSaYpI;W} zO*wAClx3M)Q)baAjIEm~r%+ICQlMS>rHpbPSUDvykP5TwRbOkP+dC=OyIiq-tE5&f z&&n3nv~4@S^exBs1g-@3s_x%&Wl3#1?uMCF()P@IGUq$)mMM1y%;}2nY+A0$Q*G;{ zWn2D~Ky)CnDiE7>@~RzC9FF54;_WzsqXxPJjyH%Xj&2+iXe%hc8X~bANY${JElSTz zCK>|L2I`KZ1+4;yQvbZW;OFwTf#{4ylL63%F*C=NUwJql= z=_{ftkO@aV?>pulSC-4logo9bb=&p**sl40*<4m$nfR-DCdS{=xt;$er^-Q64D<^O zg=JUm>@l^8T?zV^u?n{ID=q`~U%!8op?H;;@1kZ}a*6?53MJB}%9>fr&ewD3w&VF} z0>y%%T+0JltkCUtvkv3adl`FMYG(S%-9z2xEiSA373KLePJSz?S(Avvz=4Ap!ia%k zf%9QtKVM35oWQ8S;wu0grnrV%JNj@jj(6}b<7XM9mFLL9t8S%JvXO@VWvd57tNjE&4`puhoi=*J`N!mNbxz^oBKeY7e!0I8coZ4XMSAcj3=BQRUg+{tT0MhkwM> z6U=>2O%dwpq}gcT@F|828j8?D2L^Z?C+Of1`Z0__j0OP=RxNG^K-;*E8-b=VEaF4T z9w9_Gk)qBtwH-(FADW075C(1;xUI*&gB=uEMkXZom5|s!4q`tVrO+yM*8gf8{-RGh zWm94z7636k@)UPsn23FcBNHtejNXoLqF{7-n;j_Jm);;-1GN8zyASX44#3Qz*);JntsW% zoqX1H12Zd~71MH^z;g=)<(ZR~<(8dbYIDaxyFl-CM-UG=%2=pagOBUv(XX|yi*&Zy}jLf;nAiphtgxhU- zN(L%St-#a4NG-X*H6MAhR8rn`vSO<22X0Y$p;!o~N}XC#mV%&Urj=h};?xW?8m!Y| z=gbRBl`7dZFd#4zMGdua#?JGpu?-gEsR#UQf4D7S4@7RrRtW4@7tV~zB`CpFCjMthUi%y#Qm)9QIy`N4HJ zx1P}K8j52Zws&C!rwxn>3`Zp(x;EoDj57iY9~k&3Lyht5L_f~P@hQ%cC@i6r@_m_S zkaiCa)fG`D&`m0#t8pxj3m9iKmFKyhz@GYIt2U&>(EJWuV%dju9muIb+68}rZDl~_ zaw@0IUeN{4v@|FP4Gqm3_)OqbRO^Xgc?Uknq=9P!$D2yrWN~EJ)yjSx*D)m!o4X@$ zB9coL6Ey+ip1_QD_lCfg2)r#R(cSIfTGN^q7>nfpJ34_tSJ?cgWgr=VNF|L)7ZA+w z>By5!8Ugdv&FEPxET>8rG%&{w7)7wRJ8a;-z|knV1|J3DIaP9fJ4m^XS{KMPFM*I{ z(^ZnaS8sf=^;%o)V%=svK;0c4#gWEifz*3A_0B*hcHoO9mAJ^^B3Bz8!uScaY~H}v z0w<$f&>Uz?3;DBV2TM6mu7w#rU^Z;r@Z4f3qJxo*Ef z?!#vvF5PNw_nWJ>S_|Dazme7H>{jkuf$_**5qWvZU}%M8JCZAdU;4d+?_NEXRsOKcAp6uhGBIckvZ2|M?md3!^{b z>MKnDKus~~>807Wio-`LW>0YU6!!;t#}3iK5xPH$VVtP|7_M3j0nj#PakHXn47YHb zvbz|fJ4jMzioWeb+rKo?W%STEu>y{$C*W zaiX|L?3aoC3b9W#!Ttnawu=3$2JBB;#{R4o>~agRPZIkSu}>5G46)A=`%PlMz17$) zELN$)rr diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/BankController.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/BankController.class deleted file mode 100644 index 9594887bc0955f7a5eccc169e748671b2a488307..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmb_eYf~Fl7=BJdSuTMhlvcdZ*p`+6?Y5NCORz0aN^8SKs3_K|C!0gqHtfdT6KKcr z_xM#EZB=IUqci>}^*I}w1ZSZc$4NHlvgf@#&wDxf^RHij12BPtg@nL)$KSHUa^QN! zyzgr}FTJO><9j;rOC=T9GhENsmKItBdY;H_X_ur|w3qTvl%oY&b4&B{b1MP^IX@`c zvMilVWtaTo#1lK`7mF&$3UnIXt18%b9VL*-#aRxkuOqX2M=3e5Qt`CArPkcg&6m`) z=lNP{*Y`q!Ymvn&f{j3KsU1IfYUh>oLVH6x+7F)FvL;|pSG2$52C6`{ty8Y&>YD<| z;mn#q%dB5e9Z2G63Y|!G;0^Ry=oL6|0HzdYcg=ndT+BuZ@L6+$C7to*of7Vg@TEtz=Ppf z;VptMMZE8M{BKG(wJzH$DlC(BHOF}9=hWLV_smh{C>9pd0;6$JRj`=MTtQ3E15M5w@I0) z;wF;19W%INVOHSuffDyv3#)8Fl`w@l+!aVHJrEd*&8Vnu>H-9P3-^q>_XTdmfNe@i z)UQlG6-d7>*#+9n$vaX@0l`@GH$YaN@IV_>A}BqMr^c&Sv_4A?YeLt>vv`j!EXjWz3G|rj zE}F5QakriGR*oGUlN@>R^0$kt+dM5ec8|Q|(<^>P&rdl1J$Dj#)9gnY2hf7Id47N& zM6%}1TigSs-@&`IH^_MlS10L*kvgi#t zOhyh5vW0`j6F9^DA@;trbZ{7HWH7>PFaSoX7WV+qHa@_ENYeyzoFypLi3KcD=MvAK zK=N;zNLmmUmiaZ~rOqyjtY9?;`@dTOA2o^nBK;qy{>wx$ lLF|*newCQ7AAtQaKHtM`SU42>7Y*1Gkc5#yzLs4M@DJOr1rPuL diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/BankDenominationController.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/BankDenominationController.class deleted file mode 100644 index c0991d004629a0b7817b0f35ce3443e8b6cc32b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2993 zcmcImTU!%X6kR7l2I8O=uOL>%ssY8R7wRQ|hKrXPE+rJD+RJ2e2qTl3I5UCr+CS6R z*7k$8er+H7eSPllX}iuOh9DEmOW}ia&Yao%?7hxjYtNs5|MDAv8(7zn5V&o5Wh1Eg zwp%KAUT73dch#^wH}pNnk-jm`^`vyYvhA9o?YR?;Ee&k~hhCU#rs0@w$(Sv?kX9(r zo|}E}U}|2VHy3SIL)$SNuTxEIsfxxYt=a=efF8gL#u6zEfQIMt^7|W&=dj5uCHVlkxHT2eP zUl!@MW5jZ7*AB-7lIej(fwl>+C^Z}uI2#venY)gWwJeX}r0^aNYv>j@xDC{VV+Mha zBRDFcm1H=>cm$552WoglVCF-0BbgMAqesIDffKE;)X|HR0-bbJ16SZmdbg*#^SI0C zgup2s`_RrXbG9pIs^x<87fhlk(4F%v(^)iqTdnI4+eacuQb?j-#~J8^C0wzIbSC!p z_Eb;=`y{hi;I%o;m2uzmRTT<6O~*PfhMw`nH!BtCH=AV!VlRCq3@gUG3@V-*$SGD# zxWR){Q(s%Mq6$3FFd%R#?rPP2ARStHouts0tl-z(f^YvSme4QtJ)#%4WD? zjN7G2Y1w7dA^UD(RL2KZv>$%>-ZRtDPUfe`5vvA+MY2-kqId^ z(kwICG^TaTC{;=kooN{aW=W8s(*xzOW$$Qv#4ZjQO6VY zZkz2cdmUIJq!j2g%e;f4I{TT@kp&H(3tWs7>log4;!Btsz7jas(&8cMo@XDZQgI8g z1QN3Z;(RPWq9e8q2+4Cu71pxAo#w=9tuC`CC#q!}Uf(TG0zwMuEIOMY()Y0fT8^8iC}<)sc^aiv3%D=a^nWF@}c=2={M zuj*U!zOA~;X~n7Ln&1AuxT5NPPQBu!%!I;n)x8`=09r-sgX11DxisdIGN4`s$VjN42|ea0_SO zHtCB@)T?{}=kP&fd>$9Ly2yDOchVT-EP+c=cnA1I1vB&vBES_G+|$$vA9A81{fkCz z93Q{N)uk<5pC0@XH!f}BBmRy2jC)CZixV@iaDQkMxlPQzLSJq6>E%Dr^&07=?x$P$ z?DyArzI6E&zSu(XJG$>c5BeBOGD^6gYcQ@3#?pf!oMI#w8Ov4v4&xf`@;g$2F<1+w zo*9Ee2`iDe3D|hStWNQJXB7_pmihj1B>&+tNex27O^x0-rjK;d#N9I}-fmESt%EWe z14`wcpu7`?-l%%U2*W+XkYzICgkgeVPc@}K+DL!2k^V4(nDmb!5tlw;3JFdE)kcM` G0sjI=88{*U diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/CustomerController.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/CustomerController.class deleted file mode 100644 index 9e4bb88e8aa43560ccda931067784dde8e196b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3658 zcmcImYj+b>6x}x|9a_={81Jk zxfOxKX~)f*vLvl_Wfq+Lk%DpX#QD7+TShBDxU0Xlb7Q6g)o1o8y7VxDM z5^uldD(S0$UV*!bP(L}}G4HstR8sC$N+bBbhUEEDuls(s zDpfc#5EmE=V_XH_m^x0~f+fw^`J(j8F6;2s|CHoZDE2LCpiq}!YMM~ahbnAGWzDQz z%r%Q^+41}Z){TutyItF|P$qx@^ZB|TZ`Jd%)VlSR+am1F!>*_=%F6SvI=P1_t*K-T z26pek7$yvix2b)bZi`_UX9P0;wCG{?l5S~o z(&C{ODYjIZT0C(g>&$E3yFZOV|+1sw=1!BSUz9xMsaI%xG5fG#`e9E`!d2-XoidmcN zpUSK=u+&DmZE`j6fxz)s>yVR`;tS+*t*RD*RCB4*4i#7(+#M)_xyyfV-SHfn3}rrS z4$ZT<>SO4LxoxYR0I&IFz~{}}BY_JY`&^d(daxO#^lZ5o!wNp4ixB9qW+Am3A9G`0 zbmCswT94n%#htad-UZ_7f&IYe9@pDQlxL5o0Z}2xz~|i18hfo?WP6uOxuzYiPVT}B zIX3wV#z1H(!gn|Czx3C!0LIK#cr9Eu9u~QoJkkuU#UR0|+~_FVjySUgjLp zePHN3^f9JEQmxYDHsh3COI^41LFZ85qH*3lqix!q?ZOn#^M~IsPvH%2gHaxNBN)`@ ztI8esM6UMmzMI!xUb}eZNss@1e7eG~1+V?1Pxu=WKVk4k9Q=+e5xl0?D;|&1>KMO2 zio;yfw))KxK7;qee76g)^IrQNVIJE0cqM8-S5EME@;-!zQ+Si_430{i=8aC^8I8Jl zy&x7we?VgFDMlk$_yz-ud^|Yu80KS~8~+V`&oFXt=$$8c_t$5bx;Oqkrk~*2xAYXD zpFxI=RuX=l#{e);gc16X;D(xHf@6qd9HTf>0WeyPSOdV=n8%HZr%Bwz`?TH565T?Y zJ{Rci5TbuEMAU#VuxMaeUq|-z(PRag5bU?>*gxbqRqU$`?04uh9Q)muV87oX_KVE_ z68)!$Vv5+OiTyIM&$Pk*2|n!<`)4iKC9)ydtq|))I==~2F@k#7z$R@XOh_|b W<(Dn;2ZlAa2nw{1V5{CTMc{80Y7Kb+ diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/TransactionController.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/controller/TransactionController.class deleted file mode 100644 index fc5f5c88398713feb517fc63763356600811e65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3059 zcmb_e`*Raj7(F)$UD~ElDi4c5E6=7B7Nk5R1%Xl?l2S~uiuk(O+@=fZZrr_Tt&V?> zzpA64GNV5_wB|XyB0D6!%yUzw5!sq*bAj6%FzOSg@xO< z=ZXTO1wW|RvL>AsWmo;m^b@<_S1KyV3ykQN%S9EexsDPzQ%K4qY&?!9(X^nS(PG`x z?y6dHL$_2_*FDeI(&QNmT#Dj1U@Zr7RjvEMQ@f;y#a<>FKiIJ4mVte}uKjg4P-VL9 zn{ho?UlmAC}{Q}^quB^5lB#7OcAz9XwkGH}g(b2Fn?T!Oxk$lCbIn*3=(i;pkF!#BmYLP}3#sy9$iLN%^ zv2U;zw=78MqFeE#t_S2{`F~GuCZ^G%HvN#l%9PJ1R?@mE*(KL2$BXEJAL@Bos~Jmy zZELbxH-gy--3QW?s8&H+4fh_os6MN!P~Y&&8+lVcxhyPfAH+$VvM?oZI*I1) zy_LlQoEFIUPI0Tco6HSh3}>=9i#I4bJ7Hdhp{$UO-4nS^o=sCtXK@}E$eRiRKM>dx z@0rGY$>)}~7%W_$jP3X&}S1Cf9lV)nUB@0&sPMG%Xp=$f_ z7Oq>kCUB&y#T^#=B4P#X_9T+)X%zQa$ zueoYH2Fm`@sfXHMRl(izS7xXum0jZek$PqGV91;1e?N;N9tj*zz!%ZgmUezS9>1iw zmi@X{W;3^vqe8JliFjjwH@4b63+!z_wl->;N7t2v_j@PMLP=mpyYv>A=13<#=Dz6H z14rF*%|W_9MtSSQ=CrZv_W6)RI*&NrGSB06j^8vtuTmH`M|gC_SJ+ r3-%B3(H8cP+pvGa98IC5=<6;%<=Vl9wBT&Ak%FQ@3d>vdRssG7r0ipR diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/ATMDetails.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/ATMDetails.class deleted file mode 100644 index a4b60d6108861846e0257ec3ad225df8a2230adc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1861 zcma)6YflqF6g^W)DP;vLkJ93Ur_%CR6;QDhZ9x-E)kFvhF@D&VO<8DnNxS&jpQMRE zqKQAiA7#9EX3Lg!iGJC+Gkf;jbMHN~zkYxJ319^;dk_(rsyYq5b<(u#TE%f(y<*tM z`hn}{#oaesrfXRBRu7^AgGa_EL$4clO@CK8GOMmYjIrAX^sel`EIW2BFVJnc4Sv;Y zRIARZ?Q$G58XO9YDtyCm5A~8&+cK+G!>H3&v31L~+zo-Qx$K@mbkjL76X?Q#hCXNl z17*uL-<~!qW^>o5)J=h8*{K@!J)>#y-aCxChgM5qru^^PDCzcGQ2zhzgYvU`y`b7O zbR)*mn1&t|Wi-T9bW1}o64aKO>6X0iCFioigal~$fT6zxa&zKDQB+Ni6W9wiKJ{C! z@f&~3X^Y+v#@cCvb*SWRSlUY-L`ey*v*WUJ1cuve(jn?J--88#lG!?ap1G|Eq)z z(lbGy11X{#!%d19P9P*PL@N^v(~}84%Y;CN33Bsi7|AW1A(dM^Lpqm^o?+Z)%}61W z#5zTWo<=`rh;J5Y+>=>WC<8HhSvcZSICDl8!LR48AcWAQfADPDQF5|LQ+8?`A{KK;X+bD zA)AzL>lz_Ea_+!%sE~9}$m>ucGvPwgK_Tx+$j&uFct|W{mPV_L(m9&(ppgAgA@?!o zeSBp!9gb3?F-S<|8X@cv7D9K(<8sJ7?2*C`%l_FP4YpQCfVIr)?>$3aD6$0@Vc5Xdh{ zi6;I4f0XgworP}KlJI5c&d!~4&$;)^pT9qU1K7ap5C#O6b*rwn&YNbVTCpr!t!Rxi z_1L!5U0t`@4ZCRAnptaw5D*wY)xKzIO>0!u_mxvaw*`Wne{f7^rS4(LYE<(AQN7)= zt-8_V^N1$#I1Xxch8CEXm+G2*qVAd1qM@60twvXa+h)VGcLWC0nX*7&-#Rv;7{r)@ zVJHG)C9`3?Yu77A^P^U&83M7ArE9ga)--wV{tVbBW=kMlx}8WWe316*xZU0_AybZk z^eGrZkfRv|AsHnVgk^MBK?G51P1UgX+&0G28Gk`aXmt}N{v*f@8X<^%Pq#2Coz^_QsxJpa7H2hgiCTv@WHXBM{@(Rr{jr^MrAtw;;+C~1} zYn!!WqZ!5;9rl_p^+~#{5XA}}u>~FrOnDpOB4^5+v96H2H`!+A=SG9%u6k3YbMxLd z_Yla3@r)XpOLg7r)ZJp#7e277x}KT&!M3U0xzx4$3t^D0BlO2PeBG* zdN+qwyQv#*O!oCeZ!6ZgZI~lR4bmeHV1Nxq(E!`aS;<_^O4g!vm@?_b(07D(>$D15 zhq9L#{qCfV(>F@jfjGg<;0{HcPDzMif>s8Yq%Q+}bqWGW2FR{-FqO@95YMi5kjN$i z9n5x7lMazNLY*g{FJKglgtvqQmYpgaRDqD(DjcyCuAFqlFsCHH6-R24-wI&~+{1mB zjY_MO^8-`gD187dM}p+~N_l{kdwGYlxkS*B(WNb$!Q?g_glU;|O*81y6f}i?MB;uT z`MyNv`xA-#iR@Fk;tfQ2&MiEiLF_cHe%%?y=V>IcuW)`=WjLz47BuxYo zP5c0UDC0S|9hBvgz>D_u-n0MtohSbO`}GIF9G>?eBrsiZ8v4P0)3R%2$8q(tVSmx9 zuA}cZjs1PIxxD>y&9t3{WgD*L*gXgf4D1p{7KK*VS`Et@0~rBm5W+cj%uldl>vLpLI94Ql8?l&z~8dJ$u5Si>d61o}&s zZN6$X%4T!hDA!Gac*&_4^&O*W@wa~%c0XGO0yD}Yp5Gg)NTO!CD^##xjRkU zO-GQ?kCokFkB1r_VV?Ja*3PDU^Fdc{&kDg(o+@MY9qJKSM zgm_uV3h}DQH!X^M)0)sbMxGij)3cAhzDa)|ojXQip*Z4bkBcjNg|}hEFozz4U?vMZAnXz(wI-9 z)0_Rfb3YOPPDY5_Kw>naRnxDR{@gh1X)soWRO*Xq&h*?2xR>n z5N;BKxz0 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankATM.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankATM.class deleted file mode 100644 index 17d497fd5bfee991d3a1709b4aab544145fcdfd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1384 zcmaiz+fEZv6o&s@N>7d!TMM4B1ueGaFbb#_1rjhJF{yF^sUgOTX*;Qd?F<<%yZSGbB>zz}p z*D>7`p3rT07)l@5_00_CupljZs!)gq4zbmySX4FCu*j@snrtSq95oHbs2)vgD0)4G zW!7M+6pW7_Qy1d15zuAKNdBXsRR#4?B&};GqNI@7cTU~5xogQt<%d&Tk#f+ML&-l& zj6b%VE2QE6N?FM8{RU5K{3?DYYZuVIaTCKWt{LC4fHgH3Dbeqm83){N#Ow#2=a{zDU1qPA1h>* zSqIKTLLxN^glsU}=0Ai;@1z23f5_Tn{iGu0pO`z$J-$G>#?qXll3O~*3ik!sKj;1& SYokJUBSOnpU47x#_2pmE!wH%I diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class deleted file mode 100644 index d5e2f9ad4907ff6376609d5c8f2b4120542332ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1444 zcma)*ZEw<06vzLUF`iasg0T6pjp<-KSKa1b;CQhm8WZAP%wQJdivkUHLQ6{Vb7|sO zqKO~C4`n>3Eu+*f*$Zy(y*=lDe&^rApT9qU1K7u56d{31*BHv%dQ4YR4gPU&1mXyvs_6A||lXSFKsw z0)=AfHsX{v_NMLL3W>dnQ#t-%>}-mP{pW3*gl7TiqW?Wh#4O{?;%T6E78IP@Mifs3 z*5<;__3=a-^i(s39f8e&$;o}3jmS{~+bHm-+!e@p5!?c$Hb;~slu@B!;33qhotih) z8N7zK!3B;+3^j72nsdg?t|_zPGoR3`rpF1t&A>5@kVJBt~MixmrOHL40 zagR04WJ3ApigX diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class deleted file mode 100644 index 30646c547965d7b60a1a3fafa96d3ce0192081e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 zcma)*eNWR+6vm&sjlEf39CP3+yFFx@H!)mUNw;OA~=a z6F-0-%6Lv&SgD=ipWbuZbD#6O=RE!W=f^Jq>)1{pBCx8OUAcE+=|;P0nzr0jjL&k* zHsyDga&n?syR_fy_iVGPSv#s~_6<9Mn83ub@BZ@HzY1|MPuj_{P zy5DVT)?207(F8JeQ&l<*#nO52y^PtP^q#t2&~sNW6}&`nUu>ixa7)4n z;v7v$NFd44Z3!tPsVQyE_F5#cSSVhjC>`qg4lP{=l>0bJr7lLxZO%}&e}*th(*C5$ zLNJG=QY6JrVVM-2xQLUsd1$k@1hQAu-M6&_9#RtqMcvoCeZAAttR#v83&VYw|KJ&J zD~%;Avl+_NTtA>!rr6+&6$vsPk)7Ds29Z|$sjiD_{uW%JsU@*WJuBx2u663Jv+Co3 z*hO7muYzJvsZ-^=Yw@ilo(YJLOj(n#fJK_=q1m@oZC__U&kXOv3U?2)WT7bi)=@;* zTNFjuS42t`A1tb>)c|qlNhJf%`xdU^dAk#sRm!Tl@;UK=zxg9wm zkT*j>cr*+`cBLm@N_9pBRDWXWC{s8`sYEk6LnTu^!y3goj-R;kG{+khpW*ocdd#u$ V5ej&Z3XXj6)k_y{QmF{G{sPO$RK@@R diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperDenomination.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/dto/WrapperDenomination.class deleted file mode 100644 index cd0428f8e8cc0849cddd0ca26ff35b9dd05cc532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1619 zcma)*%Wl&^6o&uFwK0a27DAGiJ1vgW)IxN_MU`4Aq@oCfKtZsZBv$GY+g0MQ=8-@m zLSn%K@KA_z#tuoXiPVi}#{TC&-?{kD-(SB0>|wWvj6ky&`p)=lh>Z5v%eq`u-ZCLKkU0hXVLDN zKtcN9Bp{1QTiN{5xB$Fi|`uD;zc6 z8t=l%sOP@)cowRfN#A91+@;E9>0ikq!^NjvhD)zjD!f{$?6exBq*0^i6*@hpRnVHZ zf1>Fsgv4I+F6=jdmIcgk*cbp32)m1Vv6Q{$e)_IP|OW+o6Co~SNaXLRx z`9`7)IGxz!kv5e(s&<^pKB+lGL8URrHq_fE1oKomRASYC%tC@Ga1Zx2Ak{R;ffnQe zwvx-|K&okwV+!|b2?)2GE3i$~jr+4$k$M{Btrot!q4f`TULj@x diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/enums/AllEnums$EventName.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/enums/AllEnums$EventName.class deleted file mode 100644 index ff3da9dcd443a7ce3639b970ea08a492c6be9013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1285 zcmb7DZBNrs6n-w<)~%Gci6C#Hh`NoJIt6^$LN=C}5cZPTZOP)NZdNRIE$KQU|4PRP zh(_XPf0Xgu%Yc3{X8q86pL5Ui^gO5M{{Hj*62KPT$QWT*Z@V3>d+b@xVas)Wtz|f$ zHPh*Jx?0}0i+rNzp&o=KZ@A~~dE1qq~N zBpD_HPENbN*-^2Eb%vPXdB$nmJw9bf1^rfAM`qj4><3zK9ikr49}-nnKQinEX@fQ; zhx;?!@G}(~NHc5);nPMVqv&qWYnyK^-qf+{A>HJ8WK*{e9mDT= zbe0Rqac*|FT6gJN>b~Qco+!@j%6P@F^8W#+DsFB}E=@Bb(R~Z&=J+H5w9*iXmF7pR zG&;cKJRcm&4AESv7$e>|p)Z8_Q~Lqdj891Cm^{O@05c&0W(AlF3otLhVnl!?`6rR2 zKBo0%sE=8_8SZ0VZ$|o9($BE`jdVxwklqTd{JllBt%xW;p<6PjB26B+3pus6c#cQ6 z#0Vu&Sdi4gewEvy`|ub~2J{`W&gnCKEH@9N)MYcvD=SM27kIksAWPq0<5W!YSK8>J)g{LN=i$!~w>#C5unpykfCyN!yX^ztZsl z(MWvuk1~F@4Csq7>qGDT?)}cW=iHwD{`36;z#2AWOfal;-Ja$jdzN$9aos@cn9diC zJN=%o)ooiBle~Vyo#0?_%w@zFrjN`MQ?pIyP!rn>iLLi~{Xl0}ZHz-!A!PI2c8E-D z>kVB{OzL~h-F&OwXzB)o_F-JcWVLHsjumV&NQGjHA-3gyF@)h26-7K}SdY?e*{1JT zA{wswZ~Ta4Q9u;K?R#DR#uAr0brr}}(ML87>(DWSzDIkt2%W%I$J4q=XQ?}m!@W=( z_hqaxEdD>vq~iMTsFf)b68&4TT26!qppkMDjuaUnJtqPqIw(SuP^o{4Do(X{>Oa8R znQ7?^GpCphi#xHf$cDwecv$2TKdDa|V%BKKhR7Q2_z*ec6!YJRWCHi;t_ z(6lSfpX15OSK7IhammK6C8Q`0r4dJodIZ0cVWo2{{{s6rPQq%)so_O9mhn;`3D58f H>$Tipq(vXB diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/enums/AllEnums.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/enums/AllEnums.class deleted file mode 100644 index a97a80c095421bec12c8d1093e829a7b0ca69aff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464 zcmb7A%SyvQ6g|_Xjg6_T@kN(P7b?ZsxKpH3DhQ!2EZtAyP^Ts{C69ui3LXjl!lf?LoZlwN*a{a8Lw6xo zf+s@H`9rjjalz2MR$3J|4E58q8G|!2PtrpjEguau89JfTa#E&|%%&nrBtsCISR^x% zDO>+Go#I*L4E=C(k}C%9(Ue&%@07jQ{)>2F(=qt>TFY#dh&-1RJ75@WKH49zq%I~R zrGu@tc5(0z_w;qSc3X{O&|B!uAZGR*gf3OQs)5G&JGS1aQG-Wl#~{NtpKZr|0Ll&C4r*b96&^gi&e>QLRdCvcy^^5^3&*dQ8>IX=}tK~C+RqdF|rHur76~-?%$y-gm=K8jOq|j&i^+HwQa`CD4lVv)VTQiHETgxeoY`17s z*JZnD?>l2#~Zhjs1hhUM#O*>YN%M#-ix z=NjX8v1g>x(P3a;SY6vJ6-vA0TlZW|zmR}gxBLS$Z`W3J#jaZpv3o@eg-o$q{_Znc zj&-2AVYx>oZ_AaahHo`$+CNb$Uffz=U)xp~4W(-NwqrV8t;QlyvRX|yB(;T#W4pG$ zq|h@lStg$qmL-J|yp_PH!oaD_D~{D{8h9IH3JC_PY+`?^zO9TqZC}byIM~c8Z0OT$~;avk)ag8*KwyQT=^?ltaSuDOny69Cb zr))KBIY*cAg&@}ydN5^R0)x!gKd{*#H@fK07Nt@TBX;d2?BbYbX>*fhA!-_U18>T1 z*1!NRCvjildckelRh{t0z;|0Ky8G*I(!1vo@xjaS&dwvhkzv*O_Eo*J@Nng5Z3p?&Pm{r z!q92Yg}3>Z?NoImiBA>!MX0^t69aqI9r{UX99N1wKh!#~`nVc$(%ae@0pzWB4WB`5oiG@*Kl^ z{4eo94(|sy;E5v^dEVzLU;CzBVDi)@MOV*Po+-GH93imUzFLQs4uiFK%&Im9Y=@=sssn=dG00Z28%kvWk{H}@b F{{tmD*2Dk+ diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/ATMDenomination.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/ATMDenomination.class deleted file mode 100644 index 2ec5f26d7d308ef5d742a158d8cc2fd27d177e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 744 zcmaJku#y~|%HY`ve6UCP+j zc2dZ`b3U|#YK6^~{!LG%s%;&_rJ_d}4?Vn~@m8EvCP+3m#Y{+Au0w-!3b}&Mm6FqG z%O4F7kCIXHQDMP^Qeh{)d`-H-5!)B&ICheF2DbabRJnw6I|j}lf13C5d_!HDaH0=v zK9tm!rf81NTc@z}(mESnQQ70Yu|nrHucn6u-05Qjw-nZ5>*Q!wPNYfFd+07n_$zDZLMVR;BXBHox8Y?>RhcE)=_753bCV8?e#RfWUl=k`mxP`ABWq3nCL zqQcO9;<*jI;s)+oUC(-+AKIbodx640Wd5qKp__plgxYg-p;YCiGYJQa+S5%t)YTQc z-qJKm2chh1Qo|ZQ^BKy+qg{9@v@~T3wgshM&cMH*bK_{mYnB23y&1Jvh38)p? z&6*C|Vx*l`5c&<>qI}A62f^bdy%;DW~pwZaAZ`Z)9|ZG0roi8GMXWDV$U|w4Isxx*Y@-KEbC7 zDUx5Z8(QJm$Y_ioW$!^KZV#xM!J~Iu{erd&fjG(j#<>Dd|$!}P=3DWF!y=T6{@gzN&VvCxan56r%yD}K{pLqS!!hZD8I@o1>bSG$J zEL9`*An~)Oi1xwuND(tOKl?#N1-_r~ZTS?=cXiRWqYnLa)84XHy18nb6~&zt<*ezi z!L~Y``J$O9W6Xw(ES**Ymk#~7FH-nM;ly@F#c$_YZoR6TX|Pw1n!My5o9vdV(-~B- zEY-@ks$j*!Lp+iJu(6>%rtjj;gjCj^YbPwe-;%~jF^%t;t+AX;vIzMH!F$pHW7@bI z%#W0JEa#YsG@XV`LB?|NSmM@EP)~%gwy-24BlEy-H64A&mF~1moR>t5_K4a&(c`ja z7KfsK*?k!GvsAhl4WX1#i#@ z9lq+3u6zF=%L6tcL55}G@M#h91O{n3#N8O5^0BgN3&VdR_dCx2%6$(;_$x%ffj1hx z0e74|=H_KS<#d1kEiPQH@Zt5@m$d$w-QQ z^go4Z!$R1^Vf=xaUud*5@>_`^+`_E6JVR>%?i2bm+hk)A?lP672w@<$dPlC$Bw1k& z^9e-8JBd^hiQL9Q5|QyvA`j{A(H=zNa#Fa1#RMV~okX4{61mGbPvPs)0Y>n&8b12`D9`fL7!`ZEjo^^QQMO@;K}SyYL& SXbc=;^{jL6lEm`>Fa8J8r(6sG diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Audit.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Audit.class deleted file mode 100644 index 7bdf0ce0286b9937aae6e1ece517fc5f54acffab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2679 zcmbVN-%}G;6#i}q34|3S{%T4oL~5F>;95az%a0ZiD~M19(xSC>lWcKyvr9J{Dbtxg zwvYPeWBcf%ooT?SGyMblM|FD6-DDHP;xK*Ld+yD-=X~F}-#Pi`-@pC_Fo9AW5rLti zQ`Rcmu4!)-9LLiNy8T!yJ0-)?W~(LBiz6y<{E_}d*DT%M(pC$PjG`wHtyayFKytbH z)0)RoCIwP=s zZPS|(=*Z^sL~5RhC(wZt3i@zdpl{iC`ECfjtDqAxw%$|F?OX3FNch&Uf*#*Gt3bgq_WM9V zFOCVsw+wGX3gToocaRP_R2mMaLJE+}C!k_9j`IS&QczXTw6u+l#cK-2a6us9>UPN~ z^9j8{BS+vh$@ecR_y`$#U(fNSD4-Cog{F!WLeaWy{Oao}_|@O`(66h3y0Vn>NCg+@ zp)Addx$M#IvHm#aN+3>-)7Zr^EpVp2*XF9GRWjTzd`48I!iMj0Urr}5g;~~cmaTaO z*RUWE)3>(`o4R%^>?K-_007yTz)Zw>%{v|t;@SELSErOFSM7Mv%riFK$tfTlxsiG`YH6p1yb>K2XbCeMU~ zEd2$}i!^mb2hG0i_0C!lGX^fm0YQ*6@T%z&S*b!6~v7-wCI2hISm_9r|*B7v#w>G8{lXUqebAtzkeNt6@-0 zMQa#RQ=K)W)l{s8k!FUo67(g?FiyZHsMjy!1g;>3k1>R+l=~Bz`Gz08o|*F0sk6m| z8E1y)h%8Np=Lp5*Gp5}sEhf(8I!C8IYK>N(_Mb?-B&P_NHah`xp_D&Fwtjh@yg6-; z`U<%{XvDe6%dgxLA-XBUoc3J<{5^I20+&M3478)U9g1c=Kr>TE6XW6!v;*0sbaz{T z!~!5OSw1eqL@1EKb|4Qzfm{v;GT08}AptQD0m84xK(5f+AAFy5I}j%n$W;=IfBB7y zq}ze)5Re}a0m71DAfJW;8EFUdb10C>a3C$(_cihh0r~Y1AgovhLVr5+?I*GQMEYiN zF22UpW^!g9pQ|L@Jl#BZJFEtflk%Nv14mWVUAPEvi1{N^isy^nAApwpCSf2QAv W_3tg!Ne04A${y$H6ev;z#s2`+r0;J4 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Bank.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Bank.class deleted file mode 100644 index eb1087a8c41d037b015c2823fcb2afacb5b3a9a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1907 zcmaJ>e{j+${KeK+cOvlo;S@*PE7FamxQ6K+~tuB4_c*CXmfmZob3XJ%E|`?9TE%b~DYb9gvd1*H+m6yIs0d80t~CjNk3`PnCKj@o7nm7Iw&z&B zZ(tE`3uJ8>9EC(?SJ%d5Jq>tb+(p=2`qMddGJ1s9=wk-QwMWfk!xGvv#{uQ!g9i1dm(KWIHIo zYM&UsoI{Ohm5PzoL+rWGe5BYb)7--*cS%!D zc=VV!Jh;5X8!&K{wr~2BlVab5 zIpkzobM(KCS$cefq7tqAGYVpWxj*sFZ&?0?;uP-CmGOZktb}(!5qUbU+@h7AURi&E z_eUjpDg_m!DV58NC<$v=r-%XW(Up%rp-j##Fu?k~KT!G=%Z1GWJ{X}D2!~0gu|dsk z(#vRusB=+ej7k_`lT7G79>n-2tr5ZB@$hGY8Sm*qBDqiSX!x5pVy&clE zGDalxl1L_=iojCGIzcZ$e#9LKn`EW~X!j*{*?af&T%N C-IZDZ diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/BaseEntity.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/BaseEntity.class deleted file mode 100644 index 475770a235737460d2d52f4f4ae79ad58b12746c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcma)2Jxc>Y5Ph4(M3b1r_=R?Yh+4RfT}05RAVdYD>Gv)}+<3Qp-0q3~EGxmnAK;G? zXMEE6sh6Cicu*s`h7qjvvZ`4_QwL{-MtZ)`+QyW*%V<0-m{y!9 z=X%%zpUwXkEOV%`t+Cf&JI}JGZN2IYlz%m4rY diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Customer.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Customer.class deleted file mode 100644 index 0ba20eec4decb07c8a342d22cd705441d604c1f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2508 zcmb7^TXWk)6vvMoH+EbnE>06jNZKixG>QPMSzDW^ske7HvJ>Zr4j#m&;I|R%qU$lMtPAA&FcfZ>o^ah6()icq3Z;UfE4cYrrg$(%h z91R^2rDLx4=4lkE0L&reWYK)Ycp#6|3}LvO;lB$x;%3l$9D-R4!nIjkdi*3OG7D~B z@ILl{Wm%=pBHJy>6hDUL^&H9Hdi-=C9&;6ey7c0J$!Sg@+I_sY*L{*5)k$R-Igtng z1i*1IYN7LYLLSPy7R|M`51^)l8miEiMUC@ZcjH*ZRk~@>??3REB_cXuBO7`rVWg97 zPhx>+jg#AUZDDZ4>~K60v9v`Tw5LV-bBt6x74dOfRakp=eB1X_!PrA)XV}`p^Ve)C zY|oa+cdbU7)T)zB+ZL^~j1 zkbtbE5afqBn;F|@6;J@%MZR~GzC|P}BdhjmwzdtDZm=qSWYLY{pd;pBB^O!Crc8~} z5ixe0_QurRZ~i4r_@w{RKY-lgZ0AluK+wX z-)z0eTH&iwOwVJ{C12fW7Tqk|C(8x0Tuap)&#q#+fh%ba|4aCls6th| zFW_!^1+yB)%b3?0Ez%M`H0a7~S&ho1`6DgU)gGkoSS9}Rg2PlY51co$FQ1uJ@w-p8m2 zZ9FqVS*^V!!J!Wff~IT2hdCN{b2WSn_2(K&XBzSdk8%m0(5D8WSi|?ZgwJT(AQWpj z%q4tIUl@d94L{`)ZqtrIDAsV4OSnT{8iZmEBA0NNzA^~K8lL77zJ7^Z{F+O+N4qHh l4(gx`E%(o=v-mu}<*-Wh0F)B#>Aq~>?IGqpP#-1q&HuG0JjVb4 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Denomination.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Denomination.class deleted file mode 100644 index 964e8c424a94698db6d31ad46362a35bd4500103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2724 zcmah~`&S!P5dLm>Bu%$GLdzpoO=+tk4Xm|Pts&F`2?k?ONKtHS-6WT=ZL-VBZd&`B z&;C8WpdLNPKfpiAxO3QrV&NIz?GAAmo!Tj3|qIK2@ExShNXtUNcoZWL{nRu z(NxQ((aZ@qgsDG>O$&RI4wlwNeEj7q!I^<$i8nUC= zvazMLx{{P)md$dLfSjUFDOI2CIr^oQLZw=&ZVU8t@&c*yX?YrtDageTB4t7E3iPFCwkVTj>R=p6T#Vv1f#Ku&FSj(yQt&$75Qq}Siq@6_ z=hHK;f2T*AHq#*&M+(zXToRac>_cKJxQr_TXULHYMqn=8>&bH-;vjbh#6bn;ae-i# zbwgIV?V9XVHDZN8qHNZ+)|S@MS@sSG7o1$<=)*MyGnj~BmYQ8MEWII9_O47VQ6K&F zPPv`ngj5CZ;5t=EH+D>c3t?!vfcCCVR7{^j1%CkUfo-~Vi{d?jiQ|g9r%PSE)sUSS zKA<@Y;;YD~seAs$mm2vvZsJ2u?>d)gLBRk9`D{_aZG1$`(DwGELDMzsPhq|GNY?FK zZ#TX8xfqtH@!1qp-HEZn{t5v%9s^Ex!O5{ked6z{zbY^e_=KM~P7W`tmE1c!{IlJ2GnZDvtRJ;^^^6Fxk28#1wM$ z$_bB>V^{t1X(V8k9J?RmS?U?{$wSP&gFZ$9dJU#L>_L4FF&rogodmKMc-WKst5S8R zH5f1alu^Vt&2FbIi#pHesJ}^b%=yEY>gDI#oxdC|5hwcS*Jl6`<}*oAl1532(aMa8 zOPqy52ShFJ`Yf%(^gmLkqX-jA(5jG!aZHffBuQCX`A~ zUrCPOZTfOtU>a%X1SHWT;#uA%9lkx6d4bGtxSGfwVD8v-$bp|mKba`VI4%^|0Po@k z846~w=gcH+c9#DeH@6e-zrd}`AIKdbpSW{?W!e{c|FOGY<9*rPS9t#!?GLc=i-VGJ zyTNZz73Xn_f-!zKc>XAO6?eVhDyh5=a%0%;Hsc>)k7EVtsDP#~2ckaj2#EgVQC2;>O?d3pj6o)`u)gBpE# zPQIh|4bYlowmYrPWcN|b%`#5C8xG diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Transaction.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/model/Transaction.class deleted file mode 100644 index 2ea6cdf3c52877b1221608e3929d90697ad6ec31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3194 zcma)8Yf}?v7(Fi{iD6ZYS8TNrZy3?-1rY&lxk+OYDx_Gnwl14BtR}lOyRkZ*>Bsg< z$NrVxz)m~UAJ8Aw>3McHW)n7xbDc$J49}W(eA|Diu-|X$6-o*Ni%*T`hF&q8 zvcBj#UTiWz{^}^DW1;^g@YBLkSNHmSfcn z-zu#cmAXZtv`6p0RVI!u^7K@ExfRG4=H{1*h2lC@&AR8iRjbBG7dwYK8%fdGsRTrK z4d-RiU3SE{<{P!L`#Y6RPQsYp?FA%UN!tpea0@&S*BezDwH@F zqgnz|$i~QC^(CufXmNRAVSYv7WcXV5?TTJ;%Vj<@CFQbJqf~mztk{n2-%{8!d}&Rg zca~+4!YPH*o#~iiy=3qX&ZLkdpk}IPD~9K37{XbF6j@j@s>F9>_|k5K8Jx$(6fP*7 z2=o*1X&A;Og?%&>0#>*>yxUS_Ji)-^J}6w)a2zKHbJ2FJrFwP4suc|upz!9JMrF;Y z*>a99`=$auGT4K6HC)9>a^i2=EYgcz5*TY6vRWJNBKoG5y2v!@Aq=*?1`;S(lSr>= z*pCCUyRP97va-9O;V_QKZc@Wh982RSYq;QecFD^5n^rD{JQo(NWadK+A7PrI+s+eL z;b;==td;?$CT2i7KiiV*p!dc5yoSB#qlULj<8a(~pdf|VPty&m6fV$e=Xz|&k@|kx zZycGj|CI=Fm!Z3eb(k62MTY+vYLD7$A|mP4DRC#X^m;w zeW~FqJeI+=wPiUhfGhEIE^j=wOn-8B|3}Uy)7W6rMsj8}VFT+WvB?H)F%?a=Zl=mi z$wKL^B(b;})?{>LR^58dv~JrnB?e+tTouk5 zBenJCD(oFr;9$_6t&hQM;ajg048;Bz2ApAc?BS1dA9|!kcuMhfh^I7H>79&)erUX4 zcSq0tTo3YZz~ohrH2dy{EFakWG}0rT&-J8CLaqmBdXOjPnWqu1^3k$y@8I+wIQJX! zzwq3{7l9?O=Wr#s0Z*KXk>&?n<#liVHT0%RhN{42^wNN+X`v9_!}~mm0Z|m!KT>ip z*C8>Gzr2mn{Kz)O@>jMoo*(Sp#>B74XQy^>t7-joz|S>WA0s>08O%7tyupAb$mLYv zaWu3Vd8GY_I@t+Vf^R4wN0=W9=;nJg-96|4BrG+B zMchpQGS&{{aUzf;{T_TXrFr5Tsq8-Th1oA@%AkxbMgrh35^(_a86l>ux++WYGzsAEn zt9A#Evc?Wf?nh<+B;1e5ely&U%l>J&pWu?M@M{N7GnfOxYFih=?l} zRke8VKEC=p9e)7~(DhIg=p|gpO=(l3V`e8~GHYp7$(z)%-OKR%YZA^pGz2~}`XQN< z(Q+1NDsdiK0zEs2$t2T#_T1mGs#3SI{F=m~0iI?eob4Q-F&#)D;%1LRP_i6knL zRTfpXc2%H8%(FYlxl-I%znHHA^aLJr z+L0{D8o5ext$cuiz>J;wDS2~L={>tbrsPTHHQlzo*0jEK3ye10IHi|asRbUcsHbm= zK)A__CEvI3r3zfMLJ%K4(-6nins??6{TCT{EENbdTEo%C@1q%$8ytSE{=cN*OX*sXI2!Z}G y*M{8I`qLr4$42qLkZm diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/BankDenominationDAO.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/BankDenominationDAO.class deleted file mode 100644 index 6d5426626331ebc120af6e07aedd83cbff81d221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmbV|L23d)5Ji8R#8I=!GN-UWbTvURNETs0h$pBS+os2vuAyxcvd*ot@Bki4>_`Yh zaOI+^C@B8>zYfRmJ%BOp6Lb_th19fdymclQ36!(jkk^fDZ4m!S&vBn?C$)7Ptho7X zk>FP0q2za_ik+cFUg{zw=qgOan_soH=URV=-_VK!Q`vA^_O;=+KZwF$DLY^27h7qC z#|zBi4^E-Kv?lu4`FQq~{kM>2SK*(sOFyV(r7LPjPg}rDoJpr?jI3}I>n^?&=pZ@w J9{T4wH~~=eb@u=O diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/CustomerDAO.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/repository/CustomerDAO.class deleted file mode 100644 index 663d832f9995da81f2ff45e56a3662d1dea9b8e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 590 zcma))y-ve06osz~G_?F>`vlFP95LKu|b*oUJN_{4~1~k zAA-b?!M3iie2%|ke|>*^0>Cx+9`p!YCRos_)Iw!3qMCY_b)1YBQnIyLw~t zloB{Q4}UE}R9SGb+OS4Q8kI(%Vlp5wn2Jm>V>Krbb~x<>Oc51^ZTAlDmA>B>=4XX?EY6(hU(E?s&8g%yflV>Ns smRXbTC~)sbV8@L;_b-ThV-NPB2Lo62UOR|d=A}9dx{7`@lXOn?F&recG;NhgvqM(+Q;gl5737aqZCP{ zrygeJ^7DUu^L_aI0`P!ggpR^E<5Jg^IB!$tpi}Z2EvDky1(tXHD&%X*f@A+QUq-l5 zxX)=vx*%`$GR;jEBJ>mF#3&~ zoJb1&m9w70R+_{|a!rquf03ujU*;vRP0^N)TfBt5jc0KqtI%!cw)rE_L3G}C=%4T4 E2(sUC*8l(j diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/ATMService.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/ATMService.class deleted file mode 100644 index b87803fe173fb456f370af3892b32f40f1e74889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcma)3O;5r=5Pb_srHb$?493L0cd@m4OKDob)>7H4X7)=124LRmdC5(uXcno4hMQ3dD; zoHr@c7f05@-yOWDN|L!P=yB$3Ue^Scqxfh0*cNHjjC1AJa%|EGX_KpLk5&6Sn);+00Ih{Vo0q zpGY*(cmIO_#du~ZZIu-W#)qBD$vNNo&TaPl&(B{0U=f~Vpo_q)D+4DA6&IC~l-em# zvF}7o)w#=@!uH12(Q!Qp{S2fC4DZo8b$lu+&Sq(kxjF-B0@LS1A&{mzSfP@@Ofkts zu~0@_OVu#GR|=bX0uyg)Li2#_@Q9auRuDpJs<{*qfu}{ODoy%jMFVyq)xJ|=R76gh zx-k%K890TSmIquh4`DMV(wIv2EGo-JGv;DZ*Of>owwpW4uFzDDO~+$@Ovr$Xn0_;} z1eOwUj%yG*KWT;$q@Q!a^$P;s+1w6+)Jy3x3%X%!04~D_fuSN7>~$?DF||!Ga|A|; z(xv_mRovX0!j!IZOy&HkEPn3c9O zhe~21f@ikXw_Rm+z;so5c9{!rxv}nLi&9i_HjnI@@EA(bx-6BgQB^lWX2-QDY+4pf z!abAq`vk_a#WsU2Z3ZiE$}>zoZ$k>!SW_}Eh6HvyRgJHFhiS(>pt|ZT^U4Zyc|iR$ zv)Btc0v}HgIl5@fSSFl>f6Etv!2_ohGcx#&f zE%*y{S~Kf7A6v4fT(-u|JddKdG*e8Pwso2&IBh+3>emp+Y6HO( z;ERG^52Wxvk%3-3_u(mxyM;SIKMb6Z4Z@`pvLP7$LzcojzD>A}B94PQ!M$hp5UzZ} zLl<1d)i?sU4&%5QN2mbTU;=l7(i^CC6VC?fRt&RJ^@Q5V0FPl%-)HU-j7i}#P3lAkADH&W+JHo diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/AccountService.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/AccountService.class deleted file mode 100644 index 9a9f30416b7e7ac6508a594f91c45569256a4515..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcma)(O-{ow5QU#hX&|)Fic1ub@CH_0@w-aJq6@^*aYn%8$N~f_gj>kej@RIC8N#bWxno7IbM;V~YFr15p z;F-`VzlrB09m7Cc5{?=%!`(P)gC@@KTPuo!?726&s7hyYvd!4!pmiuW31zDs6Nd2W zQBvWQ(Pe;bhNCtoT4{J~^f|%MPpB}Za#N$}iDCMG&?eO-Iia$0&2WRIa`%Z9%Z5Kn z$^8T|oQ|Wf4Ms+%YqG*HkK-b@C6FpxCb>-hJ-wCnv TtJD9}8DRIj#{c&`p@ZQ&MhvB4 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/AccountServiceImpl.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/AccountServiceImpl.class deleted file mode 100644 index f5368e42646231449c6630d928d484e35702b6be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2387 zcmd5--A>d%6g~sH>{9+$5%C9#zq^1G71XfCWI;?w7D)s#TzE0t&MpIOrjFM@Jx~tY3-4(~PGms)MxI_1-VNUm5CHH~$Q z!it5&%pFX|j*Wh4z2p&J_J!;nxte>8`8eszP_{Ap;DZE@Wkj3wA{OZD1 z!xo?idRxZ&puc5o00w^XS6GDWLtdJB^WAMwijAdZE+w4vu{wxy# zqtPGWk22nUBy6-|OtW_~w|CB-d(WBu@$<`f0FUupM}}d(;k9_s_NCjbd!FKT+dbxi z@K0nz@U_l?RJ-wJtJQXNWEl!a_KD3M+imil`jKcT9lZ>tt8li`Kn#X20<|Xy&{l$B z!SeiO!r{Gdx5TOEAM;aD=M6^+SMh49yu#3H?QCwosxpjQ5tWXT4tKm}lX~D5t-=qh zUPxD}mke65RAb1ldj}#14S56CVCcBcF!vwt&7pvNKNyA$=;+Jg21a$szVvji>#~UOsg5%f~K9fL#q(a z#4QZ7#jY4FlEI0MRVmf_P$r6pO0`!xNl1JSy+Ez5EUzrZHN4>qGKr3PhN*6xQh1?6 ziv~CzG7Pi{XT$SjhcdkDGP%?&4xw_?|;6e!^fPkm?$ zp2$Aw}=7Xsi_ A>;M1& diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankDenominationService.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankDenominationService.class deleted file mode 100644 index daacaed78c690730da0b95f0748860537d33c97c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmZ`#yKcfj5S-;<6Nds(^8p|vu1GpML{cFrkkX%zl{v8QEZZUZwiNk*d{o5RC=mq| ztKAvRXlM85_v;(LGx{M~geT)ORpy0tN$h>4V(pHq3%!iVS( z1_yo8D%CDgoA|({A`JCzcP(G@2VpW^HOfp^d$q91l8w!DI=`@uf8|{=pS%&Gmruia zy{QcGK$zYN$A6k8-oHcKTmN1dezhqRMt8E$>M#L;(3UR%B&T!{2o42xr1zvEnOk@~ E1K=Q7KmY&$ diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class deleted file mode 100644 index 22c5e37d11bbf047bdea0db240b46f77cc3bc4b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3157 zcmbVO+jA3T6#somnoZN~g>uoLV)244P-3NurWGtuF&bKFu~@urldoYR*^Qe`X;B0f z@Ao_44aFIs)tMCNjH7Q3Px|JoPyPY=;AOo0zTKpaB|46oWWTfD<(%I+zjMx)^M9QC z0zfZ5)DRHZl(zHnV!<)3?1XK*@d?8^5HCt+%1q1nR=#YPmYp{(!!>Pd)Spl03pouT zfwuj|lo8JvRyIC7v0tWL4Pk+e|3jrfI5oUu$KZ&-%9N+IT>GHu$PCqL9!A3!==@K(JS>s^bk4L)ce6mS zvujKsw9U>)4NC=9*K;n<)m(faown&i6w7guh7|&>3yf^b8O5TGixDHFtaOLygut@S zED$47T*9f|zLqmixQ>G<{ zO8E)t>^2yBf%cT0HgaQzW2*PcWVqi8Nfbe>(Qy^p7#4S*NqTOo8`=Mmx8$eY$Yg3$ zXh59$-~0&; zac1#Clm{Hgm`RyMa<~C&G+alDywycOqUb@diox}aL1(gStO=WNlZG1wS{Ae^MLH6o zmqB_du)LNdzefAI_G-AfTD%@pBZif+^HKCG1h)uWU1Ms;4js24$pSYD1!)mecRfrsarRGFOfomO;0_%rmBta*_7_#c z4(S+HmP4jBX{%`L(lLTjP87{U%qW&oQn_@Ojxp?E4Onv8Od0arW6BIF7>?Y{rV;yxOzcW(*e|fAUb6Y!pf;(aFtJ9N$m_5`wc(68Wo8(c zYS}JIu)d0ei>H;Mhjch#)h#Wujo8DJwTAu$FzGi@(lMpZw(@N4IfZRn$Be?(=*YZb zT3&`dOhQz0b<}Qdo!|w|8)4n3VW@EQYJ1|Co-)RSATt)}ErvVI!~Fq(C4^ zQrc>m^lDn5LFIJM{E}A`s+OoEWR>z>ArJ9M=qvu-T4xH?_F74_ zd2jpchjcR)HjlbS`oK=3;B{sV?^N54*CbRF*%n9bl9QIVnyR07{L6ob4JusfcC2^B z7G3E`+a=0)C&NWdEbJRHk&1hLP z7v%0%v~hL`*Vl7YAHBW3jAduA@^f^2%J%@S;8W=Vr7OJ|@Qt@pntO zS>+wk{SCMVo!rP<2WzQ#9pw<;)++#kVWkmuTP2Vq+rY$>Jv^ zHz>I+qr|W`jjxrgb;m+yaYF!mx?>GhAzT$SUzkHbRc}s2)+HK0L&qGpjJFTWVq13^ zx0Z2x89ReFL_fi6u}Jq>+$m7T?lZVM(bOGlD&zjMFar1zJqbOg#~RC!C(u%n0;jNR z4knc!NHoV9V|p36L`$qW)>1}+1K(YL`e359YWWZ?$C~F&$GGqawVp)y6Rf1kvp7n3 zjzz`ts1N7kKTQ?ikVlEdy8yf&BJBRlFp3WBW<>8|9~j3i*o!3Y;mW;yN@Osp8ZHjA zF+G9(cpW*MW`8^b8(*P-^XzlqqKNO{;(JWvXUvEo4v8=hi&mK8GCbz-_>s?0g-3El zZATQhl#by^avBjU@D!eAIxZ7YJj2xxk^O;ZDK!w^k9dw!m?(e1^OQ7VJBJtWBK^o> zmVNOE)AuOe!%KLXY5Y1K!7F%`$$XlaU*oDy#DkoFgDHKU_uQMDYa!~Z@fM|4yv?Yn zeDjeUCz2DKNuc3Rf^E_uH1udVsbP~RQ1-w56zIwC=+!Vz`8VwR1x>#aLjdnmLx7l6 PNi|XT`}}=S#HqgkO&K}B diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankService.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankService.class deleted file mode 100644 index 90716f05d0e50627234275d09e2f14c5da080516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcma)&L23d)5Ji8fapD-oTf`vPAnx2r;%dN!C+O)EL+jW*%(UX!TzCKv6;fk}aUsN2 z*DroQe*N>;@dRLseuM_$)%dNdiqg6)^**RnyN#;2+*`wHE@JgFM`#fSYrWSh*Dh1b zbj>CZVpFmXTssN#VR8?*^`D$yV6(UX3_|=k7%qbKu8PnhjP4=%*K@&Me-Qc^hdRtV z2W|6;Fc~I)sT1$Ahcc}Et~9)`Im^{IHH>Rkn?Ptvi9kbIc|u!sB&sFvvut8?Z#Oc( I)L!(y0e#kO00000 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankServiceImpl.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/BankServiceImpl.class deleted file mode 100644 index 92a3d9693bb47a00092c9f8eb0ad696fcf6126ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1475 zcma)6TTc@~6#k|Z7M2Q#7x0FQm)cTf74ZhfqzEP^RT5DWUreUkX&KnvX=bNY{*@+1 zqbBOJKgxJ!TcK(VKFpk%v*(=eT)x@wKR$f{u!Lm?8HQ4zB0p(r88@m*8NbToT|W`J zEd$}N(q*%AeiSuB2U&)R9p2`C$m52;QQZ-NaWKSi=c( zgI{hL^-5|{qp(BwWGu~nhJiwHiy`|!)r5-yjOQ?l9K(1;#^OmUstWy#6E4GKMFl+E z;#%5!SD7{2k`lSvx1N9WlF;2i3vPsMGQ(>BZbXz(m^Nai*f)HS0YzMY9f)Sy7YEb- z7_RtblZM^*aB&)E9h_m9={J@GoE*+!hGC>3OgU0C7l!FVv69jv;%3`lm5ntK$cTq4 zBVh1ya4sl*4jOz?9pT}AxDr}3I zN8M@4FeSIw)QVUZEqm_Bvu)u;!fdOWSC?^Zb?;HFU}1}%OuSZH6Qm{Yy3(E@Q?u6; zUYc-u!*#KM8@6KK zn4sMn15-FkyEP>POyU?x${Q!h>Li`Bbel@U?2;x+nkn|U^d6_4%)P_;(nri@@C~OQ z&%dEhoxqc+*=4%rDYrQaRZ2nTI__N%3w;Fz3ZEg1BAsj{6J%dX^Pk66()^yn5`D=K pj{6x4FD9>jz~a|^)J{1!d&+UUNEzHrt!||~8YRTrwC*Ih`x7Wef%yOc diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/CustomerService.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/CustomerService.class deleted file mode 100644 index 11ba9952abc07c38e72c16a88b394478be4574c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 525 zcma)3%TB{E5FEFqf$*vj{6i5Ez925W0Yw}l^^gN+$5}-#No?6p#kXB;%E? zU4(-z)~UnrR-%8wa8{7-6d%Y7RXT>-Y4W>HqU&N;FBgr;*H-QcpZ*c938cRL=3OP? zR5w=AqbiBvytDoj#dT|Y%)l@VVFJUD%pS&}jzTpG_kQTaIQ-K&!f}{~$ig|m=@$=I Bp(6kQ diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/CustomerServiceImpl.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/CustomerServiceImpl.class deleted file mode 100644 index 479c580123ed71259df809864afe9ddace243b58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2249 zcmcIlTT>iG6#jZy7#Nm-Yd|B!OfcedNyaF~2uS1>v${YkL{jm=s@a(aI_yqQ_4E?? zDZcm{w91mwRH@JTO_t^9*_maLQSrftoxYrNzH`2F>3#Xf&%Xee$F_w6gX_zt8%Iin z`*kU`Tld04H|FX{_}pD<#acGG+G(Gw&8T6a$T0HEJM!Fy7w)^;^=I7I7Wx=w{{s}m zpr3-Tdy-+UmS?PZBx9kaI_`wBzOuc@aOF`e)S}6EMJ(zKz7mE~ds@gaX1H6EYCom4 zr@SVAF4du1=Uy1Qd!C=5c^w0HrKRO_p?E;BmSLa7Q~9@eR*hy7%TU#81wyAeqBP{1 zW+|<%bSaa|z9kU~z0A;4ncih6uE~Jg=)tQc3}b|0xF$lr)oRwcdh8KZhH_2%USro& z!kp8~qCODB{q{fl&M7BFaLHHP(>xP0?BtUVv~-^+FN(M_0F;p;?d|-jojE9 zU;8{tYGh&JZ@PtNI<9fiv9RzaW#Y8yHk6X89}dG;UxbRsvT?)%hdL+{jie2nNJ&ag zbHT9(9v^V0$@PH@oIMc+tH;%#Qj_8Sv?F4t6$YGc$$C#JN0X{Pj<}On*S2vLlco}H zF^pDfrxEOEGck*%WaWLXvt+Du?TH2z;!d}+@piE^4S?aD5-ju&Vj8m+W*BBJJ{cv< z;U#x(xTyRCw1`}i#A-`w(u^oIxj8ZJ-p8_AmWFVa~|rXX}>f! zACzzhAJUm}!Em`U-Ic2L3$bY7BZkR5E@xY%AJi;krT|XR&Za}dP356d*%-$pwUVDc z9fsLRm#ZYv45dt76R`=Wt#OtqLw}~laN}YvJa%^Ss8Q1CTgdUSbP>#D;ySdWJ^ygi zi&C)BRupv2W2dDaoGW1$^Q<2);n*6W$9>)+&- z=`seI$DAiS)?9IE=Fv?}C|kWpUZX{5!&&uG5w6qd^w6)DzAzI+`vKbZ(Q4BQ45D=I zZU~qDa#y4?y}a~&g=}0}8LhoDCn$eUn*uJ=*MI`oFiKwoN(vamYqSziT%i!&puK?_ zKNEz3oF{34R{I66J}qB6!S!G1)Qx+u3)k-8-oV?Wb&6}Sz9p<8ty42UU~2X!R0`Of z`w_Rk!4NI;zv1rI&F@}d{AqdN1WU$GF^PYS;srJ-C0i(Cn@}HO0*?~EGi}7wFJa?j zEEAJK;&Kn4Brz1Qf>rXpMkt1VTeeQJ4Z5M!|BeYON#1>YO7e`iDNURAgB;#Za(EZ; T8QB!@d6LIL!m814Gsf1R$rNQ& diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/IAuditService.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/IAuditService.class deleted file mode 100644 index ee7c5bc1c64f3c64522d1b16c1c69e6dd42c7e57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmX^0Z`VEs1_l!bPId++Mh4B~{9OIwf}+g4^rZa!68)saylnmA)S|M?gsK_Dx!EKxrvF)v-;KPf9UxrC8{KM|zJCqEskj*&q{!v~wGx%nxnIr?BD ztu@0K8MuP;ON)|I-7<4h85x97?9u~S!^X(K$iNJAD+2=~&}vo&HV}(}9Y``UZ~y=R Cu{ak1 diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/TransactionService.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/TransactionService.class deleted file mode 100644 index 51667e7ead85717c85d699baa88b72609462fac5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcma)3%TB{E5FCfn(DEt=#2=s{r24`whyyB|D&-J zanWCod}QDM69ShN#g3UNMP+O)a6Rs5%{(h@#G7cW%-4F#vizVhl~b_^B#`elbie1e z5AAY=Z-S<0W10S{V{{Yqqz$AmAaKBc1tgsMA^KdWT=n=oVq}P8BwGY0Z6{9o^=y4R F{{ctUle+)_ diff --git a/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/TransactionServiceImpl.class b/Eureka Server App/BankApp in spring boot new Eureka/target/classes/com/springboot/bank/service/TransactionServiceImpl.class deleted file mode 100644 index 99ce68db8f7cc8b46801b4a3750aada9b934b6cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2363 zcmb7F+j84f6kW%$qgZj<)KH3P05xq>JC~|0Ewph6 z+udz=UZ^(=cTW$bzi*pT-|`JNFwD^Q+|7=t)@(TnvI1jIjD16Q40l)GXgrZ-s9;#& z%K!5wa5C(LSTQ^Sz247-FI!$x?X5RkOP5R zbE7#l2hV-`#f)*&&J=1Wu4d0I56Ja)d zY%_}+eS;5f5;Hh$`qBtxs)+*Ca$jFf;&alatyb#225*KDJ?K$g{oa(VxV8%35}5AS zE7{f2m&m1;7AnT^j)J!ZF7>ne7lH!bg~m4Q%CK8ofyr`Z0RFCCRmB7@D!3ppaeS<< zb^(_#DR3ecsAjPt4Am<^-D3fw6v_ouFvU_(ebF>Ma*r7egq5h#da}hak5Nr%gJMclSo{fxsD~1F~jmX3TW0A+@V2 zO1K?yagG}0RGvwzE88QO7kI-=Sbfww4}paO6pW1GV=O6H6qxOo(y?P(z%o`i7lE-) zu#;&7ozvt9{}Ry%?oc;HXU&qKVLO3lSeCT3plzBm2zJ_zb3o#xP8Na7189@-NRE$m za~8Nbz^KcfXezoE5pBj&#f(WKpd>92xG=zBmnH1u%a)Oqo1tOutr@N4L^wl2r0}kE z3h+t^NY(J5CACy|p1Z1w2e{3CYq{n zb5qYS_H%4fWe*Kvj`hm-OQ-sC>Zw^HopPws~)sZSr`+}g|`&aZQK zc`jSZ9%6bfSIQmYYW{~GapE~jkBaXt#yM?}>~H1!KUoc`L`V;*PAwn}1 zCo@G1)7;Hq470?bGySWST;nNp9SeNca5F}{(7}=*CMw*;C&ZfLTEjh}SFwaoDIcP* zd8}cb_|MXMgR&exW6W`6{-*O`1wz5Nf(ZrJ6wL4mViNcq_i5d$!X|Ap*ov!hgI_Xy qSD)j-qvFG7c=RIv+Nu$J^~PFn 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 diff --git a/Eureka Server App/bankmongo/.mvn/wrapper/maven-wrapper.properties b/Eureka Server App/bankmongo/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/Eureka Server App/bankmongo/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/Eureka Server App/bankmongo/mvnw b/Eureka Server App/bankmongo/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/Eureka Server App/bankmongo/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Eureka Server App/bankmongo/mvnw.cmd b/Eureka Server App/bankmongo/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/Eureka Server App/bankmongo/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/Eureka Server App/bankmongo/pom.xml b/Eureka Server App/bankmongo/pom.xml deleted file mode 100644 index d8b870c..0000000 --- a/Eureka Server App/bankmongo/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - MyBankDemo - project for Bank Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.data - spring-data-mongodb - 1.0.0.RELEASE - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - log4j - log4j - 1.2.17 - - - - org.mockito - mockito-all - 1.9.5 - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - \ No newline at end of file diff --git a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/BankmongoApplication.java b/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/BankmongoApplication.java deleted file mode 100644 index eab6829..0000000 --- a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/BankmongoApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.training.bankmongo; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class BankmongoApplication { - - public static void main(String[] args) { - SpringApplication.run(BankmongoApplication.class, args); - } -} diff --git a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Model/Audit.java b/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Model/Audit.java deleted file mode 100644 index fb65623..0000000 --- a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Model/Audit.java +++ /dev/null @@ -1,161 +0,0 @@ -/** - * - */ -package com.training.bankmongo.Model; - -import java.sql.Timestamp; -import java.util.UUID; -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -/** - * @author ram - * - */ -@Document -public class Audit { - - //@GeneratedValue(strategy = GenerationType.IDENTITY) - - @Id - private String uuid; - private String eventName; - private String eventType; - private String timestamp; - private Object oldValue; - private Object newValue; - - - - - - /** - * - */ - public Audit() { - super(); - } - - - /** - * @param uuid - * @param eventName - * @param eventType - * @param userId - * @param oldValue - * @param newValue - */ - public Audit(String uuid, String eventName, String eventType, String timestamp, Object oldValue, Object newValue) { - super(); - this.uuid = uuid; - this.eventName = eventName; - this.eventType = eventType; - this.timestamp = timestamp; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - - - /** - * @return the uuid - */ - public String getUuid() { - return uuid; - } - - /** - * @param uuid - * the uuid to set - */ - public void setUuid(String uuid) { - this.uuid = UUID.randomUUID().toString(); - } - - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - - /** - * @param eventName - * the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - - /** - * @param eventType - * the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - - /** - * @param oldValue - * the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - - /** - * @param newValue - * the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - - /* - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "Audit [uuid=" + uuid + ", eventName=" + eventName + ", eventType=" + eventType + ", oldValue=" - + oldValue + ", newValue=" + newValue + "]"; - } - - /** - * @return the timestamp - */ - public String getTimestamp() { - return timestamp; - } - - /** - * @param timestamp - * the timestamp to set - */ - public void setTimestamp(String timestamp) { - this.timestamp = new Timestamp(System.currentTimeMillis()).toString(); - } - -} diff --git a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Repository/AuditDAO.java b/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Repository/AuditDAO.java deleted file mode 100644 index d88468d..0000000 --- a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Repository/AuditDAO.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * - */ -package com.training.bankmongo.Repository; - -import java.util.UUID; -import org.springframework.data.mongodb.repository.MongoRepository; -import com.training.bankmongo.Model.Audit; - -/** - * @author ram - * - */ -public interface AuditDAO extends MongoRepository { - - - - Audit findByeventName(String name); - Long deleteByeventName(String name); - Audit findByeventType(String name2); - -} diff --git a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Service/AuditService.java b/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Service/AuditService.java deleted file mode 100644 index 760beab..0000000 --- a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Service/AuditService.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package com.training.bankmongo.Service; - -import com.training.bankmongo.Model.Audit; - -/** - * @author ram - * - */ - -public interface AuditService { - - Audit createAudit(Audit audit); - - Audit getAudit(String uuid); - - Audit deleteAudit(String uuid); - - Audit updateAudit(String uuid); - - -} diff --git a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Service/AuditServiceImpl.java b/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Service/AuditServiceImpl.java deleted file mode 100644 index 2441ae7..0000000 --- a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/Service/AuditServiceImpl.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * - */ -package com.training.bankmongo.Service; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.training.bankmongo.Model.Audit; -import com.training.bankmongo.Repository.AuditDAO; - -/** - * @author ram - * - */ -@Service("auditService") -public class AuditServiceImpl implements AuditService { - - @Autowired - AuditDAO auditDAO; - - /* - * @see com.training.bankmongo.Service.AuditService#createAudit(com.training. - * bankmongo.Model.Audit) - */ - @Override - public Audit createAudit(Audit audit) { - - Audit auditDummy = null; - auditDummy = auditDAO.save(audit); - return auditDummy; - } - - @Override - public Audit getAudit(String uuid) { - Optional auditDummy = null; - Audit audit = null; - auditDummy = auditDAO.findById(uuid); - if (auditDummy.isPresent()) { - audit = auditDummy.get(); - return audit; - } else { - return null; - } - } - - @Override - public Audit deleteAudit(String uuid) { - Optional auditDummy = null; - Audit audit = null; - auditDummy = auditDAO.findById(uuid); - if (auditDummy.isPresent()) { - audit = auditDummy.get(); - auditDAO.delete(audit); - return audit; - } else { - return null; - } - } - - @Override - public Audit updateAudit(String uuid) { - Optional auditDummy = null; - Audit audit = null; - auditDummy = auditDAO.findById(uuid); - if (auditDummy.isPresent()) { - audit = auditDummy.get(); - audit.setEventName("customer"); - auditDAO.save(audit); - return audit; - } else { - return null; - } - - } - -} diff --git a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/controller/AuditController.java b/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/controller/AuditController.java deleted file mode 100644 index 652fd67..0000000 --- a/Eureka Server App/bankmongo/src/main/java/com/training/bankmongo/controller/AuditController.java +++ /dev/null @@ -1,115 +0,0 @@ -/** - * - */ -package com.training.bankmongo.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController;import com.training.bankmongo.Model.Audit; -import com.training.bankmongo.Repository.AuditDAO; -import com.training.bankmongo.Service.AuditService; - -/** - * @author ram - * - */ - -@RestController -@RequestMapping("/Audit") -public class AuditController { - - - @Autowired - AuditDAO auditDAO; - - @Autowired - AuditService auditService; - - final Logger LOGGER = Logger.getLogger(AuditController.class); - - @PostMapping("/create") - ResponseEntity createAudit(@RequestBody Audit audit){ - Audit auditDummy = null; - try { - auditDummy = auditService.createAudit(audit); - }catch(Exception e){ - LOGGER.error("audit not found"); - } - if(auditDummy == null) - { - - } - return new ResponseEntity(auditDummy, HttpStatus.OK); - } - - @GetMapping("/get/{uuid}") - ResponseEntity getAudit(@PathVariable String uuid){ - Audit auditDummy = null; - try { - auditDummy = auditService.getAudit(uuid); - }catch(Exception e){ - LOGGER.error("audit not found"); - } - if(auditDummy == null) - { - - } - return new ResponseEntity(auditDummy, HttpStatus.OK); - } - - @GetMapping("/delete/{uuid}") - ResponseEntity deleteAudit(@PathVariable String uuid){ - Audit auditDummy = null; - try { - auditDummy = auditService.deleteAudit(uuid); - }catch(Exception e){ - LOGGER.error("audit not found"); - } - if(auditDummy == null) - { - - } - return new ResponseEntity(auditDummy, HttpStatus.OK); - } - - @GetMapping("/update/{uuid}") - ResponseEntity updateAudit(@PathVariable String uuid){ - Audit auditDummy = null; - try { - auditDummy = auditService.updateAudit(uuid); - }catch(Exception e){ - LOGGER.error("audit not found"); - } - if(auditDummy == null) - { - - } - return new ResponseEntity(auditDummy, HttpStatus.OK); - } - - - @GetMapping("/get/{name}") - ResponseEntity getAuditbyName(@PathVariable String name){ - Audit auditDummy = null; - try { - auditDummy = auditDAO.findByeventName(name); - }catch(Exception e){ - LOGGER.error("audit not found"); - } - if(auditDummy == null) - { - - } - return new ResponseEntity(auditDummy, HttpStatus.OK); - } - - - -} diff --git a/Eureka Server App/bankmongo/src/main/resources/application.properties b/Eureka Server App/bankmongo/src/main/resources/application.properties deleted file mode 100644 index d01f5bb..0000000 --- a/Eureka Server App/bankmongo/src/main/resources/application.properties +++ /dev/null @@ -1,9 +0,0 @@ -spring.data.mongodb.host=127.0.0.1 -spring.data.mongodb.port=27017 -spring.data.mongodb.database=yourDBName - - -server.port=8281 - -logging.level.org.springframework.data.mongodb.repository.MongoRepository=info -logging.level.org.springframework.data.mongodb.repository.Query=info \ No newline at end of file diff --git a/Eureka Server App/bankmongo/src/test/java/com/training/bankmongo/BankmongoApplicationTests.java b/Eureka Server App/bankmongo/src/test/java/com/training/bankmongo/BankmongoApplicationTests.java deleted file mode 100644 index dbf7c5d..0000000 --- a/Eureka Server App/bankmongo/src/test/java/com/training/bankmongo/BankmongoApplicationTests.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.training.bankmongo; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.util.Optional; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -import com.training.bankmongo.Model.Audit; -import com.training.bankmongo.Repository.AuditDAO; -import com.training.bankmongo.Service.AuditServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class BankmongoApplicationTests { - - - - RestTemplate rest1=new RestTemplate(); - - - @Mock - AuditDAO auditDAO; - @InjectMocks - AuditServiceImpl auditServiceImpl; - - @Test - public void createAudit() { - Audit audit=new Audit( "Technical", "Spartans","Fun", "12-11-2018", "1", "2"); - - when(auditDAO.save(audit)).thenReturn(audit); - assertThat(auditServiceImpl.createAudit(audit), is(notNullValue())); - } - - @Test - public void viewAudit() { - Audit audit=new Audit( "Technical", "Spartans","Fun", "12-11-2018", "1", "2"); - //audit.setEventName("NonTechnical"); - Optional auditlog = Optional.of(audit); - - when(auditDAO.findById("1")).thenReturn(auditlog); - - assertThat(auditServiceImpl.getAudit("1"), is(notNullValue())); - } - - - @Test - public void auditupdatetruecase() - { - Audit audit=new Audit( "Technical", "Spartans","Fun", "12-11-2018", "1", "2"); - Optional opt=Optional.of(audit); - when(auditDAO.findById("1")).thenReturn(opt); - Audit auditt=opt.get(); - when(auditDAO.save(auditt)).thenReturn(auditt); - Audit newAudit=auditServiceImpl.updateAudit("updation"); - - assertEquals(auditt,newAudit); - } - - @Test - public void viewbyname() - { - String str="ramesh"; - String url="http://localhost:8080/viewByName/"+str; - Audit aud=rest1.getForObject(url, Audit.class); - assertEquals(str, aud.getEventName()); - } - - - @Test - public void falsecreateTest() - { - Audit audit1=null; - Mockito.when(auditDAO.save(audit1)).thenReturn(audit1); - Audit audi; - audi = auditServiceImpl.createAudit(audit1); - } - - @Test - public void updateAudit() { - Audit audit=new Audit( "Technical", "Spartans","Fun", "12-11-2018", "1", "2"); - audit.setEventName("NonTechnical"); - Optional auditlog = Optional.of(audit); - - when(auditDAO.findById("1")).thenReturn(auditlog); - - assertThat(auditServiceImpl.updateAudit("1"), is(notNullValue())); - } - - - - - - @Test - public void deleteAudit() { - Audit audit=new Audit( "Technical", "Spartans","Fun", "12-11-2018", "1", "2"); - //audit.setEventName("NonTechnical"); - Optional auditlog = Optional.of(audit); - - when(auditDAO.findById("1")).thenReturn(auditlog); - - assertThat(auditServiceImpl.deleteAudit("1"), is(notNullValue())); - } - - - - -} diff --git a/Eureka Server App/eurekaserver/.gitignore b/Eureka Server App/eurekaserver/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/Eureka Server App/eurekaserver/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/Eureka Server App/eurekaserver/.mvn/wrapper/maven-wrapper.jar b/Eureka Server App/eurekaserver/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 zcmbTd1CXW7vMxN+wr$(CZCk5to71*!+jjS~ZJX1!ds=tCefGhB{(HVS`>u$J^~PFn zW>r>YRc2N`sUQsug7OUl0^-}ZZ-jr^e|{kUJj#ly2+~T*iO~apQ;-J#>z!{v|9nH? zexD9D~4A70;F%I|$?{aX9)~)7!NMGs_XtoO(D2z3Q#5Lmj zOYWk1b{iMmsdX30UFmYyZk1gWICVeOtk^$+{3U2(8gx?WA2F!EfBPf&|1?AJ|5Z>M zfUAk^zcf#n|9^4|J34286~NKrUt&c5cZ~iqE?PH7fW5tm3-qG$) z56%`QPSn!0RMV3)jjXfG^UQ}*^yBojH!}58lPlDclX5iUhf*|DV=~e*bl;(l$Wn@r zPE*iH(NK!e9KQcU$rRM}aJc?-&H1PO&vOs*=U+QVvwuk-=zr1x>;XpRCjSyC;{TWQ z|824V8t*^*{x=5yn^pP#-?k<5|7|4y&Pd44&e_TN&sxg@ENqpX0glclj&w%W04Jwp zwJ}#@ag^@h5VV4H5U@i7V#A*a;4bzM-y_rd{0WG#jRFPJU}(#&o8vo@uM+B+$>Tiq zei^5$wg8CVf{+_#Vh`yPx-6TmB~zT_nocS_Rb6&EYp*KjbN#-aP<~3j=NVuR)S1wm zdy3AWx2r9uww3eNJxT>{tdmY4#pLw`*`_fIwSu;yzFYP)=W6iawn`s*omzNbR?E&LyC17rFcjWp!M~p?;{v!78DTxtF85BK4dT< zA5p)Z%6O}mP?<%Z{>nZmbVEbomm zLgy;;N&!y>Dma2sqmbvz&KY-j&s~dd#mWGlNF%7}vS7yt>Dm{P=X zG>Pyv2D!ba0CcTI*G6-v?!0}`EWm1d?K)DgZIQk9eucI&lBtR))NxqVz)+hBR1b|7 zgv&^46cI?mgCvp>lY9W(nJT#^<*kY3o#Php1RZLY@ffmLLq3A!Yd}O~n@BhXVp`<5 zJx`BjR%Svv)Sih_8TFg-9F-Gg3^kQrpDGej@uT5%y_9NSsk5SW>7{>&11u(JZHsZO zZweI|!&qHl0;7qxijraQo=oV^Pi~bNlzx;~b2+hXreonWGD%C$fyHs+8d1kKN>TgB z{Mu?~E{=l1osx|_8P*yC>81_GB7>NS7UA+x2k_c*cU-$gQjR{+IU)z069Ic$<)ci< zb?+V#^-MK!0s~wRP|grx?P^8EZ(9Jt0iA{`uVS6fNo>b@as5_-?e766V}&)8ZOEVtKB z*HtHAqat+2lbJbEI#fl~`XKNIF&J?PHKq)A!z(#j%)Uby=5d!bQP)-Mr!0#J=FV%@9G#Cby%r#(S=23H#9d)5Ndy>pIXJ%si!D=m*-QQZ(O9~#Jhx#AS3 z&Vs+*E5>d+{ib4>FEd#L15-ovl*zV%SYSWF>Z}j!vGn=g%w0~3XvAK&$Dl@t5hiUa#mT(4s9-JF1l zPi5d2YmuFJ4S(O>g~H)5l_`%h3qm?+8MmhXA>GRN}7GX;$4(!WTkYZB=TA^8ZFh^d9_@x$fK4qenP!zzaqQ1^(GQ- zjC$P$B5o{q&-H8UH_$orJTv0}#|9ja(vW9gA%l|@alYk+Uth1ey*ax8wmV7U?^Z9? zsQMrEzP8|_s0=bii4wDWa7te&Vmh9T>fcUXJS|dD3Y$A`s-7kY!+idEa`zB) zaW*%xb+#}9INSa62(M1kwL=m_3E2T|l5Sm9QmON8ewxr#QR`;vOGCgyMsA8$O(;=U z#sEw)37duzeM#9_7l!ly#5c+Mu3{;<9%O{e z`+0*{COEF^py;f6)y6NX)gycj`uU9pdZMum9h(bS!zu1gDXdmF4{Og{u;d(Dr~Co1 z1tm@i#5?>oL}-weK1zJRlLv*+M?l=eI~Sp9vg{R6csq=3tYSB2pqB8 z=#p`us7r|uH=cZnGj|juceAu8J#vb+&UFLFmGn~9O|TNeGH>sboBl%JI9v(@^|45? zLvr2ha)NWP4yxV8K%dU(Ae=zl)qdGyz={$my;Vs6?4?2*1?&u!OFyFbAquv6@1e)~&Rp#Ww9O88!mrze((=@F?&BPl_u9gK4VlHo@4gLK_pGtEA(gO4YpIIWTrFN zqVi%Q{adXq^Ez~dZ0VUC>DW`pGtpTY<9tMd;}WZUhT1iy+S^TfHCWXGuDwAv1Ik85 zh3!tSlWU3*aLtmdf?g(#WnLvVCXW$>gnT_{(%VilR=#2VKh~S}+Po#ha9C*<-l~Fx z$EK{1SO8np&{JC)7hdM8O+C( zF^s3HskJz@p3ot`SPKA92PG!PmC2d|9xA!CZxR!rK9-QYYBGAM-Gj zCqzBaIjtOZ6gu+lA%**RI7to$x^s8xIx}VF96=<29CjWtsl;tmNbuHgrCyB^VzEIB zt@sqnl8Vg`pnMppL6vbjNNKc?BrH<)fxiZ|WrYW%cnz-FMENGzMI+)@l7dit?oP|Wu zg-oLcv~79=fdqEM!zK%lI=R7S!Do!HBaD+*h^ULWVB}4jr^e5oUqY`zA&NUvzseI% z+XCvzS+n|m7WJoyjXXk(PE8;i^r$#Pq|NFd!{g~m2OecA1&>$7SYFw z;}Q{`F3LCE34Z>5;5dDtz&2Z&w|B9fwvU<@S<BBo(L4SbDV#X3%uS+<2q7iH+0baiGzlVP5n0fBDP z7kx+7|Cws+?T|cw-pt~SIa7BRDI_ATZ9^aQS^1I?WfnfEHZ*sGlT#Wk9djDL?dWLA zk%(B?<8L?iV*1m803UW|*sU$raq<(!N!CrQ&y7?7_g zF2!aAfw5cWqO}AX)+v)5_GvQ$1W8MV8bTMr3P{^!96Q4*YhS}9ne|+3GxDJmZEo zqh;%RqD5&32iTh7kT>EEo_%`8BeK&)$eXQ-o+pFIP!?lee z&kos;Q)_afg1H&{X|FTQ0V z@yxv4KGGN)X|n|J+(P6Q`wmGB;J}bBY{+LKVDN9#+_w9s$>*$z)mVQDOTe#JG)Zz9*<$LGBZ-umW@5k5b zbIHp=SJ13oX%IU>2@oqcN?)?0AFN#ovwS^|hpf5EGk0#N<)uC{F}GG}%;clhikp2* zu6ra2gL@2foI>7sL`(x5Q)@K2$nG$S?g`+JK(Q0hNjw9>kDM|Gpjmy=Sw5&{x5$&b zE%T6x(9i|z4?fMDhb%$*CIe2LvVjuHca`MiMcC|+IU51XfLx(BMMdLBq_ z65RKiOC$0w-t)Cyz0i-HEZpkfr$>LK%s5kga^FIY_|fadzu*r^$MkNMc!wMAz3b4P+Z3s(z^(%(04}dU>ef$Xmof(A|XXLbR z2`&3VeR1&jjKTut_i?rR_47Z`|1#$NE$&x#;NQM|hxDZ>biQ*+lg5E62o65ILRnOOOcz%Q;X$MJ?G5dYmk$oL_bONX4 zT^0yom^=NsRO^c$l02#s0T^dAAS&yYiA=;rLx;{ro6w08EeTdVF@j^}Bl;o=`L%h! zMKIUv(!a+>G^L3{z7^v3W$FUUHA+-AMv~<}e?2?VG|!itU~T>HcOKaqknSog zE}yY1^VrdNna1B6qA`s?grI>Y4W%)N;~*MH35iKGAp*gtkg=FE*mFDr5n2vbhwE|4 zZ!_Ss*NMZdOKsMRT=uU{bHGY%Gi=K{OD(YPa@i}RCc+mExn zQogd@w%>14cfQrB@d5G#>Lz1wEg?jJ0|(RwBzD74Eij@%3lyoBXVJpB{q0vHFmE7^ zc91!c%pt&uLa|(NyGF2_L6T{!xih@hpK;7B&bJ#oZM0`{T6D9)J2IXxP?DODPdc+T zC>+Zq8O%DXd5Gog2(s$BDE3suv=~s__JQnX@uGt+1r!vPd^MM}=0((G+QopU?VWgR zqj8EF0?sC`&&Nv-m-nagB}UhXPJUBn-UaDW9;(IX#)uc zL*h%hG>ry@a|U=^=7%k%V{n=eJ%Nl0Oqs!h^>_PgNbD>m;+b)XAk+4Cp=qYxTKDv& zq1soWt*hFf%X8}MpQZL-Lg7jc0?CcWuvAOE(i^j1Km^m8tav)lMx1GF{?J#*xwms2 z3N_KN-31f;@JcW(fTA`J5l$&Q8x{gb=9frpE8K0*0Rm;yzHnDY0J{EvLRF0 zRo6ca)gfv6C)@D#1I|tgL~uHJNA-{hwJQXS?Kw=8LU1J$)nQ-&Jhwxpe+%WeL@j0q z?)92i;tvzRki1P2#poL;YI?9DjGM4qvfpsHZQkJ{J^GNQCEgUn&Sg=966 zq?$JeQT+vq%zuq%%7JiQq(U!;Bsu% zzW%~rSk1e+_t89wUQOW<8%i|5_uSlI7BcpAO20?%EhjF%s%EE8aY15u(IC za2lfHgwc;nYnES7SD&Lf5IyZvj_gCpk47H}e05)rRbfh(K$!jv69r5oI| z?){!<{InPJF6m|KOe5R6++UPlf(KUeb+*gTPCvE6! z(wMCuOX{|-p(b~)zmNcTO%FA z$-6}lkc*MKjIJ(Fyj^jkrjVPS);3Qyq~;O$p+XT+m~0$HsjB@}3}r*h(8wGbH9ktQ zbaiiMSJf`6esxC3`u@nNqvxP1nBwerm|KN)aBzu$8v_liZ0(G8}*jB zv<8J%^S2E_cu+Wp1;gT66rI$>EwubN4I(Lo$t8kzF@?r0xu8JX`tUCpaZi(Q0~_^K zs6pBkie9~06l>(Jpy*d&;ZH{HJ^Ww6>Hs!DEcD{AO42KX(rTaj)0ox`;>}SRrt)N5 zX)8L4Fg)Y6EX?He?I`oHeQiGJRmWOAboAC4Jaf;FXzspuG{+3!lUW8?IY>3%)O546 z5}G94dk)Y>d_%DcszEgADP z8%?i~Ak~GQ!s(A4eVwxPxYy3|I~3I=7jf`yCDEk_W@yfaKjGmPdM}($H#8xGbi3l3 z5#?bjI$=*qS~odY6IqL-Q{=gdr2B5FVq7!lX}#Lw**Pyk!`PHN7M3Lp2c=T4l}?kn zVNWyrIb(k&`CckYH;dcAY7-kZ^47EPY6{K(&jBj1Jm>t$FD=u9U z#LI%MnI3wPice+0WeS5FDi<>~6&jlqx=)@n=g5TZVYdL@2BW3w{Q%MkE%sx}=1ihvj(HDjpx!*qqta?R?| zZ(Ju_SsUPK(ZK*&EdAE(Fj%eABf2+T>*fZ6;TBP%$xr(qv;}N@%vd5iGbzOgyMCk* z3X|-CcAz%}GQHalIwd<-FXzA3btVs-_;!9v7QP)V$ruRAURJhMlw7IO@SNM~UD)2= zv}eqKB^kiB))Yhh%v}$ubb#HBQHg3JMpgNF+pN*QbIx(Rx1ofpVIL5Y{)0y&bMO(@ zyK1vv{8CJQidtiI?rgYVynw{knuc!EoQ5-eete(AmM`32lI7{#eS#!otMBRl21|g^SVHWljl8jU?GU@#pYMIqrt3mF|SSYI&I+Vz|%xuXv8;pHg zlzFl!CZ>X%V#KWL3+-743fzYJY)FkKz>GJ<#uKB)6O8NbufCW%8&bQ^=8fHYfE(lY z1Fl@4l%|iaTqu=g7tTVk)wxjosZf2tZ2`8xs9a$b1X29h!9QP#WaP#~hRNL>=IZO@SX4uYQR_c0pSt89qQR@8gJhL*iXBTSBDtlsiNvc_ewvY-cm%bd&sJTnd@hE zwBGvqGW$X^oD~%`b@yeLW%An*as@4QzwdrpKY9-E%5PLqvO6B+bf>ph+TWiPD?8Ju z-V}p@%LcX{e)?*0o~#!S%XU<+9j>3{1gfU=%sHXhukgH+9z!)AOH_A{H3M}wmfmU8 z&9jjfwT-@iRwCbIEwNP4zQHvX3v-d*y87LoudeB9Jh5+mf9Mnj@*ZCpwpQ*2Z9kBWdL19Od7q|Hdbwv+zP*FuY zQc4CJ6}NIz7W+&BrB5V%{4Ty$#gf#V<%|igk)b@OV`0@<)cj(tl8~lLtt^c^l4{qP z=+n&U0LtyRpmg(_8Qo|3aXCW77i#f{VB?JO3nG!IpQ0Y~m!jBRchn`u>HfQuJwNll zVAMY5XHOX8T?hO@7Vp3b$H)uEOy{AMdsymZ=q)bJ%n&1;>4%GAjnju}Osg@ac*O?$ zpu9dxg-*L(%G^LSMhdnu=K)6ySa|}fPA@*Saj}Z>2Dlk~3%K(Py3yDG7wKij!7zVp zUZ@h$V0wJ|BvKc#AMLqMleA*+$rN%#d95$I;;Iy4PO6Cih{Usrvwt2P0lh!XUx~PGNySbq#P%`8 zb~INQw3Woiu#ONp_p!vp3vDl^#ItB06tRXw88L}lJV)EruM*!ZROYtrJHj!X@K$zJ zp?Tb=Dj_x1^)&>e@yn{^$B93%dFk~$Q|0^$=qT~WaEU-|YZZzi`=>oTodWz>#%%Xk z(GpkgQEJAibV%jL#dU)#87T0HOATp~V<(hV+CcO?GWZ_tOVjaCN13VQbCQo=Dt9cG znSF9X-~WMYDd66Rg8Ktop~CyS7@Pj@Vr<#Ja4zcq1}FIoW$@3mfd;rY_Ak^gzwqqD z^4<_kC2Eyd#=i8_-iZ&g_e#$P`;4v zduoZTdyRyEZ-5WOJwG-bfw*;7L7VXUZ8aIA{S3~?()Yly@ga|-v%?@2vQ;v&BVZlo7 z49aIo^>Cv=gp)o?3qOraF_HFQ$lO9vHVJHSqq4bNNL5j%YH*ok`>ah?-yjdEqtWPo z+8i0$RW|$z)pA_vvR%IVz4r$bG2kSVM&Z;@U*{Lug-ShiC+IScOl?O&8aFYXjs!(O z^xTJ|QgnnC2!|xtW*UOI#vInXJE!ZpDob9x`$ox|(r#A<5nqbnE)i<6#(=p?C~P-7 zBJN5xp$$)g^l};@EmMIe;PnE=vmPsTRMaMK;K`YTPGP0na6iGBR8bF%;crF3>ZPoLrlQytOQrfTAhp;g){Mr$zce#CA`sg^R1AT@tki!m1V zel8#WUNZfj(Fa#lT*nT>^pY*K7LxDql_!IUB@!u?F&(tfPspwuNRvGdC@z&Jg0(-N z(oBb3QX4em;U=P5G?Y~uIw@E7vUxBF-Ti*ccU05WZ7`m=#4?_38~VZvK2{MW*3I#fXoFG3?%B;ki#l%i#$G_bwYQR-4w>y;2` zMPWDvmL6|DP1GVXY)x+z8(hqaV5RloGn$l&imhzZEZP6v^d4qAgbQ~bHZEewbU~Z2 zGt?j~7`0?3DgK+)tAiA8rEst>p#;)W=V+8m+%}E$p-x#)mZa#{c^3pgZ9Cg}R@XB) zy_l7jHpy(u;fb+!EkZs6@Z?uEK+$x3Ehc8%~#4V?0AG0l(vy{8u@Md5r!O+5t zsa{*GBn?~+l4>rChlbuT9xzEx2yO_g!ARJO&;rZcfjzxpA0Chj!9rI_ZD!j` z6P@MWdDv&;-X5X8o2+9t%0f1vJk3R~7g8qL%-MY9+NCvQb)%(uPK4;>y4tozQ2Dl* zEoR_1#S~oFrd9s%NOkoS8$>EQV|uE<9U*1uqAYWCZigiGlMK~vSUU}f5M9o{<*WW? z$kP)2nG$My*fUNX3SE!g7^r#zTT^mVa#A*5sBP8kz4se+o3y}`EIa)6)VpKmto6Ew z1J-r2$%PM4XUaASlgVNv{BBeL{CqJfFO|+QpkvsvVBdCA7|vlwzf1p$Vq50$Vy*O+ z5Eb85s^J2MMVj53l4_?&Wpd1?faYE-X1ml-FNO-|a;ZRM*Vp!(ods{DY6~yRq%{*< zgq5#k|KJ70q47aO1o{*gKrMHt)6+m(qJi#(rAUw0Uy8~z8IX)>9&PTxhLzh#Oh*vZ zPd1b$Z&R{yc&TF^x?iQCw#tV}la&8^W)B*QZ${19LlRYgu#nF7Zj`~CtO^0S#xp+r zLYwM~si$I>+L}5gLGhN=dyAKO)KqPNXUOeFm#o+3 z&#!bD%aTBT@&;CD_5MMC&_Yi+d@nfuxWSKnYh0%~{EU`K&DLx}ZNI2osu#(gOF2}2 zZG#DdQ|k0vXj|PxxXg-MYSi9gI|hxI%iP)YF2$o< zeiC8qgODpT?j!l*pj_G(zXY2Kevy~q=C-SyPV$~s#f-PW2>yL}7V+0Iu^wH;AiI$W zcZDeX<2q%!-;Ah!x_Ld;bR@`bR4<`FTXYD(%@CI#biP z5BvN;=%AmP;G0>TpInP3gjTJanln8R9CNYJ#ziKhj(+V33zZorYh0QR{=jpSSVnSt zGt9Y7Bnb#Ke$slZGDKti&^XHptgL7 zkS)+b>fuz)B8Lwv&JV*};WcE2XRS63@Vv8V5vXeNsX5JB?e|7dy$DR9*J#J= zpKL@U)Kx?Y3C?A3oNyJ5S*L+_pG4+X*-P!Er~=Tq7=?t&wwky3=!x!~wkV$Ufm(N| z1HY?`Ik8?>%rf$6&0pxq8bQl16Jk*pwP`qs~x~Trcstqe-^hztuXOG zrYfI7ZKvK$eHWi9d{C${HirZ6JU_B`f$v@SJhq?mPpC-viPMpAVwE;v|G|rqJrE5p zRVf904-q{rjQ=P*MVKXIj7PSUEzu_jFvTksQ+BsRlArK&A*=>wZPK3T{Ki-=&WWX= z7x3VMFaCV5;Z=X&(s&M^6K=+t^W=1>_FFrIjwjQtlA|-wuN7&^v1ymny{51gZf4-V zU8|NSQuz!t<`JE%Qbs||u-6T*b*>%VZRWsLPk&umJ@?Noo5#{z$8Q0oTIv00`2A`# zrWm^tAp}17z72^NDu^95q1K)6Yl`Wvi-EZA+*i&8%HeLi*^9f$W;f1VF^Y*W;$3dk|eLMVb_H{;0f*w!SZMoon+#=CStnG-7ZU8V>Iy( zmk;42e941mi7!e>J0~5`=NMs5g)WrdUo^7sqtEvwz8>H$qk=nj(pMvAb4&hxobPA~p&-L5a_pTs&-0XCm zKXZ8BkkriiwE)L2CN$O-`#b15yhuQO7f_WdmmG<-lKeTBq_LojE&)|sqf;dt;llff znf|C$@+knhV_QYVxjq*>y@pDK|DuZg^L{eIgMZnyTEoe3hCgVMd|u)>9knXeBsbP_$(guzw>eV{?5l$ z063cqIysrx82-s6k;vE?0jxzV{@`jY3|*Wp?EdNUMl0#cBP$~CHqv$~sB5%50`m(( zSfD%qnxbGNM2MCwB+KA?F>u__Ti>vD%k0#C*Unf?d)bBG6-PYM!!q;_?YWptPiHo} z8q3M~_y9M6&&0#&uatQD6?dODSU)%_rHen`ANb z{*-xROTC1f9d!8`LsF&3jf{OE8~#;>BxHnOmR}D80c2Eh zd867kq@O$I#zEm!CCZJw8S`mCx}HrCl_Rh4Hsk{Cb_vJ4VA3GK+icku z%lgw)Y@$A0kzEV^#=Zj8i6jPk&Mt_bKDD!jqY3&W(*IPbzYu$@x$|3*aP{$bz-~xE^AOxtbyWvzwaCOHv6+99llI&xT_8)qX3u|y|0rDV z(Hu*#5#cN0mw4OSdY$g_xHo-zyZ-8WW&4r%qW(=5N>0O-t{k;#G9X81F~ynLV__Kz zbW1MA>Pjg0;3V?iV+-zQsll_0jimGuD|0GNW^av|4yes(PkR1bGZwO6xvgCy}ThR7?d&$N`kA3N!Xn5uSKKCT-`{lE1ZYYy?GzL}WF+mh|sgT6K2Z*c9YB zFSpGRNgYvk&#<2@G(vUM5GB|g?gk~-w+I4C{vGu{`%fiNuZIeu@V1qt`-x$E?OR;zu866Y@2^et5GTNCpX#3D=|jD5>lT^vD$ zr}{lRL#Lh4g45Yj43Vs7rxUb*kWC?bpKE1@75OJQ=XahF z5(C0DyF;at%HtwMTyL!*vq6CLGBi^Ey}Mx39TC2$a)UmekKDs&!h>4Hp2TmSUi!xo zWYGmyG)`$|PeDuEL3C6coVtit>%peYQ6S1F4AcA*F`OA;qM+1U6UaAI(0VbW#!q9* zz82f@(t35JH!N|P4_#WKK6Rc6H&5blD6XA&qXahn{AP=oKncRgH!&=b6WDz?eexo* z9pzh}_aBc_R&dZ+OLk+2mK-5UhF`>}{KN7nOxb{-1 zd`S-o1wgCh7k0u%QY&zoZH}!<;~!)3KTs-KYRg}MKP3Vl%p$e6*MOXLKhy)<1F5L* z+!IH!RHQKdpbT8@NA+BFd=!T==lzMU95xIyJ13Z6zysYQ1&zzH!$BNU(GUm1QKqm< zTo#f%;gJ@*o;{#swM4lKC(QQ<%@;7FBskc7$5}W9Bi=0heaVvuvz$Ml$TR8@}qVn>72?6W1VAc{Mt}M zkyTBhk|?V}z`z$;hFRu8Vq;IvnChm+no@^y9C1uugsSU`0`46G#kSN9>l_ozgzyqc zZnEVj_a-?v@?JmH1&c=~>-v^*zmt`_@3J^eF4e))l>}t2u4L`rueBR=jY9gZM;`nV z>z(i<0eedu2|u-*#`SH9lRJ7hhDI=unc z?g^30aePzkL`~hdH*V7IkDGnmHzVr%Q{d7sfb7(|)F}ijXMa7qg!3eHex)_-$X;~* z>Zd8WcNqR>!`m#~Xp;r4cjvfR{i04$&f1)7sgen9i>Y|3)DCt^f)`uq@!(SG?w|tdSLS+<;ID74 zTq8FJYHJHrhSwvKL|O1ZnSbG-=l6Eg-Suv60Xc;*bq~g+LYk*Q&e)tR_h3!(y)O}$ zLi*i5ec^uHkd)fz2KWiR;{RosL%peU`TxM7w*M9m#rAiG`M)FTB>=X@|A`7x)zn5- z$MB5>0qbweFB249EI@!zL~I7JSTZbzjSMMJ=!DrzgCS!+FeaLvx~jZXwR`BFxZ~+A z=!Pifk?+2awS3DVi32fgZRaqXZq2^->izZpIa1sEog@01#TuEzq%*v359787rZoC( z9%`mDR^Hdxb%XzUt&cJN3>Cl{wmv{@(h>R38qri1jLKds0d|I?%Mmhu2pLy=< zOkKo4UdS`E9Y~z3z{5_K+j~i7Ou}q0?Qv4YebBya1%VkkWzR%+oB!c?9(Ydaka32! zTEv*zgrNWs`|~Q{h?O|8s0Clv{Kg0$&U}?VFLkGg_y=0Qx#=P${6SNQFp!tDsTAPV z0Ra{(2I7LAoynS0GgeQ6_)?rYhUy}AE^$gwmg?i!x#<9eP=0N=>ZgB#LV9|aH8q#B za|O-vu(GR|$6Ty!mKtIfqWRS-RO4M0wwcSr9*)2A5`ZyAq1`;6Yo)PmDLstI zL2%^$1ikF}0w^)h&000z8Uc7bKN6^q3NBfZETM+CmMTMU`2f^a#BqoYm>bNXDxQ z`3s6f6zi5sj70>rMV-Mp$}lP|jm6Zxg}Sa*$gNGH)c-upqOC7vdwhw}e?`MEMdyaC zP-`+83ke+stJPTsknz0~Hr8ea+iL>2CxK-%tt&NIO-BvVt0+&zsr9xbguP-{3uW#$ z<&0$qcOgS{J|qTnP;&!vWtyvEIi!+IpD2G%Zs>;k#+d|wbodASsmHX_F#z?^$)zN5 zpQSLH`x4qglYj*{_=8p>!q39x(y`B2s$&MFQ>lNXuhth=8}R}Ck;1}MI2joNIz1h| zjlW@TIPxM_7 zKBG{Thg9AP%B2^OFC~3LG$3odFn_mr-w2v**>Ub7da@>xY&kTq;IGPK5;^_bY5BP~ z2fiPzvC&osO@RL)io905e4pY3Yq2%j&)cfqk|($w`l`7Pb@407?5%zIS9rDgVFfx! zo89sD58PGBa$S$Lt?@8-AzR)V{@Q#COHi-EKAa5v!WJtJSa3-Wo`#TR%I#UUb=>j2 z7o-PYd_OrbZ~3K`pn*aw2)XKfuZnUr(9*J<%z@WgC?fexFu%UY!Yxi6-63kAk7nsM zlrr5RjxV45AM~MPIJQqKpl6QmABgL~E+pMswV+Knrn!0T)Ojw{<(yD8{S|$(#Z!xX zpH9_Q>5MoBKjG%zzD*b6-v>z&GK8Dfh-0oW4tr(AwFsR(PHw_F^k((%TdkglzWR`iWX>hT1rSX;F90?IN4&}YIMR^XF-CEM(o(W@P#n?HF z!Ey(gDD_0vl+{DDDhPsxspBcks^JCEJ$X74}9MsLt=S?s3)m zQ0cSrmU*<u;KMgi1(@Ip7nX@4Zq>yz;E<(M8-d0ksf0a2Ig8w2N-T69?f}j}ufew}LYD zxr7FF3R7yV0Gu^%pXS^49){xT(nPupa(8aB1>tfKUxn{6m@m1lD>AYVP=<)fI_1Hp zIXJW9gqOV;iY$C&d=8V)JJIv9B;Cyp7cE}gOoz47P)h)Y?HIE73gOHmotX1WKFOvk z5(t$Wh^13vl;+pnYvJGDz&_0Hd3Z4;Iwa-i3p|*RN7n?VJ(whUPdW>Z-;6)Re8n2# z-mvf6o!?>6wheB9q}v~&dvd0V`8x&pQkUuK_D?Hw^j;RM-bi_`5eQE5AOIzG0y`Hr zceFx7x-<*yfAk|XDgPyOkJ?){VGnT`7$LeSO!n|o=;?W4SaGHt4ngsy@=h-_(^qX)(0u=Duy02~Fr}XWzKB5nkU$y`$67%d^(`GrAYwJ? zN75&RKTlGC%FP27M06zzm}Y6l2(iE*T6kdZPzneMK9~m)s7J^#Q=B(Okqm1xB7wy< zNC>)8Tr$IG3Q7?bxF%$vO1Y^Qhy>ZUwUmIW5J4=ZxC|U)R+zg4OD$pnQ{cD`lp+MM zS3RitxImPC0)C|_d18Shpt$RL5iIK~H z)F39SLwX^vpz;Dcl0*WK*$h%t0FVt`Wkn<=rQ6@wht+6|3?Yh*EUe+3ISF zbbV(J6NNG?VNIXC)AE#(m$5Q?&@mjIzw_9V!g0#+F?)2LW2+_rf>O&`o;DA!O39Rg ziOyYKXbDK!{#+cj_j{g;|IF`G77qoNBMl8r@EIUBf+7M|eND2#Y#-x=N_k3a52*fi zp-8K}C~U4$$76)@;@M@6ZF*IftXfwyZ0V+6QESKslI-u!+R+?PV=#65d04(UI%}`r z{q6{Q#z~xOh}J=@ZN<07>bOdbSI(Tfcu|gZ?{YVVcOPTTVV52>&GrxwumlIek}OL? zeGFo#sd|C_=JV#Cu^l9$fSlH*?X|e?MdAj8Uw^@Dh6+eJa?A?2Z#)K zvr7I|GqB~N_NU~GZ?o1A+fc@%HlF$71Bz{jOC{B*x=?TsmF0DbFiNcnIuRENZA43a zfFR89OAhqSn|1~L4sA9nVHsFV4xdIY_Ix>v0|gdP(tJ^7ifMR_2i4McL#;94*tSY) zbwcRqCo$AnpV)qGHZ~Iw_2Q1uDS2XvFff#5BXjO!w&1C^$Pv^HwXT~vN0l}QsTFOz zp|y%Om9}{#!%cPR8d8sc4Y@BM+smy{aU#SHY>>2oh1pK+%DhPqc2)`!?wF{8(K$=~ z<4Sq&*`ThyQETvmt^NaN{Ef2FQ)*)|ywK%o-@1Q9PQ_)$nJqzHjxk4}L zJRnK{sYP4Wy(5Xiw*@M^=SUS9iCbSS(P{bKcfQ(vU?F~)j{~tD>z2I#!`eFrSHf;v zquo)*?AW$#+qP}n$%<{;wr$()*yw5N`8_rOTs^kOqyY;dIjsdw*6k_mL}v2V9C_*sK<_L8 za<3)C%4nRybn^plZ(y?erFuRVE9g%mzsJzEi5CTx?wwx@dpDFSOAubRa_#m+=AzZ~ z^0W#O2zIvWEkxf^QF660(Gy8eyS`R$N#K)`J732O1rK4YHBmh|7zZ`!+_91uj&3d} zKUqDuDQ8YCmvx-Jv*$H%{MrhM zw`g@pJYDvZp6`2zsZ(dm)<*5p3nup(AE6}i#Oh=;dhOA=V7E}98CO<1Lp3*+&0^`P zs}2;DZ15cuT($%cwznqmtTvCvzazAVu5Ub5YVn#Oo1X|&MsVvz8c5iwRi43-d3T%tMhcK#ke{i-MYad@M~0B_p`Iq){RLadp-6!peP^OYHTq~^vM zqTr5=CMAw|k3QxxiH;`*;@GOl(PXrt(y@7xo$)a3Fq4_xRM_3+44!#E zO-YL^m*@}MVI$5PM|N8Z2kt-smM>Jj@Dkg5%`lYidMIbt4v=Miqj4-sEE z)1*5VCqF1I{KZVw`U0Wa!+)|uiOM|=gM65??+k|{E6%76MqT>T+;z{*&^5Q9ikL2D zN2}U$UY)=rIyUnWo=yQ@55#sCZeAC}cQA(tg5ZhqLtu*z>4}mbfoZ>JOj-|a2fR$L zQ(7N$spJL_BHb6Bf%ieO10~pQX%@^WKmQOQNOUe4h|M}XOTRL`^QVpN$MjJ7t+UdP zDdzcK3e7_fdv)PPR>O|-`kVC1_O08_WGcQXj*W5d?}3yE?-fZ_@mE-zcq6^Mn49!; zDDcus*@4dFIyZ%_d3*MO=kk3$MQ^?zaDR1-o<<7T=;`8 zz2(w>U9IQ+pZ<*B;4dE@LnlF7YwNG>la#rQ@mC4u@@0_pf40+<&t)+9(YOgCP9(aJ z5v7SRi(y4;fWR)oHRxf2|Va=?P zXq&7GtTYd+3U{Wm5?#e7gDwz#OFbvHL4Jq{BGhNYzh|U!1$_WEJef&NKDD9)*$d+e ztXF1-rvO5OBm{g9Mo8x?^YB;J|G*~3m@2y%Fyx6eb*O^lW- z`JUL?!exvd&SL_w89KoQxw5ZZ}7$FD4s>z`!3R}6vcFf0lWNYjH$#P z<)0DiPN%ASTkjWqlBB;8?RX+X+y>z*$H@l%_-0-}UJ>9l$`=+*lIln9lMi%Q7CK-3 z;bsfk5N?k~;PrMo)_!+-PO&)y-pbaIjn;oSYMM2dWJMX6tsA5>3QNGQII^3->manx z(J+2-G~b34{1^sgxplkf>?@Me476Wwog~$mri{^`b3K0p+sxG4oKSwG zbl!m9DE87k>gd9WK#bURBx%`(=$J!4d*;!0&q;LW82;wX{}KbPAZtt86v(tum_1hN z0{g%T0|c(PaSb+NAF^JX;-?=e$Lm4PAi|v%(9uXMU>IbAlv*f{Ye3USUIkK`^A=Vn zd))fSFUex3D@nsdx6-@cfO1%yfr4+0B!uZ)cHCJdZNcsl%q9;#%k@1jh9TGHRnH2(ef0~sB(`82IC_71#zbg=NL$r=_9UD-~ z8c54_zA@jEhkJpL?U`$p&|XF}OpRvr`~}+^BYBtiFB1!;FX;a3=7jkFSET)41C@V` zxhfS)O-$jRJ|R}CL{=N{{^0~c8WuLOC?`>JKmFGi?dlfss4Y^AAtV#FoLvWoHsEeg zAAOc+PXl@WoSOOu_6Tz~K=>OK@KL#^re(1oPrhcen@+#ouGG|g(;A5(SVuE~rp$?# zR$o(46m}O~QtU{!N-s}RfYh+?*m9v#w@;=DEXI;!CEf0bHEgI<~T7&VnIvtG%o=s@3c zG1AT(J>!bph%Z1^xT_aO>@%jWnTW=8Z^2k0?aJ(8R5VA}H+mDh>$b9ua{)I5X9$%b z&O%F;3AIW&9j3=Q1#8uL%4_2mc3xX2AdzYJi%#Q#PEY3lk<#u=Pc?EJ7qt4WZX)bH481F8hwMr^9C^N8KUiWIgcVa=V` z4_7By=0Fkq>M6N?Bis+nc$YOqN4Qs@KDdQCy0TTi;SQ7^#<wi9E4T)##ZVvS(SK4#6j^QjHIUh<0_ZD2Yl+t?Z2;4zA zvI<(>jLvJae#sIA`qHl0lnkcU$>Rrkcnp{E;VZwW`cucIIWi{hftjEx-7>xXWRsa4VH(CCyuleyG8a+wOY8l*y>n@ zxZb}o=p9lR)9N^FKfkvPH-t2{qDE=hG8Z!`JO>6aJ^hKJVyIV&qGo*YSpoU(d)&OE ziv2#o`&W>(IK~sH{_5aPL;qcn{2%Gae+r5G4yMl5U)EB>ZidEo|F@f)70WN%Pxo`= zQ+U-W9}iLlF=`VeGD0*EpI!(lVJHy(%9yFZkS_GMSF?J*$bq+2vW37rwn;9?9%g(Jhwc<`lHvf6@SfnQaA&aF=los z0>hw9*P}3mWaZ|N5+NXIqz#8EtCtYf-szHPI`%!HhjmeCnZCim3$IX?5Il%muqrPr zyUS#WRB(?RNxImUZHdS&sF8%5wkd0RIb*O#0HH zeH~m^Rxe1;4d(~&pWGyPBxAr}E(wVwlmCs*uyeB2mcsCT%kwX|8&Pygda=T}x{%^7 z)5lE5jl0|DKd|4N*_!(ZLrDL5Lp&WjO7B($n9!_R3H(B$7*D zLV}bNCevduAk2pJfxjpEUCw;q$yK=X-gH^$2f}NQyl(9ymTq>xq!x0a7-EitRR3OY zOYS2Qh?{_J_zKEI!g0gz1B=_K4TABrliLu6nr-`w~g2#zb zh7qeBbkWznjeGKNgUS8^^w)uLv*jd8eH~cG-wMN+{*42Z{m(E{)>K7O{rLflN(vC~ zRcceKP!kd)80=8ttH@14>_q|L&x0K^N0Ty{9~+c>m0S<$R@e11>wu&=*Uc^^`dE9RnW+)N$re2(N@%&3A?!JdI?Vx;X=8&1+=;krE8o%t z32Gi2=|qi=F?kmSo19LqgEPC5kGeJ5+<3TpUXV3Yik_6(^;SJw=Cz`dq(LN)F9G<$ za-aTiEiE}H(a>WITnJ+qG$3eCqrKgXFRiIv=@1C4zGNV!+ z{{7_AulEPXdR+~$sJ+yHA73j_w^4>UHZFnK$xsp}YtpklHa57+9!NfhOuU7m4@WQp z5_qb`)p|6atW#^b;KIj?8mWxF(!eN<#8h=Ohzw&bagGAS4;O^;d-~#Ct0*gpp_4&( ztwlS2Jf#9i>=e5+X8QSy**-JE&6{$GlkjNzNJY;K5&h|iDT-6%4@g;*JK&oA8auCovoA0+S(t~|vpG$yI+;aKSa{{Y(Tnm{ zzWuo^wgB?@?S9oKub=|NZNEDc;5v@IL*DBqaMkgn@z+IeaE^&%fZ0ZGLFYEubRxP0WG`S| zRCRXWt+ArtBMCRqB725odpDu(qdG;jez|6*MZE_Ml<4ehK_$06#r3*=zC9q}YtZ*S zBEb2?=5|Tt;&QV^qXpaf?<;2>07JVaR^L9-|MG6y=U9k{8-^iS4-l_D(;~l=zLoq% zVw05cIVj1qTLpYcQH0wS1yQ47L4OoP;otb02V!HGZhPnzw`@TRACZZ_pfB#ez4wObPJYcc%W>L8Z*`$ZPypyFuHJRW>NAha3z?^PfHsbP*-XPPq|`h} zljm&0NB7EFFgWo%0qK`TAhp220MRLHof1zNXAP6At4n#(ts2F+B`SaIKOHzEBmCJ3 z$7Z&kYcKWH&T!=#s5C8C_UMQ4F^CFeacQ{e0bG?p5J~*mOvg>zy_C{A4sbf!JT+JK z>9kMi=5@{1To&ILA)1wwVpOJ&%@yfuRwC9cD2`0CmsURi5pr2nYb6oBY&EmL9Gd@i zj{F}h!T*#a<@6mKzogszCSUCq5pxGeCq-w2|M>ZzLft79&A-&!AH~#ER1?Z=ZavC0 z)V05~!^Nl{E5wrkBLnrxLoO|AG&hoOa6AV2{KWL#X*UItj_W`}DEbIUxa;huN0S#` zUtXHi+cPyg-=Gad`2Aw-HWO*;`_&j9B3GHLy(f^@Do@Wu*5{FANC+>M*e6(YAz4k^ zcb_n4oJgrykBM1T!VN(2`&(rNBh+UcE}oL@A~Fj}xf0|qtJK?WzUk{t=M15p!)i7k zM!`qg^o;xR*VM49 zcY_1Yv0?~;V7`h7c&Rj;yapzw2+H%~-AhagWAfI0U`2d7$SXt=@8SEV_hpyni~8B| zmy7w?04R$7leh>WYSu8)oxD`88>7l=AWWJmm9iWfRO z!Aa*kd7^Z-3sEIny|bs9?8<1f)B$Xboi69*|j5E?lMH6PhhFTepWbjvh*7 zJEKyr89j`X>+v6k1O$NS-`gI;mQ(}DQdT*FCIIppRtRJd2|J?qHPGQut66-~F>RWs=TMIYl6K=k7`n1c%*gtLMgJM2|D;Hc|HNidlC>-nKm5q2 zBXyM)6euzXE&_r%C06K*fES5`6h-_u>4PZs^`^{bxR?=s!7Ld0`}aJ?Z6)7x1^ zt3Yi`DVtZ*({C;&E-sJ1W@dK29of-B1lIm)MV4F?HkZ_3t|LrpIuG~IZdWO@(2S6& zB2jA7qiiGi%HO2fU5|yY#aC<57DNc7T%q9L>B_Qh@v#)x(?}*zr1f4C4p8>~v2JFR z8=g|BIpG$W)QEc#GV1A}_(>v&=KTqZbfm)rqdM>}3n%;mv2z*|8%@%u)nQWi>X=%m?>Thn;V**6wQEj#$rU&_?y|xoCLe4=2`e&7P16L7LluN^#&f1#Gsf<{` z>33Bc8LbllJfhhAR?d7*ej*Rty)DHwVG)3$&{XFKdG?O-C=-L9DG$*)_*hQicm`!o zib(R-F%e@mD*&V`$#MCK=$95r$}E<4%o6EHLxM0&K$=;Z#6Ag0Tcl9i+g`$Pcz&tP zgds)TewipwlXh0T)!e~d+ES8zuwFIChK+c4;{!RC4P(|E4$^#0V*HhXG80C;ZD-no z!u+uQ;GCpm^iAW&odDVeo+LJU6qc$4+CJ6b6T&Y^K3(O_bN{@A{&*c6>f6y@EJ+34 zscmnr_m{V`e8HdZ>xs*=g6DK)q2H5Xew?8h;k{)KBl;fO@c_1uRV>l#Xr+^vzgsub zMUo8k!cQ>m1BnO>TQ<)|oBHVATk|}^c&`sg>V5)u-}xK*TOg%E__w<*=|;?? z!WptKGk*fFIEE-G&d8-jh%~oau#B1T9hDK;1a*op&z+MxJbO!Bz8~+V&p-f8KYw!B zIC4g_&BzWI98tBn?!7pt4|{3tm@l+K-O>Jq08C6x(uA)nuJ22n`meK;#J`UK0b>(e z2jhQ{rY;qcOyNJR9qioLiRT51gfXchi2#J*wD3g+AeK>lm_<>4jHCC>*)lfiQzGtl zPjhB%U5c@-(o}k!hiTtqIJQXHiBc8W8yVkYFSuV_I(oJ|U2@*IxKB1*8gJCSs|PS+EIlo~NEbD+RJ^T1 z@{_k(?!kjYU~8W&!;k1=Q+R-PDVW#EYa(xBJ2s8GKOk#QR92^EQ_p-?j2lBlArQgT z0RzL+zbx-Y>6^EYF-3F8`Z*qwIi_-B5ntw#~M}Q)kE% z@aDhS7%)rc#~=3b3TW~c_O8u!RnVEE10YdEBa!5@&)?!J0B{!Sg}Qh$2`7bZR_atZ zV0Nl8TBf4BfJ*2p_Xw+h;rK@{unC5$0%X}1U?=9!fc2j_qu13bL+5_?jg+f$u%)ZbkVg2a`{ZwQCdJhq%STYsK*R*aQKU z=lOv?*JBD5wQvdQIObh!v>HG3T&>vIWiT?@cp$SwbDoV(?STo3x^DR4Yq=9@L5NnN z_C?fdf!HDWyv(?Uw={r`jtv_67bQ5WLFEsf@p!P3pKvnKh_D}X@WTX^xml)D^Sj8Er?RRo2GLWxu`-Bsc ztZ*OU?k$jdB|C6uJtJ#yFm{8!oAQj<0X}2I(9uuw#fiv5bdF$ZBOl@h<#V401H;_` zu5-9V`$k1Mk44+9|F}wIIjra8>7jLUQF|q zIi8JCWez)_hj3aHBMn6(scZd9q#I<3MZzv}Yjc^t_gtGunP?|mAs+s!nGtNlDQ?ZO zgtG2b3s#J8Wh#0z1E|n_(y*F5-s7_LM0Rj3atDhs4HqmZc|?8LDFFu}YWZ}^8D`Yi z`AgJWbQ)dK(Qn?%Z=YDi#f%pLZu_kRnLrC2Qu|V>iD=z=8Y%}YY=g8bb~&dj;h7(T zPhji+7=m2hP~Xw`%Ma7o#?jo#+{IY&YkSeg^os)9>3?ZB z|Bt1-;uj0%|M_9k;#6c+)a)0oA}8+=h^#A_o=QR@jX^|y`YIR9V8ppGX>)FS%X>eB zD&v$!{eebt&-}u8z2t`KZLno>+UPceqXzuZe2u zHYz7U9}_Sw2da@ugQjBJCp(MNp~mVSk>b9nN*8UE`)88xXr88KXWmTa;FKKrd{Zy> zqL}@fo*7-ImF(Ad!5W7Z#;QLsABck0s8aWQohc@PmX3TK#f$`734%ifVd{M!J1;%A z)qjpf=kxPgv5NpUuUyc=C%MzLufCgTEFXQawxJo)rv4xG&{TKfV;V#ggkxefi`{sS zX+NQ8yc>qcdU zUuLM~0x32S& z|NdQ-wE6O{{U-(dCn@}Ty2i=)pJeb-?bP+BGRkLHp&;`Vup!}`pJdth`04rFPy;$a zkU=wWy;P$BMzf+0DM(IbYh`Dk*60l?3LAU;z3I^tHbXtB5H$Op=VEPL8!mydG>$T@S9;?^}mmDK)+x*TCN_Z`%SG{Hv0;P*>(P@^xe2%mUldaqF9$ zG+Oq<5)pQ+V4%%R>bK|~veGY4T&ALmnT@W*I)aT~2(zk>&L9PVG9&;LdC%xAUA`gC4KOGLHiqxbxMTA^!+T*7G;rF z;7ZNc3t&xd!^{e|E(7-FHu@!VrWQ8CB=pP;#jG#yi6(!BfCV(rrY~7D)0vCp_Ra@9 zSuu)to5ArdCAYX}MU&4u6}*{oe=Ipe09Z7|z41Y&lh`olz{lmO>wZpnwx+x4!~7@37|N~@wr=Tqf*+}4H{7GE*BvptMyhTAwu?VYEaj~BiJm7 zQw98FiwJTx0`qY8Y+268mkV#!grHt3S_69w?1TRi-P^2iNv=ajmQIkoX7OkY=Cpvk zs;-Gv?R(YEAb(%@0tNz)_r8bwE zPh75RwYWr?wPZ0rkG<5WwX|fjqCBP4^etDs4{ZF9+|c#@Y60nB)I_U5Z$FYe=SLXI zn}7T@%LLA>*fWf9X?vSD3tpXSEk%H{*`ZmRik>=se}`HWHKL|HHiXovNzTS~-4e?1 zgVLCWv@)(($B*C3rGn`N#nzUyVrSw>OiD;4`i15QHhdicm}A(CP)UO>PO(3!(=v-x zrsKIUCbJMb>=IB}20b{69IdU(vQ%Ti0Zm?VLQoL++HK(G%^P{wuH;|@Cn7Ncybw%D zDhWh??1)6j5j7RbEy-{rVefvMhV|Su8n9`m>4LU^TanMzUIy>S&UbSKJW56C(K5NX z*Ypzh@KaMD=ank_G}Di5SaDTz3@Ze;5$pkK$7Pz?SBj&njRD4so5e0Msp_p}|D8aq zDvU@2s@T_?)?f5XEWS3j_%6%AK-4aXU5!Xzk{fL%mI~AYWP?q}8X}}ZV3ZzKLFvmm zOHWR3OY0l)pZ#y@qGPkjS~mGj&J8uJnU<~+n?qrBTsf>8jN~i17c~Ry=4wM6YrgqZ@h`8`?iL&$8#fYrt7MinX)gEl7Sh_TS zOW{AyVh%SzW|QYBJo8iEVrA!yL(Lm&j6GB0|c?~N{~?Qyj^qjbs>E~lpWo!q!lNwfr(DPZVe zaazh2J{{o=*AQ|Wxz*!pBwYx_9+G$12{5G3V!0F=yB=tPa zEgh47ryFGZc;E%A{m4lJoik6@^k%E0{99pIL1gE;NqT!1dl5UV>RkEWtP)3f_5hG6 zs%M}qX?DNaI+4HN*-wn`HOjlEz0}K{o0fG~_%%c8sDq)6Z2)6msormgjhmtdzv;Hy{BwHXKp&3Bf9paw+J4r-E zBoWmEr6%r3t?F`38eCyr+)`In1&qS9`gcQ|rHBP`LlCl=_x?ck0lISju@hW*d~EQ) zU2sgl#~^(ye%SeZR%gZ=&?1ZxeU1v@44;`}yi^j0*Efg1lIFcC*xEj}Y~k|(I&}7z zXXi2xe>mc_cC`K=v8&-5p%=m=z47Z6HQUzNi5=oCeJ$-Bo#B0=i}CemYbux7I~B*e z3hSneMn$KHNXf4;wr5fkuA+)IzWs8gJ%$o0Q^vfnXQLnABJW;NRN(83Dcbu9dLnvo z6mweq2@yPK%0|R9vT)B$&|S!QO6f(~J^Z+b`G(j1;HKOq_fG$-36zvBI$`hvA94i( zGPGVo&Y%nRsodWyzn0bD0VZlG?=0M23Mc2V1_7>R^3`|z_5B;}JnIp0FI}9XNKJ^o z7xYKOFdYxX?UW~4PC!hVz86aP+dsOkBA(sz3J+6$KL`SU4tRwWnnCQN z&+C92x#?WNBaxf?Q^Q}@QD5rC=@aj8SIg;(QG06k^C5bZFwmiAyFl|qPX^@e2*J%m z1Fu_Jk5oZEB&%YN54Y8;?#l#GYHr->Q>-?72QSIc+Gx^C%;!$ezH>t<=o$&#w*Y_Y7=|PH*+o57yb>b&zpTUQv)0raRzrkL=hA-Z(10vNYDiT487% zzp2zr4ujA#rQ;Hxh7moX(VldzylrhKvPnl9Fb?LCt#|==!=?2aiZ`$Wx*^Lv@5r_ySpQ_vQ{h2_>I`Wd|GjXY?!>=X8v}wmTc+Nqi-?ln zQa28}pDfvjpheaM2>AYDC2x`+&QYH(jGqHDYLi}w55O5^e9s=Ui^hQ~xG*&TU8I}Y zeH~7!$!=a+1_RZe{6G$BICI6R2PKE{gYW8_ss!VY*4uXw8`?o>p=fC>n&DGzxJ$&w zoIxdMA4I503p(>m9*FnFeEJQ5Nd^WK*>I_79(IA)e#hr2qZ8Y!RMcbS}R z(2;{C#FXUv_o-0C=w18S!7fh!MXAN-iF!Oq4^n#Q{ktGsqj0nd~}H&v#Brb}6cd=q75>E;O8p?6a;CR4FiN zxyB?rmw)!Kxrh&7DbPei$lj)r+fDY&=qH+ zKX`VtQ=2fc?BwarW+heGX&C!Qk;F;mEuPC*8 z0Tv0h2v&J#wCU_0q-Wq9SHLOvx@F!QQQN+qN^-r-OgGRYhpu%J-L~SiU7o@0&q6t( zxtimUlrTO)Zk6SnXsm8l$`GW-ZHKNo1a}<%U4Ng z(k8=jTPjoZZ%$(tdr@17t|MV8uhdF4s|HbPO)SF`++T%r=cNRx&$BkW7|$)u%Anm; zGOv)GmwW*J5DzeI8Vk_HZ4v?Mmz$vpL#M%+vyeiW;BK6w|_S0 z{pqGZxI%-~r~b@=F#^|^+pwQE*qc8+b7!b}A$8OjqA%6=i?yI;3BcDP1xU_UVYa?^ z3o-aYI`X%p!w>>cRe_3rtp}@f1d&AQZ_2eeB;1_+9(`jpC22z+w%(kh6G3}Rz&~U_ z5_LxI)7~`nP=ZdVO&`rUP8`b-t^Vqi;Yt~Ckxauk>cj@W0v=E}$00?Jq(sxBcQHKc z(W}uAA*+e%Q)ybLANOe7gb4w^eX#gI%i56{GJz6NVMA{tQ! z3-}Mdjxfy6C#;%_-{5h|d0xP0YQ!qQ^uV*Y&_F9pP!A;qx#0w*)&xPF0?%{;8t+uWA#vrZ|CBD0wz@?M=ge(^#$y< zIEBv1wmL`NKAe&)7@UC9H^t0E0$}Odd>u4cQGdKdlfCn0`goK~uQ0xrP*{VJ*TjR; za16!CM>-msM@KcxU|HsEGgn{v>uy1R?slG}XL5)*rLTNHdYowI*;qe~TZH z|1Ez0TXrc@khWdmgZJKV6+aJVlFsv5z~PhdC>=^tL5BC|3tyMuXSdsEC3L0qw60S>ecX zi&`-rZ=GqxfrH{+JvkuOY?{d?;HZmv z2@4+ep(g+yG6W%NrdJe2%miVnb8nX{yXK>?5DC#GA6IIXU-`!?8+xm(8r)Vi;=?g! zmOK)$jQv~nakv-|`0=Z`-Ir1%2q8~>T7-k=DyG^Rjk7|!y(QO&)cBEKdBrv~E$7_y z&?K!6DP;Qr_0fbbj86^W(4M{lqGx6Mb;`H;>IDqqGG@3I+oZg_)nb=k|ItMkuX2Y@ zYzDmMV~3{y43}y%IT+)nBCIzi^Cr1gEfyrjrQ7gXAmE$4Hj(&CuyWXjDrkV~uP>9T zCX5cXn!1oEjO!P#71iyGh#q+8qrD8)h#wE#x;bz+a^sQyAntO(UhxFVUqR^dux8 zOsN=Nzw5imC7U~@t^#gLo}j#vge3C6o(%0V5<0d~1qlxe4%yD~{EDGzZ40)ZIXytB zg3^NFa(98n#OwV!DJqgy;xitYp)Q(W$(J0<0Xr5DHFYO$zuUkC(4}Zv2uB`O@_TR7 zG3Ehp!K;YLl%2&*oz3`{p|hj`Bzd(@BMVVA2ruucGsD0mj`^a1Qw3WsT7_z)c_<&j zvy(u5yod#@5~XT5KRPqKKp*2Q`rN!6gd#Wdh9;806oaWGi6~pB78)SYEhIYZDo*^} z-93olUg^Vh29G^}wQ8p(BK0(<7R6(8><}Bia@h%62o%ONE`~PiaIdfy!HGUm0GZdJ z&^aK^@JP|8YL`L(zI6Y#c%Q{6*APf`DU#$22PjfSP@T4xKHW~A(vL$pvf+~p{QLdx^j4sUA;?IZ zVWID3OA_VkZ_3?~Yy1yn?4Ev^r}1~c!n9;Z7pRn*D$^J%4QyWNvPkKF5{{bMBefvT zFZu|hco!0Me-__dyLe6S!}>m?I-x%1{Zr3_Qi!(T@)hh%zBE1my2AWl^XY#v%TSX3 z;?rn8Chf+?>SQ|v8gl$*f5dpix{i;?651ezum2tQCU`9sKxuZG2A9o(M~}G`*q2m#iW# z?0fJS+j_XxOk1fb+Nx6$rZqhg!x}eO!3nMy6a@4doqY&?(c`8$^B?0InG4T&{mu*3 zpcYaf)z__Dgr%+6UFYYXSu(oRrPYGviL~FKc{0X%tnt+9slAC|W0F8l^(@8qDXks~ zOZgs?O-6e-12Q>w5d?|E$P&oyah^mqd(Cu#uNtjCpp&F}G&biuW49LGkFCDEYe0S* zo-W_}-yR$%Z^03i8{&R&oU1BbY9$ER3RR5LjocL5er=CclJwCH>M6ge$R*Wi zd3zUoE*~?a1owq&DiT2#_Q)~tr$;Q=BJrMHrG@j3^J=#U3 zmd)ubgUu(9g(qmjx~7+!$9^%~fpi9$*n=+HfX&<>a}qkD;Ky@piqolGdF>VEX?(!DuO z{=7v}0Y|$@o3c`s^K3&3uMD0T1NMMrgwn$+g{=Tr&IHH@S`Aj4zn z{Mpln$!B->uUYTFe+75e!ee*euX`W%xA&g!-%s-YJ-sJP*(~t=44RSN6K5u7}a9;40`KN#fg#N>-s?YE6*qS9zkP2*=!a%O&aJ4>)JR>{O6n)(@ z$2mBny!kLLgnPgrX&!fTVnSXLEY}ZR{fLL4Jw;uI;)DhJJ<;%5&X%lg5)mYwwyHK=W zS`3yPe&Ncy_OA!;HvQV1TI3}7jib>EhqT!PZIoDg_Wm4OraFX|nGmCsXj|{&g!(_; z;(_uG68gxxy{T#wPPuETHggw6G8nCyc`=x89;arkuB%&7rbL&VzCm|jQFg8me78tu z2l-K|IsFgX@am)(c=1IWYX5fhCjIZ&9MBs9(Qg*`U5T`@H2xqzQxj`1bK#2gmDn2=yI!n0*6A2{JuA3~uX7 zsXocdxHHMV^?dsW+s}S8j8Mq!pjB8=NytY%-MEgx+HnavDcotwYmA{J%RzlLhZ{?t-W6 zr-JA(qw%OVMtv?N?75aid-cY`ZJLFT`fh-fZ0()^P(3wyQ`wDHG$9cUmEr^~!;iGV z#ukG&nXeLHarXD$=({)#Es!?%=2*`or!FE4N6XWEo>>`}ocE?kmQb+2JP;-))sn0V zoC6&be>gf!XD#yJO`FCF(Ts|~ zUbO#y44!V-U|&SEr1#r^_fJ1Ql3isjfCVAfvNga7OBJG^YAP`r8d{))?5D{xm+FB~ z*>D&s+(Z(o*)gx|EpJAYlnk@A&=zpkYvak{W~Y}~8M_p7Uu1bY#7m{Mq-#4-xw3lH z{(8=+O+WrU)^C(;qRm%NiKnO+<0W6EF|>n#fw%OKxr!@d%dWHOmv~#M2{eIlxaRW% z;k6v=< zZ{5W}@ik?!__~T?0QX0xX^^}Isw8Ey-yXCwQkS!)xT-ZdV6A`#HdMECf78X){%6)7 znLSKwqK}!hdkVk2QjAZ?j%&Id%WY~^<$ntL2p8J;eq$VCp%Cg{)oW&%Z3vp6ihm9D zIlPC#zVE^>62fNwZqsk)mt+E#rrU@%4vWtkYK)Qv$a*}$T2ZJCtTFI`tuLb*7j`!^eR`?d9h2TjF-h2Yr+ z){T|kWBNyrA5vpZE{Ez_)pG7Zf%QXqW)R@(<_0oOP?cwg&gib`IjKTzN_R*5A)G>_ z1r#qXr5i)U$$wv(kXfodOg=h$UZk78c@50K^wOMcKCx26s{q}vdOioj1n!&if0FRY zSi@$}gn4KW;2<;+lY?&>M6GNrRtfUTEIzqih@yLMQA2(17m3)hLTa@zlj=oHqaCG5 zYg71D3e}v36DjH++<*=MXgd2q&dP^6f&^KctfDe(SQrvy5JXC@BG#|N_^XbfxhcV) z>KV$aMxcL*ISc0|0;+<2ix7U7xq8m48=~j!a`g?SzE5}(Y;hxqEHJg_+qB99$}py7 z*ZPXL?FKLA>0uVicvq3okpoLZE#OG@fv^+k0{35pf`XdVT)1< z#mV4mcikkivZcE(=0rgfv&#+yZJrAOX&VDL(}Zx8@&$yi4Y1kmEK&uL<}ZqWr05mr zcSwaqH=squnLs+UCn@yp#WNQuIv$~B*sN_NAACD>N3k_$E(j~}Uvqda!_ zZcu7UrsR_q-P2YTrg|lijt8kyqL>T@ab#-a7i>%#*eoxFfgx(FoPa(y1nDI{z#Pz^ zfF~)6RBc?#ivEF<@XVD*#9r^r-;*<^(tE%UtWw^oom83;$5d{UoUbmAP(3Z)14YTK zMXQ#mz9yw>*8D^82vL^|%lyo|ZiQPd&{<*wCZI%up=wadl~C~cRJ!=Hjc&F)FNlnd zgNI|iSIMyqh=qV(z+HbldU4}!sqMs1R?t*RV!S*WW>qW_GF4NJ&vb-{2sJjiTIpL; z{bC@V&EhO|>GuDv7`%$kO<-P@^VI+y zl0tXGm|eISy)fiY3m8_Yaz>`Q=B(Yi8EH71{wfM*8ziS3BIju?26ujw==Xh4x5rH71h?Z859IWq(i#9 zLt0wt?(QBsL(q4yCv&g4t0jJvu^@FtJJk`8YXb{{(OdTS%rGxnPR)xY#6=?AWjD5M2n z5GZ@@ulO|JN34J-2y*-Nh@6|?RkFHwSj$e}p}mbc3Y}*el{O31RU0Z_E48@5O~5n;kDJy}a$x&Lc;27DTvAd@s^9>IA@$q{m6K?eZqOJGKpgCT!Zhld>#d^DAK+MDP}|3h zZ{i!ENw;mW62Pq^|FY#w?@8U6Nvjgi(sKW}&uvgjz0YIS>%Sxk1`5 z`qk`C2*bWd|0I4L=_~s(^2F$Bv7OTjo*G+gBD=Rq-~$7t{Bo|mmck(d6ywQ*UbIjkS>qtkH~Zs(sq zEYNB4xxdYmy+G=${gOjGGfSQQLi1D*{&en*3{wyd7U3M)y^FX(+d)eFi?9oMy@64c zwL?!q#*eJ$eayb4lc!B$W%M4B$4dH>9eFXwjfk5U@}6vXOWDiiLMYP3^VYlG$yDjaC({9tyL4NxPb{x=ADdJ7Bl5EHzU6h-Cbke zwi+34LGVF=G%>d5Q7C>n!)%!LT`UZ0v^YN1WrcjC(pS!&vek-SK#kj^EL9!l?TvY% zOkz%!#5Cf^2JFrvNeU5ZL1_aI(M~e4?~kId$T!A@Z$?f40q#~5HuElkRMQV+6r0>J zK9y=%I^m-_xwRNyO<2Zq-0W6!frE$jT$C3Qi3d>0911QPc`Ky6`~Y<)?mMy*u`nz8 z={b()Z;8DqbWJ?MdOsaF6Zn)$d>DQpRHM~bD3cq=Rw_fzWpiwtJFY`BF}hTFCeh+C zs-4A}MCP}`EInNzh3hRoZ6L1a`J7}T&wh9#HItmHBCRwefpQ97*u{--QH=5>MSZud zv_%DacJS+lsxlJ0q=40vs-8P$Q$_Pt)JM=)|1dcFO&JWY8KwhiP$a&Ua*Z z$BTW#lu4QZna#vZECq#Q?Up_(@`0#(@~0?mG{qA#^rZDq^&6T=pbGL8nU?BY-TwKE zPmMqhP_w?q1B~|43T5=Hl(Bi-+{yY;Acv4i9u}oWC+@^i*}l}=dg`Y~E%dTn;rqj5 z&3pLFHjC62jcxW_a@Jj2Ce%eToCB!6OV*6I0!XF9Hq7orpm-RpizSSHx890&_kCQ% z$cKVw-`WnDvv5Lq?L!qGDcUPtgmotX=C`~Smjg&oM5V?}gAzL%WkRwLmNZyrCbKwC zcsUD3O0ruLr%s`B5W)IYjzLTXcAqinas75T_j&1_m!m!^ORvk6_bYvK||DIVE@IUjWQ z0dQ(H9=a-c`@{Q=uj?JC8g`r$a>)gR#=2%vuea5B_BAp;*QX&I;N?>jHYFR=q?8sq zatBJBYX`tr1BQxIgACJ==*ivk$UjW^Maod6-=SzI3MMUbCqu!3wVHt!Be?M@)2aK+$Rv(?iH18-}e+rDznPRv< zi!{-5NNHE)eqVEeYl>F5S{6w^8L$0p7l|M;(^c+Ei|{V7!!8;xiDx@QK4Pl8Iel7N z*9%$ISyQPK_+5tc2c9jhX%sfIOCZf-E%K9X7Z6N0Nvp!~v(KAZvWnaHK^SQSragIF zVIC_7tGTXeU(TRqj?owTmj{SXNtf7;9evoBURMB5R`8R1$@$}FCS%ugA{4igxOhRi z*q_y$&&!mHF1$S}2279&m0^nFxDV#WvV&?Pphq(craPjcBtveg0Nqdm9tXL4lN{t= z?BLepVnp$U5KskjvVX-GjEf=M3mOTZb|Z$Hp*yytey0C^{cH*v>gqF&-j?gcEj4)l)cdGBmB(^HrSe_)qzf z+TZ^Yo4|GWz=Oi3m`r(hV`iZHb_mu63g(JXPMW4p9JhL_(tg+XQnmR0&52UUA|nZI zvjwOx(fNtZ`8!#|4$7GoJPQ`;T?hKOi`^`kFOyX;C4KfC(U-(CX?Qh2!RTe!4raMP zjLaC7qL_tJ?^0!T9ibZe!m-x!u7o%2dHK{uYZ~#+vERAv-G-MQeYQ*~DILuFpu02u z(Qc)=bHqb4{fs+hdKa5etlX z3EW#vlbEZmWT>X{3WbgW)8~u=8IGuRc<=?KoDXg5V`jf%i^Ai`Cd9=&FH6d|N9uJl z>QhxtW_{}H10BF}GQNitk~V=GnB%NI1Xv-6-OeaI&Amg0s{4i4;HhP$6oc(L-}yHt zej63({`5VLSoIef7D3Z9BA5x<9$^x?PhV=6A@Nu=QiJo@*o?M@*6-UA@EdV@bQCR< z9>{N%eK;Y#U-@XDBBCT^j=?<|y|lsAWrXsf`t%4VT{)63oxQe^u_5NuOq{rsrRd}Z zOx&OldRtR4leEX#r$9`gPJtbHccH!JgZK&3x`tJ<_{kv)E?$LhZ?brv`Cc}X%cWC7<@6yqM2O&m(rB`1v-TiqcQmA5n$rbGJ4zs({=R-I%6}*^UQ)wi9WuzW%Ri%&5 zTdd%>+GvADk+4q#3s5qne99`MC)X_#=p1!d?(mcKDW=Efc31Jso)9M49O0OMeP&7~ zIm!vorpxBSbvSiczr^?WP&e&-!3GLxCIaR5?PGeLgwYT;lYu9UE8SwmXR(D?A^s`7 z^F4di(+oHh%$DZjj7F3_-Y9}k^uCKeSC?Jd7h>RZIDZ{wcbh|9w4)p$dmv7|gX1n& zkrYjSso~;~qMMzZUQ5AC+GUvuj@y{4E&&v(+OE-rS^J7iE~Yz1 zCQ9hAI&0X2_H8CKZMqo00MsxtwjvM{`AdSaZ8#Y?5zPI;a+0`JF52!uVwr@5Ufctm zm;5G%gI&utfGa~fv6!jHh9d1r3TYD zEOlrbyFnDl5J%sEO>HErK~WWE6I$_eXp!dbphDf zc;~oWDQylVa=y?q;c>SKzvZ~R(ZE2csFwf@10@zaZxFAYWaV9TFMh(QuqxNhPUav~ zzCkoe8-lM{?vh}kdM6EMCH(eLK3Rt{HsEJ+4fve=xAVq(cUc9fO9g1%zI+QfFOb@0 zePFU(&?Np9w3&xs)ZwPnQniC0%xs8(Hyx{7*Ot51*`9&2^h7@!nmzuF`3pl8ep#Ls z<)nk7ts}`9tGgaVJWC-3w;B~$juY6m+7XgfzjR4I=oV}E9LRGf4@cI>d3z%CYyURI z7lRn11g!D34zI6|26>?CELeIh?cEv_GCCMd5&g<=9-)pe8iXINQ}4IljYsQyfRz|( z<%w=HN4ZOQKJ9e7DOUhjA7A%-xcR%2`@1?U&u}rvqNc_8l9dUT_S`4TKJ;yezIdp} z?qDAfx6IHQ7YlO;EAP%d4U2O7jU`Uh(um!J`hJ_3&mmQez8AqWLQEftYJuMdCj27t zoV#b!c0d8al0j1yveY6)U#kPCh%OfL>P=%WE^LQew^k-QqZ{rjX6PqOd2K7>1^VUB z`&H@+vW=wH0UY>88nXCH@RKCY&?bR%8-53b{;@>|;uzDd5f`Z% zaSC<8OLh|b@ZnBET?My38fV9~ku2cPfcWZl7nW|pkQKfFlp@xRt+K0Tj@gdvVAQXP z?i45RNE4W#Kf0%Pp2=?hESkG}EK557cwn0r1{uWeG53_tb!9bg&R8R_d4s5N0poc- zr>1g0W~1oha&#@_irbqnL)jJ@Z=y7J3fCQ@qlr{6(%rSs2rpkS1QIU^tieJ-xq%nd ze-C=#{@E+Kzb&SJ2KM~9q^4Yk^jyXa#{;P)y`YsFvfzX?%V~r6GciP4eX~$vk{-C? zeipAYsMSp`Z~&-Jc*dt}m-A_w&cnb#~sIdbU{uCayd>nWKDxQ9!%R zTrgS~+>TqXgrN~e2&eeWdPhuHP2*#K1=f^B@UGZBjFq- z;mtKYyul9ZNuq89XEoeSg7^qld5^R}FHpbyRyk1pRPMDO$_Kqi*sp1hk&UpUKc!V! zJZpCQc!)@X+%qOQMP)CU@Qe|=IG@|DZ~o#j>TBFQxH>8rJ#0y`XO9ukvc)kJ6LY3$ zY}{(tri#32!LjVY^exC3Ky)i$NY6v^*>X5y8F65pYYjt^T^X<=zm=)Cr=>dcId>?I zR^0I?)=)|}ak7wG)&Ar#A&60BRp}&NWFPy7zt)yl3aObS?sB8fxfU9ayR{$#%S<#3 zrsbmi#bDSP)@w%iYS%&wyyIB??LJ0Q%aD^!XXYk3)tQt~x_YU?y4KVKl{MJ)KSz&f zV;tJ1smY(dLM6zZXVAWND3L|(W=q~HjA6OkjQ+kx-EuqtaaQQPaa=2_wwuW@G*1>e z_TqB;+1@yuHg}YYpEJL&Sw~jD3Xeb(Wo(-nz6`#gbP7?agYT>j_R%+^h{1>7W&cP{s8epLY9Ky6mU*u*!QBn zI7T~WL-_qj+~Hdpr}qtfjZmD;eI%H0SP~~ifqoD59-q)R9_Z zKr6OeoZT!Za#k5yo&CCmzLbGP*6ggJ@2QPhIY^aMXjVjQ@D+-E#qmAjuL{o@NCUDF zFy)B~$j`rK7Iz$L>_Jl~O?IJu2P3 zlHQ@${Jgcvp`PKu7p;6Fr=4y1?8nJ;=~jls^gx4&_O4+)C-OGc5)L0+R!&uI&qQID zhV&ZQ@+2={Z|2F%WoOu9Ljt}|0r;!e zCBx(uAViqOffibUBOVEH_IlV=57ZQSQ~Te5(wmsO+o_CCNAgCJzZ3ly84J34_Zf#SwQ9q8i41 zE>u$JuO$kQq*W6MDo$Eu?3jJAFUt&>Qy#K{lT-Vx z6=kceU^v`;vBRoFxQED5TL+=>QJ!iaxV^Z2r#%CaaEWgbs1ysT$&~sem&74AEC!;< zcGDH;CENBJ&hfI!@G5ezCK!sXzdB@m#a(q8KeX;U=yl6AujNz z{}huJlo1yL$DlAsi{12aS?CJ*{xuIIV4wf-V6E?L4E!5BWMQ0Zh4uel*xZJ}QQuPE z-u#DdD6hH6`;nVJ>O}8iuWxH>Z2vc>a;iFbm)nrbj$ps$6aa4TjfVZVZr7dK+E_E# z+S`ErJDM9i{HX815lax33Wl(;H~m|sF28cs+hB$%2pjyXgubo5p_%ay3!*?212bxX z@1{$rzY6~DK*{`5@oRm0>(9INQX61!{Ip#NymIM*g~u=D)UFH!NcfQ(AsZXVOPv5) zX?=4bI9>9;>HvTACiBNDt)x;_}tsJousTuWrG- zDUSM9|4|IRSy@PhdB$sAk4b;vRr>Nt@t3OB<#_*dl_7P>FGcFF3-DA?KBW00A<;2=*&`^P8}cEZW!GSO9(+{;-V@ zd%%C8KEDYD$pC#x%zb4bfVJ|kgWcG0-UNZT9@2=R|Wz+H2iJ2A29LV z#Dye7Qn~^KUqOIS)8EGZC9w+k*Sq|}?ze$| zKpJrq7cvL=dV^7%ejE4Cn@aE>Q}b^ELnd#EUUf703IedX{*S;n6P|BELgooxW`$lE z2;lhae}w#VCPR>N+{A=T+qyn;-Jk!Dn2`C1H{l?&Wv&mW{)_(?+|T+JGMPf)s$;=d z5J27Mw}F4!tB`@`mkAnI1_G4%{WjW<(=~4PFy#B)>ubz@;O|2J^F9yq(EB<9e9})4 z{&vv)&j^s`f|tKquM7lG$@pD_AFY;q=hx31Z;lY;$;aa>NbnT| kh{^d0>dn0}#6IV5TMroUdkH8gdhnkj_&0LYo6ArC2O!h?t^fc4 diff --git a/Eureka Server App/eurekaserver/.mvn/wrapper/maven-wrapper.properties b/Eureka Server App/eurekaserver/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/Eureka Server App/eurekaserver/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/Eureka Server App/eurekaserver/mvnw b/Eureka Server App/eurekaserver/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/Eureka Server App/eurekaserver/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Eureka Server App/eurekaserver/mvnw.cmd b/Eureka Server App/eurekaserver/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/Eureka Server App/eurekaserver/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/Eureka Server App/eurekaserver/pom.xml b/Eureka Server App/eurekaserver/pom.xml deleted file mode 100644 index 7d38d40..0000000 --- a/Eureka Server App/eurekaserver/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - 4.0.0 - - com.github.rawsanj - eureka-server - 0.0.1-SNAPSHOT - jar - - eureka-server - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - \ No newline at end of file diff --git a/Eureka Server App/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java b/Eureka Server App/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java deleted file mode 100644 index 1b2a6ba..0000000 --- a/Eureka Server App/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.eurekaserver; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; - -@SpringBootApplication -@EnableEurekaServer -public class EurekaserverApplication { - - public static void main(String[] args) { - SpringApplication.run(EurekaserverApplication.class, args); - } -} diff --git a/Eureka Server App/eurekaserver/src/main/resources/application.properties b/Eureka Server App/eurekaserver/src/main/resources/application.properties deleted file mode 100644 index e69de29..0000000 diff --git a/Eureka Server App/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java b/Eureka Server App/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java deleted file mode 100644 index a20f6a0..0000000 --- a/Eureka Server App/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.eurekaserver; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class EurekaserverApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaDoubts b/EurekaDoubts deleted file mode 100644 index cdf95a2..0000000 --- a/EurekaDoubts +++ /dev/null @@ -1,22 +0,0 @@ -https://github.com/Netflix/eureka/wiki/Understanding-eureka-client-server-communication - - -Fetch Registry -Eureka clients fetches the registry information from the server and caches it locally. - After that, the clients use that information to find other services. - This information is updated periodically (every 30 seconds) by getting the delta updates between the last fetch cycle and the current one. - The delta information is held longer (for about 3 mins) in the server, hence the delta fetches may return the same instances again. -The Eureka client automatically handles the duplicate information. - - -Renews threshold: a switch which controls the "self-preservation mode" of Eureka. If "Renews" is below "Renews threshold", the "self-preservation mode" is on. - -self-preservation mode: - -When the Eureka server comes up, it tries to get all of the instance registry information from a neighboring node. If there is a problem getting the information from a node, the server tries all of the peers before it gives up. If the server is able to successfully get all of the instances, it sets the renewal threshold that it should be receiving based on that information. If any time, the renewals falls below the percent configured for that value (below 85% within 15 mins), the server stops expiring instances to protect the current instance registry information. - -In Netflix, the above safeguard is called as self-preservation mode and is primarily used as a protection in scenarios where there is a network partition between a group of clients and the Eureka Server. In these scenarios, the server tries to protect the information it already has. There may be scenarios in case of a mass outage that this may cause the clients to get the instances that do not exist anymore. The clients must make sure they are resilient to eureka server returning an instance that is non-existent or un-responsive. The best protection in these scenarios is to timeout quickly and try other servers. - - -Prefer IP Address -In some cases, it is preferable for Eureka to advertise the IP Adresses of services rather than the hostname. Set eureka.instance.preferIpAddress to true and when the application registers with eureka, it will use its IP Address rather than its hostname. diff --git a/EurekaServerUsingConfigerver/17BankInCapg/.eclipse-pmd b/EurekaServerUsingConfigerver/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/17BankInCapg/.gitignore b/EurekaServerUsingConfigerver/17BankInCapg/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/17BankInCapg/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingConfigerver/17BankInCapg/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingConfigerver/17BankInCapg/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingConfigerver/17BankInCapg/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingConfigerver/17BankInCapg/mvnw b/EurekaServerUsingConfigerver/17BankInCapg/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingConfigerver/17BankInCapg/mvnw.cmd b/EurekaServerUsingConfigerver/17BankInCapg/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingConfigerver/17BankInCapg/pom.xml b/EurekaServerUsingConfigerver/17BankInCapg/pom.xml deleted file mode 100644 index 69238d4..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/pom.xml +++ /dev/null @@ -1,107 +0,0 @@ - - - 4.0.0 - - com.bankApplication - BankInApp - 0.0.1-SNAPSHOT - jar - - BankInApp - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - 8.0.11 - runtime - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.cloud - spring-cloud-config-client - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - org.springframework.cloud - spring-cloud-starter-feign - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java deleted file mode 100644 index 5b08f95..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; -import org.springframework.cloud.netflix.feign.EnableFeignClients; - -@SpringBootApplication -@EnableEurekaClient -@EnableFeignClients -public class BankApplicationMain { - - public static void main(String[] args) { - SpringApplication.run(BankApplicationMain.class, args); - } - - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java deleted file mode 100644 index f65ebb0..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.bank.Exception; - -public class ManagedException extends Exception { - public ManagedException(String msg) { - - - - super(msg); - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/ATMController.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/ATMController.java deleted file mode 100644 index 06ec203..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/ATMController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.ATMReq; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Bank; -import com.bank.service.IATMService; -import com.bank.service.IBankService; - -//To call Restful services -@RestController -public class ATMController { - - // Injecting properties of IATMService to use its methods - @Autowired - private IATMService atmService; - // Injecting properties of IBankService to use its methods in current class - @Autowired - private IBankService bankService; - - /* - * description : this method will return a atm instance - */ - @PostMapping("/atmCreate") - public ResponseEntity createATM(@RequestBody final ATMReq atm) { - - ATM atm1 = null; - try { - final Optional bank = bankService.getBankDetailsByID(atm.getBankId()); - ATM atm2 = atm.getAtm(); - atm2.setBankId(bank.get().getBankId()); - atm1 = atmService.createATM(atm2); - return new ResponseEntity(atm1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Atm not created", HttpStatus.OK); - } - - } - /* - * description : this method will return a - * String message if money successfully added from bank - */ - - @PostMapping("/addMoneyInAtm") - public ResponseEntity addMoneyToATM(@RequestBody final AddMoneyReq atm) { - - try { - final String str = atmService.addMoneyFromBank(atm); - return new ResponseEntity(str, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money to atm not deposited succesfully!!!", HttpStatus.OK); - } - - } - - /* - * description : this method will return - * String if amount is successfully withdraw - */ - @PostMapping("/withdrawAtm") - public ResponseEntity withdrawFromAtm(@RequestBody final WithrawMoneyReq atm) { - - try { - final Long id = atmService.withrawMoney(atm); - return new ResponseEntity(id, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money from atm not withdrawn", HttpStatus.OK); - } - - } -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/AccountController.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/AccountController.java deleted file mode 100644 index 54cb138..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/AccountController.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountRequest; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IAccountService; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -// To call RestFull services -@RestController -public class AccountController { - - // Injecting properties of IAccountService to use its methods - @Autowired - private IAccountService accountService; - // Injecting properties of ICustomerService to use its methods - @Autowired - private ICustomerService customerService; - // Injecting properties of IBankService to use its methods - @Autowired - private IBankService bankService; - - /* - * description : this method will return a created account and will give - * response in response entity. - */ - @PostMapping("/accountCreate") - public ResponseEntity createAccount(@RequestBody final AccountRequest accountRe) { - Account response = null; - Optional bank; - try { - bank = bankService.getBankDetailsByID(accountRe.getBankId()); - - if (bank.isPresent()) { - Customer cust; - try { - cust = customerService.getCustomerDetails(accountRe.getCustomerId()); - - final Account acc = accountRe.getAccount(); - acc.setBank(bank.get()); - acc.setCustomer(cust); - try { - response = accountService.createAccount(acc); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Account not created", HttpStatus.OK); - } - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bank not present", HttpStatus.OK); - } - } - - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity("id not found", HttpStatus.OK); - } - - } - - /* - * method : getAccount return type : responseEntitiy description : this method - * will return a created account of a given input id - */ - - @GetMapping("/accountDetails/{id}") - public ResponseEntity getAccount(@PathVariable Long id) { - Account acc; - try { - acc = accountService.getAccountDetails(id); - return new ResponseEntity(acc, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("account of given id not found", HttpStatus.OK); - } - - } - - /* - * description : this method will return a success String if money is deposited - * mapping : post - */ - - @PostMapping("/accountDeposit") - public ResponseEntity depositAccount(@RequestBody final AccountTransaction account) { - try { - Long custId = accountService.depositMoney(account); - return new ResponseEntity(custId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - - /* - * description : this method will return a string if amount is withdraw - */ - - @PostMapping("/accountwithdraw") - public ResponseEntity withdrawAccount(@RequestBody final AccountTransaction account) { - try { - Long customerId = accountService.withdrawlMoney(account); - return new ResponseEntity(customerId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/BankController.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/BankController.java deleted file mode 100644 index d3ef533..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.service.IBankService; - -@RestController -@RequestMapping("/bank") -public class BankController { - - @Autowired - private IBankService bankService; - - - /* - * description : this method will return a bank instance - */ - @PostMapping("/bankCreate") - public ResponseEntity createBank(@RequestBody final Bank bank) { - - Bank bank1; - try { - bank1 = bankService.createBank(bank); - return new ResponseEntity(bank1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Bank not Added ", HttpStatus.OK); - } - - } - - /* - * description : this method will return a list of banks - */ - @GetMapping("/getBankDetails") - public ResponseEntity getBankDetails() { - List list; - try { - list = bankService.getBankDetails(); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bankDetailsnotfound", HttpStatus.OK); - } - - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java deleted file mode 100644 index e0d9d2c..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -@RestController -@RequestMapping("/customer") -public class CustomerController { - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - - - /** - * @return the customerService - */ - public ICustomerService getCustomerService() { - return customerService; - } - - /** - * @param customerService the customerService to set - */ - public void setCustomerService(ICustomerService customerService) { - this.customerService = customerService; - } - - /** - * @return the bankService - */ - public IBankService getBankService() { - return bankService; - } - - /** - * @param bankService the bankService to set - */ - public void setBankService(IBankService bankService) { - this.bankService = bankService; - } - - /* description : this method will return a - * created customer - */ - @PostMapping("/customerCreate") - public ResponseEntity createCustomer(@RequestBody final CreateCustomerRequest createCustomerRequest) { - Customer response = null; - Optional bank; - - try { - bank = bankService.getBankDetailsByID(createCustomerRequest.getBankID()); - - if (bank.isPresent()) { - final Customer cust = createCustomerRequest.getCustomer(); - cust.setBank(bank.get()); - - try { - response = customerService.createCustomer(cust); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("faild to create customer", HttpStatus.OK); - } - } - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e1) { - String message = e1.getMessage(); - return new ResponseEntity("unable to fetch bank details by id", HttpStatus.OK); - } - - } - - /* description : this method will return a created customer of - * specified id - */ - @GetMapping("/getCustomerDetails/{id}") - public ResponseEntity getCustomer(@PathVariable final Long id) { - final Customer cust; - try { - cust = customerService.getCustomerDetails(id); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("id not found for customer to get details", HttpStatus.OK); - } - } - - @PutMapping("/{id}/{name}/{userId}") - public ResponseEntity updateCustomer(@PathVariable final Long id,@PathVariable final String name,@PathVariable final String userId) throws CloneNotSupportedException { - final Customer cust; - try { - cust = customerService.updateCustomer(id, name, userId); - System.out.println(">>>>>>>>>>>>>>>>>>>"+cust); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("unable to update data", HttpStatus.OK); - } - } -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java deleted file mode 100644 index f0257c3..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.bank.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateDenominationRequest; -import com.bank.service.IAtmDenoService; -import com.bank.service.IBankDenominationService; -import com.bank.service.IRefServcie; - -@RestController -public class DenominationController { - - @Autowired - private IRefServcie refService; - - @Autowired - private IBankDenominationService bankDenominations; - @Autowired - private IAtmDenoService atmDenominationService; - - - - // this will add denominations to bank and atm - @PostMapping("/addDenominations") - public void addDenomination(@RequestBody CreateDenominationRequest createDenomination) - { - - try { - refService.createDenomination(createDenomination.getList()); - } catch (ManagedException e1) { - - e1.printStackTrace(); - } - try { - bankDenominations.bankDenominationCreate(createDenomination.getList(),createDenomination.getBankId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try { - atmDenominationService.atmDenominationCreate(createDenomination.getList(), createDenomination.getAtmId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java deleted file mode 100644 index 6c017c2..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.TransactionReq; -import com.bank.model.Transaction; -import com.bank.service.ITransactionService; - -@RestController -public class TransactionController { - @Autowired - private ITransactionService transactionService; - - - - // this will return all the statements of account id - @GetMapping("/transactionDetails/{accountId}") - public ResponseEntity retriveTrans(@PathVariable final Long accountId) { - - List list; - try { - list = transactionService.generateTransactionReport( accountId); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity(message, HttpStatus.OK); - } - } - - //this will create statements instance which will be used to tract transactions made by user - - @PostMapping("/transactionCreate") - public ResponseEntity createTransaction(@RequestBody final TransactionReq trans) { - - final Transaction transact =trans.getTransaction(); - final Transaction newtrans; - try { - newtrans = transactionService.createTransaction(transact); - return new ResponseEntity(newtrans, HttpStatus.CREATED); - } catch (ManagedException e) { - // TODO Auto-generated catch block - String msg=e.getMessage(); - return new ResponseEntity(msg, HttpStatus.OK); - } - - - } -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java deleted file mode 100644 index d71f279..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bank.dto; - -import com.bank.model.ATM; - -public class ATMReq { - private Long bankId; - private ATM atm; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - /** - * @param atm the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } -public ATMReq() { - // TODO Auto-generated constructor stub -} -/** - * @param bankId - * @param atm - */ -public ATMReq(Long bankId, ATM atm) { - this.bankId = bankId; - this.atm = atm; -} - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java deleted file mode 100644 index 065159f..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Account; - -public class AccountRequest { - - private long bankId; - private long customerId; - private Account account; - /** - * @return the bankId - */ - public long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the account - */ - public Account getAccount() { - return account; - } - /** - * @param account the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountRequest [bankId=" + bankId + ", customerId=" + customerId + ", account=" + account + "]"; - } - - - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java deleted file mode 100644 index bf9f152..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AccountTransaction { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this. accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java deleted file mode 100644 index 7557450..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AddMoneyReq { - - private Long atmId; - private Long bankId; - private BigDecimal amount; - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java deleted file mode 100644 index 70ea8de..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Customer; - -public class CreateCustomerRequest { - - private Customer customer; - private Long bankID; - - /** - * @return the bankID - */ - public Long getBankID() { - return bankID; - } - /** - * @param bankID the bankID to set - */ - public void setBankID(Long bankID) { - this.bankID = bankID; - } - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - /** - * @param customer the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - /** - * @param customer - * @param bankID - */ - public CreateCustomerRequest(Customer customer, Long bankID) { - super(); - this.customer = customer; - this.bankID = bankID; - } -public CreateCustomerRequest() { - // TODO Auto-generated constructor stub -} -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java deleted file mode 100644 index 50c0153..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; -import java.util.List; - -public class CreateDenominationRequest { - - private List list; - private Long bankId; - private Long atmId; - /** - * @return the list - */ - public List getList() { - return list; - } - /** - * @param list the list to set - */ - public void setList(List list) { - this.list = list; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java deleted file mode 100644 index 427128d..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Transaction; - -public class TransactionReq { - - private Long customerId; - private Long accountId; - private Transaction transaction; - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the transaction - */ - public Transaction getTransaction() { - return transaction; - } - /** - * @param transaction the transaction to set - */ - public void setTransaction(Transaction transaction) { - this.transaction = transaction; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java deleted file mode 100644 index c5af5af..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class WithrawMoneyReq { - private Long accountId; - private BigDecimal amount; - private Long atmId; - private Long customerId; - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/ATM.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/ATM.java deleted file mode 100644 index 419e543..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/ATM.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "atm_info") -@Entity -public class ATM extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "atm_id") - private Long aTMId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "id") - private Long bankId; - - /** - * @return the aTMId - */ - public Long getATMId() { - return aTMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(final Long aTMId) { - this.aTMId = aTMId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - public ATM() { - // TODO Auto-generated constructor stub - } - - - @Override - public String toString() { - return "ATM [ATMId=" + aTMId + ", amount=" + amount + ", bankId=" + bankId + "]"; - } - - /** - * @param aTMId - * @param amount - * @param bankId - */ - public ATM(Long aTMId, BigDecimal amount, Long bankId) { - aTMId = aTMId; - this.amount = amount; - this.bankId = bankId; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java deleted file mode 100644 index d7d7e63..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Ref_ATM_Denm") -@Entity -public class ATMDenomination extends BaseEntity { - @Column(name = "atm_id") - private Long ATMId; - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noofdenomination") - private int noofDenomination; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noofDenomination - */ - public int getNoofDenomination() { - return noofDenomination; - } - - /** - * @param noofDenomination - * the noofDenomination to set - */ - public void setNoofDenomination(int noofDenomination) { - this.noofDenomination = noofDenomination; - } - - public ATMDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param aTMId - * @param denomination - * @param noofDenomination - */ - public ATMDenomination(Long aTMId, BigDecimal denomination, int noofDenomination) { - ATMId = aTMId; - this.denomination = denomination; - this.noofDenomination = noofDenomination; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Account.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Account.java deleted file mode 100644 index 4188d6a..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Account.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Table(name = "account_details") -@Entity -public class Account extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "account_id") - private Long accountId; - @Column(name = "amount") - private BigDecimal amount; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - - public Account() { - - } - - @Override - public String toString() { - return "Account [accountId=" + accountId + ", amount=" + amount + ", customer=" + customer + ", bank=" + bank - + "]"; - } - - /** - * @param accountId - * @param amount - * @param customer - * @param bank - */ - public Account(Long accountId, BigDecimal amount, Customer customer, Bank bank) { - this.accountId = accountId; - this.amount = amount; - this.customer = customer; - this.bank = bank; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/AuditLog.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/AuditLog.java deleted file mode 100644 index 7493632..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/AuditLog.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.model; - -import java.sql.Timestamp; -import java.util.Date; - -public class AuditLog { - - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" + eventDate - + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - /** - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(String eventName, String eventType,Date eventDate, String userId, Object oldValue, - Object newValue) { - super(); - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Bank.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Bank.java deleted file mode 100644 index 495ed86..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -/** - * author Ram Dafale - */ - -@Table(name = "bank_details") -@Entity -public class Bank extends BaseEntity { - - @Id - // @SequenceGenerator(name = "bank_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.AUTO /* , generator = "bank_seq" */) - @Column(name = "id") - private Long bankId; - - @Column(name = "amount") - private BigDecimal amount; - @OneToMany - @JoinColumn(name = "id", referencedColumnName = "id") - List atmList = new ArrayList(); - - public Bank() { - } - - /** - * method name : getBankId() return type : Long decription : it we get all bank - * id - */ - public Long getBankId() { - return bankId; - } - - /** - * method name : setBankId(final Long bankId) method description : it will set - * the bank id - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - /** - * method name : getAmount method description : it will get the total bank - * amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * method name : setAmount method parameters : BigDecimal method description : - * it will set bank amount - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } - - /** - * @param bankId - * @param amount - */ - public Bank(Long bankId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.amount = amount; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java deleted file mode 100644 index a1a0938..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Bank_Denm") -@Entity -public class BankDenomination extends BaseEntity { - - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noOfDenomination") - private int noOfDenomination; - @Column(name = "bank_id") - private Long bankId; - - - - /** - * @return the bankId - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noOfDenomination - */ - public int getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(int noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - public BankDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param bankId - * @param denomination - * @param noOfDenomination - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination) { - - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "BankDenomination [denomination=" + denomination + ", noOfDenomination=" + noOfDenomination + ", bankId=" - + bankId + "]"; - } - - /** - * @param denomination - * @param noOfDenomination - * @param bankId - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination, Long bankId) { - super(); - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((denomination == null) ? 0 : denomination.hashCode()); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BankDenomination other = (BankDenomination) obj; - if (denomination == null) { - if (other.denomination != null) - return false; - } else if (!denomination.equals(other.denomination)) - return false; - return true; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java deleted file mode 100644 index 2b31305..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.model; - -import javax.persistence.MappedSuperclass; - -@MappedSuperclass -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId - * the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Customer.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Customer.java deleted file mode 100644 index 8b08ed4..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Customer.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.bank.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -/** - * author Ram - */ -@Table(name = "customer_details") -@Entity -public class Customer extends BaseEntity implements Cloneable { - - @Id - //@SequenceGenerator(name = "customer_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.AUTO/*, generator = "customer_seq"*/) - @Column(name = "id") - private Long customerId; - @Column(name = "customer_name") - private String customerName; - @Column(name = "pin") - private Long pin; - - // relational mapping of bank to customer - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Customer() { - // TODO Auto-generated constructor stub - } - - /** - * method name : getCustomerId method returnTypr : Long method description : to - * get customer id - */ - public Long getCustomerId() { - return customerId; - } - - /** - * method name : setCustomerId method parameter : Long method description : it - * will set customerId - */ - public void setCustomerId(final Long customerId) { - this.customerId = customerId; - } - - /** - * method Name : getCustomerName method return type : String method description - * : it will get he customer name - */ - public String getCustomerName() { - return customerName; - } - - /** - * method name : setCustomerName method parameter : String method description : - * it will set customerName - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * method Name : getPin method return type : Long method description : it will - * get he pin - */ - public Long getPin() { - return pin; - } - - /** - * method name : setPin method parameter : Long method description : it will set - * pin - */ - public void setPin(final Long pin) { - this.pin = pin; - } - - /** - * method name : setBank method parameter : Bank method description : it will - * set Bank - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", pin=" + pin + ", bank=" - + bank + "]"; - } - - /** - * @param customerId - * @param customerName - * @param pin - */ - public Customer(Long customerId, String customerName, Long pin) { - super(); - this.customerId = customerId; - this.customerName = customerName; - this.pin = pin; - } - - public Customer(String string, long l) { - - } - @Override - public Customer clone()throws CloneNotSupportedException{ - return (Customer)super.clone(); - } - public Customer( String customerName) { - super(); - - this.customerName = customerName; - - } - - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/RefMoney.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/RefMoney.java deleted file mode 100644 index 3d5d6d2..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/RefMoney.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -@Table(name="ref_money") -@Entity -public class RefMoney extends BaseEntity { - @Id - private BigDecimal denomination; - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } -public RefMoney() { - // TODO Auto-generated constructor stub -} -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Transaction.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Transaction.java deleted file mode 100644 index 66e7bd9..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/model/Transaction.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.springframework.stereotype.Component; - -@Table(name = "transaction_details") -@Entity -@Component -public class Transaction extends BaseEntity{ - @Id - - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "transaction_id") - private Long transactionId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "transaction_type") - private String transactionType; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - @ManyToOne(targetEntity = Account.class) - private Account account; - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(final Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customerId - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(final String transactionType) { - this.transactionType = transactionType; - } - - public Transaction() { - // TODO Auto-generated constructor stub - } - - /** - * @param customerId - * @param accountId - * @param amount - * @param transactionType - */ - public Transaction(BigDecimal amount, String transactionType) { - super(); - /* - * this.customerId = customerId; this.accountId = accountId; - */ - this.amount = amount; - this.transactionType = transactionType; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java deleted file mode 100644 index c3c75f0..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Account; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMDenoRepository extends JpaRepository { - - - Optional findBydenomination(BigDecimal myValue); - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java deleted file mode 100644 index 6801567..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATM; -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMRepository extends JpaRepository{ - - Optional findByaTMId(Long aTMId); - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java deleted file mode 100644 index 927e0be..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface AccountRepository extends JpaRepository{ - - - - Optional findByaccountId(Long accountId); - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java deleted file mode 100644 index 68dc6ea..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import org.springframework.stereotype.Repository; - -import com.bank.model.ATM; -import com.bank.model.Bank; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -@Repository -public interface BankRepository extends JpaRepository { - - - Optional findBybankId(Long bankId); -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java deleted file mode 100644 index 7e47033..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Customer; -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface CustomerRepository extends JpaRepository { - - Optional findOneBycustomerName(String CustomerName); - - Optional findBycustomerId(Long customerId); -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java deleted file mode 100644 index 8ae3342..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.BankDenomination; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface DenominationRepository extends JpaRepository{ - - - Optional findBydenomination(BigDecimal myValue); - - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java deleted file mode 100644 index 9a71ec7..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.RefMoney; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface RefMoneyRepository extends JpaRepository { - - - - Optional findBydenomination(BigDecimal denomination); - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java deleted file mode 100644 index ed3ce90..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Account; -import com.bank.model.Transaction; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface TransactionRepository extends JpaRepository{ - - - /* - * this query will find trasanction where account id is associated - */ - @Query(value="select * from transaction_details where account_account_id=?1",nativeQuery=true) - List findAllByAccountId(Long accountId); - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java deleted file mode 100644 index 2862798..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("atmService") -public class ATMServiceImpl implements IATMService { - - final Logger LOGGER = LoggerFactory.getLogger(ATMServiceImpl.class); - -//injectiong all required properties - @Autowired - private ATMRepository atmRepo; - @Autowired - private IBankService bankService; - @Autowired - private IAccountService accountService; - @Autowired - private ICustomerService customerService; - @Autowired - private TransactionRepository trans; - @Autowired - private IAtmDenoService atmDeno; - - - //will create new instance for atm - @Override - public ATM createATM(final ATM atm) throws ManagedException { - // TODO Auto-generated method stub - final ATM atm1 = atmRepo.save(atm); - if (atm1 != null) { - LOGGER.info("atm is added"); - return atm1; - } else { - LOGGER.error("no atm is added"); - throw new ManagedException("No such atm is created!!"); - } - } - - // will add money from bank to atm - @Transactional - @Override - public String addMoneyFromBank(final AddMoneyReq atmreq) throws ManagedException { - //method needs to be change - final Optional atm = atmRepo.findByaTMId(atmreq.getAtmId()); - if (atm.isPresent()) { - ATM atm1 = atm.get(); - final Long bankID = atmreq.getBankId(); - final Long bankId = atm1.getBankId(); - if (bankID.equals(bankId)) { - final BigDecimal amount = atmreq.getAmount(); - final Optional bankopt=bankService.getBankDetailsByID(atmreq.getBankId()); - final Bank bank=bankopt.get(); - BigDecimal bankAmount = bank.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(bankAmount) == -1) { - BigDecimal atmAmount = atm1.getAmount(); - atmAmount = atmAmount.add(amount); - atm1.setAmount(atmAmount); - bankAmount = bankAmount.subtract(amount); - bank.setAmount(bankAmount); - bankService.createBank(bank); - atmRepo.save(atm1); - atmDeno.atmDenominationDeposit(atmreq.getAmount(), atmreq.getAtmId()); - LOGGER.info("amount is added to your account"); - return "amount added"; - - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less than you want"); - } - } - else - { - LOGGER.error("amount is negative"); - throw new ManagedException("amount connot be negative"); - } - - } - else - { - LOGGER.error("no bank id exist"); - throw new ManagedException("no such bank id exist"); - } - } - else - { - LOGGER.error("no atm id exist"); - throw new ManagedException("no such atm id exist"); - } - - } - - // will withdraws monet atm - - @Transactional - @Override - public Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException { - final Optional atm = atmRepo.findByaTMId(withdraw.getAtmId()); - if (atm.isPresent()) { - final ATM atm1 = atm.get(); - BigDecimal amount = atm1.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(withdraw.getAmount()) == 1) { - final Account account =accountService.getAccountDetails(withdraw.getAccountId()); - BigDecimal accountAmount = account.getAmount(); - if (accountAmount.compareTo(withdraw.getAmount()) == 1) { - amount = amount.subtract(withdraw.getAmount()); - atm1.setAmount(amount); - accountAmount = accountAmount.subtract(withdraw.getAmount()); - account.setAmount(accountAmount); - accountService.createAccount(account); - atmRepo.save(atm1); - Transaction transaction = new Transaction(); - transaction.setAccount(account); - transaction.setAmount(account.getAmount()); - final Customer customer = customerService.getCustomerDetails(withdraw.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.save(transaction); - LOGGER.info("amount is deducted"); - return withdraw.getAccountId(); - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less thsn amount you want to withdraw"); - } - } - else - { LOGGER.error("atm amount is less"); - throw new ManagedException("atm does not have this much of amount"); - } - } - else - { LOGGER.error("-ve amount not possible "); - throw new ManagedException("negative amount cannot possible"); - } - } - else - { LOGGER.error("no atm id exist"); - throw new ManagedException("no such id of atm exist"); - } - } -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java deleted file mode 100644 index 232f9c2..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("accountService") -public class AccountServiceImpl implements IAccountService { - final Logger LOGGER = LoggerFactory.getLogger(AccountServiceImpl.class); - @Autowired - private AccountRepository accountRepository; - @Autowired - private ITransactionService trans; - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - @Autowired - private IBankDenominationService bankDenoService; - private BigDecimal balance; - - - // this will create account instance for customer - @Override - public Account createAccount(final Account account) throws ManagedException { - final Account acc = accountRepository.save(account); - if (acc != null) { - LOGGER.info("account created"); - return acc; - } else { - LOGGER.error("no account is created"); - throw new ManagedException("No account is created"); - } - } - //this will credit money to account - @Transactional - @Override - public Long depositMoney(final AccountTransaction account) throws ManagedException { - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - final Optional acc1 = accountRepository.findByaccountId(account.getAccountId()); - if (acc1.isPresent()) { - - final Account acc = acc1.get(); - balance = acc.getAmount(); - balance = balance.add(account.getAmount()); - acc.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - bankDenoService.bankDenominationDeposit(account.getAmount(),account.getBankId()); - - }else - { LOGGER.error("no bank id present"); - throw new ManagedException("no bank is present of given id"); - } - Transaction transaction = new Transaction(); - transaction.setAccount(acc); - transaction.setAmount(acc.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("credit"); - trans.createTransaction(transaction); - LOGGER.info("AMOUNT IS ADDED"); - return account.getCustomerId(); - } else { - LOGGER.error("no amount is deposited"); - throw new ManagedException("zero amount deposited"); - } - } - else - { - LOGGER.error("-ve amount is not possible"); - throw new ManagedException("negative amount is not possible"); - } - } - - //this will debit money from account - @Transactional - @Override - public Long withdrawlMoney(final AccountTransaction account) throws ManagedException { - // TODO Auto-generated method stub - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - Optional acc1 = accountRepository.findByaccountId(account.getAccountId()); - if (acc1.isPresent()) { - final Account account1 = acc1.get(); ; - balance = account1.getAmount(); - balance = balance.subtract(account.getAmount()); - account1.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - bankDenoService.bankDenominationWithdraw(account.getAmount(), account.getBankId()); - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - - Transaction transaction=new Transaction(); - transaction.setAccount(account1); - transaction.setAmount(account1.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - if(customer!=null) - { - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.createTransaction(transaction); - LOGGER.info("amount is deducted"); - return account.getCustomerId(); - } - else - { LOGGER.error("no customer exist"); - throw new ManagedException("No customer of such occunct exsit"); - } - }else - {LOGGER.error("no account exist"); - throw new ManagedException("No such account exist"); - } - - } else { - LOGGER.error("not enough amount to withdraw"); - throw new ManagedException("No amount withdraw"); - } - } - else - { - LOGGER.error("-ve value is not posssible"); - throw new ManagedException("negative amount is not possible"); - } - } - - - //It will give account details of perticular Id - @Override - public Account getAccountDetails(final Long id) throws ManagedException { - // TODO Auto-generated method stub - Account account = accountRepository.findByaccountId(id).get(); - if (account != null) { - LOGGER.info("account retrived"); - return account; - } else { - LOGGER.error("no such id exist"); - throw new ManagedException("no such element found"); - } - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java deleted file mode 100644 index ed877ef..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.ATMDenoRepository; -import com.bank.repository.ATMRepository; -import com.bank.repository.DenominationRepository; - -@Service -public class AtmDenoServiceImpl implements IAtmDenoService{ - - - @Autowired - private IRefServcie refService; - - @Autowired - private DenominationHelper denominationHelper; - - @Autowired - private ATMDenoRepository atmdenoRepository; - @Autowired - private ATMRepository atmRepo; - @Autowired - private DenominationRepository bankDeno; - @Autowired - IBankService bankService; - - - // this will create denominations for atm - @Override - public void atmDenominationCreate(List list, Long atmId) throws ManagedException { - - for(BigDecimal denom: list ) - { - final ATMDenomination first = new ATMDenomination(atmId,new BigDecimal(denom.intValue()), 0); - atmdenoRepository.save(first); - - } - } - - //this method provide logic (when you add money to atm ) for denominations adjustments - @Override - public void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException { - // TODO Auto-generated method stub - - List newList=refService.returnAll(); - - List list = new ArrayList<>(); - for(RefMoney deno:newList) - { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - ATMDenomination atmDeno=new ATMDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count=pair.getValue(); - System.out.println("key value"+myValue); - - //changes made to findById - Optional deno=atmdenoRepository.findBydenomination(myValue); - ATMDenomination denomination=deno.get(); - System.out.println("denomination"+denomination); - System.out.println("count value"+count); - ATM atm=atmRepo.findByaTMId(atmId).get(); - //changes made to findById - BankDenomination bank=bankDeno.findBydenomination(myValue).get(); - int newNum=bank.getNoOfDenomination()-count; - bank.setNoOfDenomination(newNum); - bankDeno.save(bank); - denomination.setATMId(atmId); - denomination.setNoofDenomination(denomination.getNoofDenomination()+count); - - atmdenoRepository.save(denomination); - } - } - } - - - - diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java deleted file mode 100644 index 0301a57..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -/*package com.bank.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.bank.model.AuditLog; - -@Service -public class AuditServiceImpl { - - @Autowired - RestTemplate restTemplate; - - @Bean - @LoadBalanced - RestTemplate restTemplate() { - return new RestTemplate(); - } - - // generate audit log - public AuditLog generateAudit(final AuditLog audit) { - - final String uri = "http://mongo-client/createAudit"; - System.out.println("audit obnject " + audit); - final AuditLog audii = restTemplate.postForObject(uri, audit, AuditLog.class); - return audii; - - } - - - * @Autowired private DiscoveryClient discoveryClient; - * - * - * public AuditLog generateAudit(AuditLog auditData) { List - * instance=discoveryClient.getInstances("MONGO-CLIENT"); ServiceInstance - * serviceInstance=instance.get(0); RestTemplate restTemplate = new - * RestTemplate(); - * - * String url =serviceInstance.getUri().toString(); url=url+"/create"; AuditLog - * audit = auditData; System.out.println(audit);; AuditLog resultOfOperation = - * restTemplate.postForObject(url, audit, AuditLog.class); return - * resultOfOperation; } - - -} -*/ \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index a77ef1a..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.DenominationRepository; - -@Service -public class BankDenominationServiceImpl implements IBankDenominationService { - @Autowired - private DenominationRepository denominationRepo; - @Autowired - private IBankService bankServcie; - @Autowired - private DenominationHelper denominationHelper; - @Autowired - private IRefServcie refService; - - - //create denomination for bank - @Override - public void bankDenominationCreate(List list, Long bankId) throws ManagedException { - - // to get values from database - for (BigDecimal denom : list) { - final BankDenomination first = new BankDenomination(new BigDecimal(denom.intValue()), 0, bankId); - denominationRepo.save(first); - - } - - } - - - //this will provide logic: when you withdraws money denominations will get adjusted accordingly - - @Override - public void bankDenominationWithdraw(BigDecimal amount, Long bankId) throws ManagedException { - List newList = refService.returnAll(); - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getcountDenomination(amount, list); - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - System.out.println("key value" + myValue); - //chnages to be made after downgrading spring boot version - Optional deno = denominationRepo.findBydenomination(myValue); - BankDenomination denomination = deno.get(); - System.out.println("denomination" + denomination); - System.out.println("count value" + count); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() - count); - denominationRepo.save(denomination); - - } - - } - - @Override - public void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException { - - List newList = refService.returnAll(); - - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - BankDenomination bankDeno = new BankDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - - Optional deno = denominationRepo.findBydenomination(myValue); - BankDenomination denomination = deno.get(); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() + count); - denominationRepo.save(denomination); - } - - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java deleted file mode 100644 index ae1f2fe..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.repository.BankRepository; - -@Service("bankService") -public class BankServiceImpl implements IBankService { - - final Logger LOGGER = LoggerFactory.getLogger(BankServiceImpl.class); - @Autowired - private BankRepository bankRepository; - @Autowired - private IBankDenominationService bankDenoService; - - - // create new bank instance - @Override - public Bank createBank(final Bank bank) throws ManagedException { - final Bank bank1 = bankRepository.save(bank); - if (bank1 != null) { - - return bank1; - } else { - LOGGER.error("No bank is added"); - throw new ManagedException("No Bank is Added"); - } - } - - - @Override - public List getBankDetails() throws ManagedException { - final List list = bankRepository.findAll(); - if (list.isEmpty()) { - LOGGER.error("No banks found"); - throw new ManagedException("No bank found"); - } else { - return list; - } - } - - @Override - public Optional getBankDetailsByID(final long ID) throws ManagedException { - // changes made in repo - final Optional bank = bankRepository.findBybankId(ID); - if (bank.isPresent()) { - return bank; - } else { - LOGGER.error("no bank of such id exist"); - throw new ManagedException("No such bank found"); - } - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java deleted file mode 100644 index b38547f..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.service; - - - -import java.util.Calendar; -import java.util.Date; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.AuditLog; -import com.bank.model.Customer; -import com.bank.repository.CustomerRepository; - -enum EventName { - CUSTOMER, ACCOUNT, ATM, BANK -} - -enum EventType { - CREATED, UPDATED -} - -@Service("customerService") -public class CustomerServiceImpl implements ICustomerService, Cloneable { - final static Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class); - @Autowired - private CustomerRepository customerRepository; - /*@Autowired - AuditServiceImpl auditService;*/ - @Autowired - IFeignClient fclient; - - @Override - public Customer createCustomer(final Customer customer) throws ManagedException { - final Customer custom = customerRepository.save(customer); - if (custom != null) { - return custom; - } else { - LOGGER.error("No customer is added"); - throw new ManagedException("no customer is created"); - } - } - - - @Override - public Customer getCustomerDetails(final Long id) throws ManagedException { - - final Customer customer = customerRepository.findBycustomerId(id).get(); - if (customer != null) { - return customer; - } else { - LOGGER.info("No customer of given id is exist"); - throw new ManagedException("no customer of such id exist"); - } - - } - - @Override - public Customer updateCustomer(final Long id, final String name, final String userId) - throws ManagedException, CloneNotSupportedException { - - final Customer customer = customerRepository.findBycustomerId(id).get(); - - Customer oldcustmer = customer.clone(); - - if (customer != null) { - customer.setCustomerName(name); - customer.setUserId(userId); - Customer cust = customerRepository.save(customer); - Calendar cal=Calendar.getInstance(); - Date time=cal.getTime(); - AuditLog audit = new AuditLog(EventName.CUSTOMER.toString(), EventType.UPDATED.toString(), time, - cust.getUserId(), oldcustmer, cust); - - //AuditLog ob = auditService.generateAudit(audit); - - AuditLog ob = fclient.create(audit); - - - return cust; - } else { - LOGGER.info("Customer not present as Id not present"); - throw new ManagedException("customer data not updated"); - } - - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java deleted file mode 100644 index 8621dc3..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -@Component -public class DenominationHelper { - - public Map getDenominatioValues(final BigDecimal amount , final List list) throws ManagedException { - final Map newMap=new HashMap(); - Random random = new Random(); - BigDecimal remainder = amount; - if(amount.intValue()>=0) - { - for(int i=0;i<=list.size();i++) - { - Integer randomIndex = random.nextInt(list.size()); - BigDecimal randomElement = list.get(randomIndex); - if ( !(randomElement.compareTo(remainder) >0) ) { - Integer count=remainder.divide(randomElement).intValue(); - remainder= remainder.remainder( randomElement); - - newMap.put(randomElement,count); - - if (remainder.compareTo(BigDecimal.ZERO) ==0) { - break; - } - } - list.remove(randomIndex); - - } - if (remainder.compareTo(BigDecimal.ZERO) !=0) { - System.out.println("cant Proceed "); - return null ; - } - - } - return newMap; - } - - - - public Map getcountDenomination(BigDecimal amount, List list) throws ManagedException - { - Map newMap = new HashMap(); - - List selectedList = new ArrayList(); - for (BigDecimal denom : list) { - if (denom.compareTo(amount) <= 0) { - selectedList.add(denom); - } else { - throw new ManagedException("selected list is empty"); - } - } - for (int i = 0; i <= selectedList.size(); i++) { - BigDecimal maxDen = Collections.max(selectedList); - Integer count = amount.divide(maxDen).intValue(); - amount = amount.remainder(maxDen); - newMap.put(maxDen, count); - - if (amount.compareTo(BigDecimal.ZERO) == 0) { - break; - } - selectedList.remove(maxDen); - } - // get index of particular element - if (amount.compareTo(BigDecimal.ZERO) != 0) { - throw new ManagedException("amount cannot be withdrawn"); - } - return newMap; - } -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IATMService.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IATMService.java deleted file mode 100644 index 91f56b9..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IATMService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; - -/** - * @author ram - */ -public interface IATMService { - /** - * method name : createATM return type : ATM object parameter :object of ATM - * description : this method will return a atm which is created - */ - ATM createATM(final ATM atm) throws ManagedException; - - /** - * method name : addMoneyFromBank return type : String parameter :object of - * ATMMoneyReq description : this method will return a string if money is added - * to atm - */ - String addMoneyFromBank(final AddMoneyReq atm) throws ManagedException; - - /** - * method name : withrawMoney return type : String parameter :object of - * WithdrawMoneyReq description : this method will return a string if - * successfully money withraw - */ - Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException; - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IAccountService.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IAccountService.java deleted file mode 100644 index d207310..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IAccountService.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; - -public interface IAccountService { - /** - * method name : createAccount return type : Account object parameter :object of - * Account class description : this method will return a account which is - * created - */ - Account createAccount(final Account account) throws ManagedException; - - /** - * method name : depositMoney return type : String parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully amount is added and add to transaction list - */ - Long depositMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : withdrawlMoney return type : String object parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully withdraw and add to transaction list - */ - Long withdrawlMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : getAccountDetails return type : Account object parameter :Long - * id description : this method will return a account which is created of given - * id - */ - Account getAccountDetails(final Long id) throws ManagedException; - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java deleted file mode 100644 index 47657d8..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java +++ /dev/null @@ -1,15 +0,0 @@ - package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; - -public interface IAtmDenoService { - - - - - void atmDenominationCreate(List list,Long atmId)throws ManagedException; - void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException; -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java deleted file mode 100644 index 124f9c5..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -import com.bank.Exception.ManagedException; - -public interface IBankDenominationService { - - - void bankDenominationWithdraw(BigDecimal amount,Long bankId) throws ManagedException; - void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException ; - void bankDenominationCreate(List list,Long bankId)throws ManagedException; - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IBankService.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IBankService.java deleted file mode 100644 index a464c98..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IBankService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; - -public interface IBankService { - /* - * description : this method will return a bank which is created - */ - Bank createBank(final Bank bank) throws ManagedException; - - /* description : this method will return a list of all banks - */ - List getBankDetails() throws ManagedException; - - /* - * description : this method will return a bank of given id - */ - Optional getBankDetailsByID(final long Id) throws ManagedException; - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java deleted file mode 100644 index 8256c10..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Customer; - -/** - * @author ram - * - */ -public interface ICustomerService { - /** - * description : this method will return a customer which is - * created - */ - Customer createCustomer(final Customer customer) throws ManagedException; - - /** - * description : this method will return a customer of specified id - */ - Customer getCustomerDetails(final Long id) throws ManagedException; - /* - * description : this method will return a customer of specified id with updation - * @throws CloneNotSupportedException ,ManagedException - */ - Customer updateCustomer(final Long id,final String name, final String userId ) throws ManagedException, CloneNotSupportedException; -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java deleted file mode 100644 index 8f3f7c0..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.bank.service; - -import org.springframework.cloud.netflix.feign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import com.bank.model.AuditLog; - -/** - * @author trainee - * - */ -@FeignClient("mongo-client") -public interface IFeignClient { - - @PostMapping(path = "/auditLog") - AuditLog create(final AuditLog audit); - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java deleted file mode 100644 index 85867ad..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -/** - * @author ram - * - */ -public interface IRefServcie { - - /** - * - * @param denomination - * @return - * @throws BankException - */ - - /** - * - * @return - * @throws ManagedException - */ - List returnAll() throws ManagedException; - void createDenomination(List list) throws ManagedException; - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java deleted file mode 100644 index 9e8c997..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; - -/** - * @author ram - * - */ -public interface ITransactionService { - /** - * method name : createTransaction return type : Transaction object parameter - * :Transaction description : this method will return a transaction which is - * created - */ - Transaction createTransaction(final Transaction trans) throws ManagedException; - - /** - * method name : generateTransactionReport return type : List - * Object description : this method will return a list which of transactions - */ - List generateTransactionReport(Long accountId) throws ManagedException; - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java deleted file mode 100644 index bc21cee..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; -import com.bank.repository.RefMoneyRepository; -@Service -public class RefServcieImpl implements IRefServcie { - -@Autowired -private RefMoneyRepository refRepo; - @Override - public void createDenomination(List list) throws ManagedException{ - for(BigDecimal denomination: list ) - { - //changes to be made after version chnage - if(!refRepo.findBydenomination(denomination).isPresent()) - { - RefMoney refMoney=new RefMoney(); - refMoney.setDenomination(denomination); - refRepo.save(refMoney); - //return true; - } - else - { - throw new ManagedException("Denomination already exist!!!!"); - } - } - } - - @Override - public List returnAll() throws ManagedException { - - List list=refRepo.findAll(); - if(list.isEmpty()) - { - throw new ManagedException("no denomination found"); - } - else - { - return list; - } - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java b/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 213e1ea..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.bank.service; - -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; -import com.bank.repository.TransactionRepository; -@Service -public class TransactionServiceImpl implements ITransactionService{ - final Logger LOGGER = LoggerFactory.getLogger(TransactionServiceImpl.class); - @Autowired - private TransactionRepository transact; - - @Override - public Transaction createTransaction(final Transaction trans) throws ManagedException { - - final Transaction newtransaction =transact.save(trans); - if(newtransaction!=null) - { - return newtransaction; - } - else - { - throw new ManagedException("no transaction has been created"); - } - } - - @Override - public List generateTransactionReport(Long accountId) throws ManagedException { - // TODO Auto-generated method stub - System.out.println(">>>>>>>>"+accountId); - List transopt=transact.findAllByAccountId(accountId); - System.out.println(">>>>>>>>"+transopt); - - return transopt; - } - -} diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/resources/application.properties b/EurekaServerUsingConfigerver/17BankInCapg/src/main/resources/application.properties deleted file mode 100644 index 1874121..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/resources/application.properties +++ /dev/null @@ -1,16 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/bankapp?useSSL=false -spring.application.name=application -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -#spring.cloud.config.server.git.uri=https://github.com/ramdafale/bank-config-server -#spring.datasource.username=root -#spring.datasource.password=root -#spring.jpa.hibernate.ddl-auto=update -#spring.jpa.show-sql=true - -#Mongo -#eureka.client.service-url.defaultZone=http://localhost:8762/eureka -#eureka.client.service-url.defaultZone=https://github.com/ramdafale/bank-config-server - - - - diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/main/resources/bootstrap.properties b/EurekaServerUsingConfigerver/17BankInCapg/src/main/resources/bootstrap.properties deleted file mode 100644 index 5055004..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/main/resources/bootstrap.properties +++ /dev/null @@ -1,2 +0,0 @@ - -spring.cloud.config.uri=http://localhost:8888 \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java b/EurekaServerUsingConfigerver/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java deleted file mode 100644 index c0e0570..0000000 --- a/EurekaServerUsingConfigerver/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java +++ /dev/null @@ -1,227 +0,0 @@ -/*package com.bank.testcases; - - - - - - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Optional; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -import com.bank.Exception.ManagedException; -import com.bank.controller.CustomerController; -import com.bank.dto.ATMReq; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.service.ATMServiceImpl; -import com.bank.service.AccountServiceImpl; -import com.bank.service.BankServiceImpl; -import com.bank.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -@SpringBootConfiguration -@ComponentScan("application.properties") -public class AllTestCases { - - @Autowired - CustomerRepository customerRepository; - - @Autowired - CustomerServiceImpl customerServiceImpl; - - @Autowired - BankRepository bankRepository; - - @Autowired - BankServiceImpl bankServiceImpl; - - @Autowired - AccountRepository accountRepository; - - @Autowired - AccountServiceImpl accountServiceImpl; - - @Autowired - ATMRepository atmRepository; - - @Autowired - ATMServiceImpl atmServiceImpl; - - - @Test - public void createBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - when(bankRepository.save(bank)).thenReturn(bank); - // System.out.println(bank); - assertThat(bankServiceImpl.createBank(bank), is(notNullValue())); - } - - @Test - public void testAddBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - bankServiceImpl.createBank(bank); - - List departments = bankServiceImpl.getBankDetails(); - Assert.assertEquals(1, departments.size()); - } - - @Test - public void testAddCustomer() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - List employees = (List) customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(1, employees.size()); - } - - - @Test - public void testAddCustomerName() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getCustomerName(), employees.getCustomerName()); - } - RestTemplate restTemplate = new RestTemplate(); - @Autowired - CustomerController customerController; - - - - @Test - public void customerCreateRestTemplateTest() { - Customer customer = new Customer(); - customer.setCustomerName("Lokesh"); - customer.setPin(442001L); - - final String uri = "http://localhost:8080/customer/createCustomer"; - Optional ob = bankRepository.findById(1L); - Bank obj = ob.get(); - - CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest(customer,1L); - String result = restTemplate.postForObject(uri, createCustomerRequest, String.class); - - //System.out.println(result); - assertEquals(result, customerController.createCustomer(createCustomerRequest)); - } - - - - @Test - public void viewCustByRestTemplateTest() { - - final String uri = "http://localhost:8080/getCustomer"; - - RestTemplate restTemplate = new RestTemplate(); - String result = restTemplate.getForObject(uri, String.class); - System.out.println(result); - assertEquals(result, customerController.getCustomer(1L)); - } - - - - @Test - public void testAddCustomerpin() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getPin(), employees.getPin()); - } - - - @Test - public void testAddAccount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - List information = (List) accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(1, information.size()); - } - - @Test - public void testAddAccountAmount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAmount(), information.getAmount()); - } - - @Test - public void testAddAccountId() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAccountId(), information.getAccountId()); - } - - - @Test - public void createAtm() throws ManagedException { - Bank bank = new Bank(1L,new BigDecimal(1200)); - - Optional bnk = Optional.of(bank); - - ATM atm = new ATM(1L,new BigDecimal(5000), 1L); - - //ATMReq req = new ATMReq(1L,atm); - - - when(bankRepository.findById(Mockito.any(Long.class))).thenReturn(bnk); - when(atmRepository.save(atm)).thenReturn(atm); - assertThat(atmServiceImpl.createATM(atm), is(notNullValue())); - - } - - -}*/ \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/.classpath b/EurekaServerUsingConfigerver/employee-zuul-service/.classpath deleted file mode 100644 index 9fc2de7..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/.classpath +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/.project b/EurekaServerUsingConfigerver/employee-zuul-service/.project deleted file mode 100644 index ea9f7ca..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - zuul-service1 - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - org.springframework.ide.eclipse.boot.validation.springbootbuilder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.eclipse.jdt.core.prefs b/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 13b3428..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,13 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.eclipse.m2e.core.prefs b/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.springframework.ide.eclipse.prefs b/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.springframework.ide.eclipse.prefs deleted file mode 100644 index a12794d..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/.settings/org.springframework.ide.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -boot.validation.initialized=true -eclipse.preferences.version=1 diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/pom.xml b/EurekaServerUsingConfigerver/employee-zuul-service/pom.xml deleted file mode 100644 index fda87fc..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 4.0.0 - - com.javainuse - zuul-service1 - 0.0.1-SNAPSHOT - jar - - SpringBootHelloWorld - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.cloud - spring-cloud-starter-zuul - - - - org.springframework.cloud - spring-cloud-starter-eureka - - - - - - - - org.springframework.cloud - spring-cloud-dependencies - Camden.SR6 - pom - import - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/SpringBootHelloWorldApplication.java b/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/SpringBootHelloWorldApplication.java deleted file mode 100644 index 5e3b8f9..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/SpringBootHelloWorldApplication.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.javainuse; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.cloud.netflix.zuul.EnableZuulProxy; -import org.springframework.context.annotation.Bean; - -import com.javainuse.filter.ErrorFilter; -import com.javainuse.filter.PostFilter; -import com.javainuse.filter.PreFilter; -import com.javainuse.filter.RouteFilter; - -@SpringBootApplication -@EnableDiscoveryClient -@EnableZuulProxy -public class SpringBootHelloWorldApplication { - - public static void main(String[] args) { - SpringApplication.run(SpringBootHelloWorldApplication.class, args); - } - - @Bean - public PreFilter preFilter() { - return new PreFilter(); - } - - @Bean - public PostFilter postFilter() { - return new PostFilter(); - } - - @Bean - public ErrorFilter errorFilter() { - return new ErrorFilter(); - } - - @Bean - public RouteFilter routeFilter() { - return new RouteFilter(); - } -} \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/ErrorFilter.java b/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/ErrorFilter.java deleted file mode 100644 index afd9438..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/ErrorFilter.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.javainuse.filter; - -import com.netflix.zuul.ZuulFilter; - -public class ErrorFilter extends ZuulFilter { - - @Override - public String filterType() { - return "error"; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - System.out.println("Using Route Filter"); - - return null; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/PostFilter.java b/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/PostFilter.java deleted file mode 100644 index f796421..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/PostFilter.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.javainuse.filter; - -import com.netflix.zuul.ZuulFilter; - -public class PostFilter extends ZuulFilter { - - @Override - public String filterType() { - return "post"; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - System.out.println("Using Post Filter"); - - return null; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/PreFilter.java b/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/PreFilter.java deleted file mode 100644 index 234a788..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/PreFilter.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.javainuse.filter; - -import javax.servlet.http.HttpServletRequest; - -import com.netflix.zuul.ZuulFilter; -import com.netflix.zuul.context.RequestContext; - -public class PreFilter extends ZuulFilter { - - @Override - public String filterType() { - return "pre"; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - RequestContext ctx = RequestContext.getCurrentContext(); - HttpServletRequest request = ctx.getRequest(); - - System.out.println( - "Request Method : " + request.getMethod() + " Request URL : " + request.getRequestURL().toString()); - - return null; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/RouteFilter.java b/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/RouteFilter.java deleted file mode 100644 index a10114e..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/java/com/javainuse/filter/RouteFilter.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.javainuse.filter; - -import com.netflix.zuul.ZuulFilter; - -public class RouteFilter extends ZuulFilter { - - @Override - public String filterType() { - return "route"; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - System.out.println("Using Route Filter"); - - return null; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/resources/application.properties b/EurekaServerUsingConfigerver/employee-zuul-service/src/main/resources/application.properties deleted file mode 100644 index 1186439..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -#zuul.routes.producer.url=http://localhost:8082 -#zuul.routes.auditLog.service-id=mongo-client - - -#zuul.routes.auditLog.url=http://localhost:8082 - - -zuul.routes.auditLog.serviceId :mongo-client - -eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka -server.port=8079 \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/resources/bootstrap.properties b/EurekaServerUsingConfigerver/employee-zuul-service/src/main/resources/bootstrap.properties deleted file mode 100644 index 0d4a877..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/src/main/resources/bootstrap.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=bank-zuul-service \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/MANIFEST.MF b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index 5c0fc63..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Implementation-Title: SpringBootHelloWorld -Implementation-Version: 0.0.1-SNAPSHOT -Built-By: trainee -Implementation-Vendor-Id: com.javainuse -Build-Jdk: 1.8.0_171 -Implementation-URL: http://projects.spring.io/spring-boot/zuul-service - 1/ -Created-By: Maven Integration for Eclipse -Implementation-Vendor: Pivotal Software, Inc. - diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/zuul-service1/pom.properties b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/zuul-service1/pom.properties deleted file mode 100644 index 22cef4c..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/zuul-service1/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Wed May 30 13:07:36 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.javainuse -m2e.projectName=zuul-service1 -m2e.projectLocation=D\:\\training\\employee-zuul-service -artifactId=zuul-service1 diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/zuul-service1/pom.xml b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/zuul-service1/pom.xml deleted file mode 100644 index fda87fc..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/zuul-service1/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 4.0.0 - - com.javainuse - zuul-service1 - 0.0.1-SNAPSHOT - jar - - SpringBootHelloWorld - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.cloud - spring-cloud-starter-zuul - - - - org.springframework.cloud - spring-cloud-starter-eureka - - - - - - - - org.springframework.cloud - spring-cloud-dependencies - Camden.SR6 - pom - import - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/application.properties b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/application.properties deleted file mode 100644 index 1186439..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -#zuul.routes.producer.url=http://localhost:8082 -#zuul.routes.auditLog.service-id=mongo-client - - -#zuul.routes.auditLog.url=http://localhost:8082 - - -zuul.routes.auditLog.serviceId :mongo-client - -eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka -server.port=8079 \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/bootstrap.properties b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/bootstrap.properties deleted file mode 100644 index 0d4a877..0000000 --- a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/bootstrap.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=bank-zuul-service \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/SpringBootHelloWorldApplication.class b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/SpringBootHelloWorldApplication.class deleted file mode 100644 index 1c93ae2cc234f6cd1e29e32ebff8b875b0888efb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1609 zcmb7^TTc@~6vzL=t#m;^5EMn^CbmTwZ!sn{B!U_r8YN&#)TixsS_ii?&2$#QPo+;7 zP5c0UDC60sm!;X(__A~R&+lC3oc;ah$1ebn@Gyk|hD}e`_>p_;N)dln9RX?#5X#y?Iic)?{`$hzuSu+lR4Ok zl5?N~H;^L0?>o-c*6yeu1@ zJ{IPbzffUuK5wmeqjQ2h=>t*1R(yHFzXXBb1iYu|p3x_#d3reNA^P6{BQ&F*0ew@n z;xsZEhjV8b{YH}kI870#UB_rXelDQ#60Ophz-06CV^W8gN2gitJEjgh_Z>O`b#4l? zF~%t7aFzBMu3?@O*J&O)a)ZXunFlT2Pb|DU!{S%ki~BQwfpzW=RV|kKvzCdq+Ra)_ vWUb+Lf7Uv>p4zL{=8L{;UmRZFaLV39JEZMVa7H#wO??@6q~xlrj7TiOQ4l diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/ErrorFilter.class b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/ErrorFilter.class deleted file mode 100644 index aef35f877a6d98463aa1c34945d778732c6eb6fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmaixT~8B16o%i^E!}omp|%tdR0@6-1I~>XCN=Dl}4y zH(JN~?Rf8^Ojx#6ku(RP`YgVrX(;wNWCeuEOBE^eir{qC_Xy?J@lbkjQ1dZ`3SqXV zBKbZY^`+hk`k^E=dhs9#_X4eKo*$OYkxB?_z5iM261>dl&gluO&2`p$b_5Xy(V^Hj zT1AK5DsB^|q#cAXot1Ctq2!Ehz9aa_QJjXuUqkTWK40lHniSmXAIpL1)^G>QE|v)O zLbKDv$dQk`xW{mu8bT}cqGIuZjTp8ggAvY_ox@X@0nHQ9_)^P9sD8uDyVRDITO5+J$-tC z>Q~;B;BmCqwse}KpYMI#;*2nZS&kOobXwz@k9^V0rsA8$0;@$LrJa+ly8fmne AumAu6 diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/PostFilter.class b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/PostFilter.class deleted file mode 100644 index cb402b033c19869d837359d0006130dd6ad04bc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 823 zcmaixO;6iE5Qg8015S)fAR&|jh0sD9P}{w5s1(#orAn0|K;q-T%}Ewm#`(RAD1hetL!NVXk5RNvV1g~UnH-4h@jW-22 z9L=*yo#5zZdl%36M3_W{qY=O7)#O>#sT*GM(sE8}u|+DaqLxYDWzvFmJ))eiXci5g(!jsumGu&w~$Q8Qk&hlnWch%;J^5w zKEzv_UtYY6H0jL*_r9nefo6I{{Hjh7l3JOCcsK{o`q zwbwRZcE1#a82Y7;$wk4?tJ-_VF|=JWo&&?>dEL~-0z)v7++hf%tvrt+h=__yxXjR& z(M`VYl=is2o!v7yLo8$Evc^u<*5%$m42hy%VTfn`PbkF@^+;|Xl_^$NBAJo&H6v^8 zYg@wB&HYpu9Ym*W(|wEQykY0L?NVH2P%A~tG4jU+5bs^OvK_NA+{WGk&xuqN*U+z^ zk72Y)iJWB$UKQFVf9LRuNPAlq1Gvu6vCl=?v2AW1Uoeaj;R{A_6A!6~W0QFwdn~K6+C6=X_iWQs92H(goWh|sN}yG#dEw+u*}fu zqW+a$#flVADa&pcG?~Gis8ZuEJUfK7y_ux3b!9kLXZg0aEXU5t$4_tP%E@nFQZmFa zhz9*TK+R?Hag$YOr_svf>7B0#f2NNBqGaVY5Jn4G)pMY=m39;wZDb{Qf>!AljJ1EF zr5>u*L4zmI7&?9ExDO2kKQX3mGWEZ*{k)cLp&zZ;`^!msT2)P=}e#6zwSPg?~ zUvT3m5^rNv{P_5HXbd$>#~zZQ-JIMl(02{#8lJJ!68lIWpr67GAc8?6IfN-%XGmtL dSlmnFlMm4oSj9^s5y2#0Awxnjthr^c{{_6ITRQ*% diff --git a/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/RouteFilter.class b/EurekaServerUsingConfigerver/employee-zuul-service/target/classes/com/javainuse/filter/RouteFilter.class deleted file mode 100644 index faef82179641ed6361a69a6ffe1a40648c4c146d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmaixO>fgc5Qg80(>QTWn80KPxPVPm;;td-yY)1wYwsVi$ewVPdZuYy~ys(G+c;I4<(9TpZV?G{Y zo#38XrI4LfnL!ub{@!<&)r*?Cq29sDI&2 z1s+HHY*S}B`o-SI4L%X(FwfD#&v>u$J^~PFn zW>r>YRc2N`sUQsug7OUl0^-}ZZ-jr^e|{kUJj#ly2+~T*iO~apQ;-J#>z!{v|9nH? zexD9D~4A70;F%I|$?{aX9)~)7!NMGs_XtoO(D2z3Q#5Lmj zOYWk1b{iMmsdX30UFmYyZk1gWICVeOtk^$+{3U2(8gx?WA2F!EfBPf&|1?AJ|5Z>M zfUAk^zcf#n|9^4|J34286~NKrUt&c5cZ~iqE?PH7fW5tm3-qG$) z56%`QPSn!0RMV3)jjXfG^UQ}*^yBojH!}58lPlDclX5iUhf*|DV=~e*bl;(l$Wn@r zPE*iH(NK!e9KQcU$rRM}aJc?-&H1PO&vOs*=U+QVvwuk-=zr1x>;XpRCjSyC;{TWQ z|824V8t*^*{x=5yn^pP#-?k<5|7|4y&Pd44&e_TN&sxg@ENqpX0glclj&w%W04Jwp zwJ}#@ag^@h5VV4H5U@i7V#A*a;4bzM-y_rd{0WG#jRFPJU}(#&o8vo@uM+B+$>Tiq zei^5$wg8CVf{+_#Vh`yPx-6TmB~zT_nocS_Rb6&EYp*KjbN#-aP<~3j=NVuR)S1wm zdy3AWx2r9uww3eNJxT>{tdmY4#pLw`*`_fIwSu;yzFYP)=W6iawn`s*omzNbR?E&LyC17rFcjWp!M~p?;{v!78DTxtF85BK4dT< zA5p)Z%6O}mP?<%Z{>nZmbVEbomm zLgy;;N&!y>Dma2sqmbvz&KY-j&s~dd#mWGlNF%7}vS7yt>Dm{P=X zG>Pyv2D!ba0CcTI*G6-v?!0}`EWm1d?K)DgZIQk9eucI&lBtR))NxqVz)+hBR1b|7 zgv&^46cI?mgCvp>lY9W(nJT#^<*kY3o#Php1RZLY@ffmLLq3A!Yd}O~n@BhXVp`<5 zJx`BjR%Svv)Sih_8TFg-9F-Gg3^kQrpDGej@uT5%y_9NSsk5SW>7{>&11u(JZHsZO zZweI|!&qHl0;7qxijraQo=oV^Pi~bNlzx;~b2+hXreonWGD%C$fyHs+8d1kKN>TgB z{Mu?~E{=l1osx|_8P*yC>81_GB7>NS7UA+x2k_c*cU-$gQjR{+IU)z069Ic$<)ci< zb?+V#^-MK!0s~wRP|grx?P^8EZ(9Jt0iA{`uVS6fNo>b@as5_-?e766V}&)8ZOEVtKB z*HtHAqat+2lbJbEI#fl~`XKNIF&J?PHKq)A!z(#j%)Uby=5d!bQP)-Mr!0#J=FV%@9G#Cby%r#(S=23H#9d)5Ndy>pIXJ%si!D=m*-QQZ(O9~#Jhx#AS3 z&Vs+*E5>d+{ib4>FEd#L15-ovl*zV%SYSWF>Z}j!vGn=g%w0~3XvAK&$Dl@t5hiUa#mT(4s9-JF1l zPi5d2YmuFJ4S(O>g~H)5l_`%h3qm?+8MmhXA>GRN}7GX;$4(!WTkYZB=TA^8ZFh^d9_@x$fK4qenP!zzaqQ1^(GQ- zjC$P$B5o{q&-H8UH_$orJTv0}#|9ja(vW9gA%l|@alYk+Uth1ey*ax8wmV7U?^Z9? zsQMrEzP8|_s0=bii4wDWa7te&Vmh9T>fcUXJS|dD3Y$A`s-7kY!+idEa`zB) zaW*%xb+#}9INSa62(M1kwL=m_3E2T|l5Sm9QmON8ewxr#QR`;vOGCgyMsA8$O(;=U z#sEw)37duzeM#9_7l!ly#5c+Mu3{;<9%O{e z`+0*{COEF^py;f6)y6NX)gycj`uU9pdZMum9h(bS!zu1gDXdmF4{Og{u;d(Dr~Co1 z1tm@i#5?>oL}-weK1zJRlLv*+M?l=eI~Sp9vg{R6csq=3tYSB2pqB8 z=#p`us7r|uH=cZnGj|juceAu8J#vb+&UFLFmGn~9O|TNeGH>sboBl%JI9v(@^|45? zLvr2ha)NWP4yxV8K%dU(Ae=zl)qdGyz={$my;Vs6?4?2*1?&u!OFyFbAquv6@1e)~&Rp#Ww9O88!mrze((=@F?&BPl_u9gK4VlHo@4gLK_pGtEA(gO4YpIIWTrFN zqVi%Q{adXq^Ez~dZ0VUC>DW`pGtpTY<9tMd;}WZUhT1iy+S^TfHCWXGuDwAv1Ik85 zh3!tSlWU3*aLtmdf?g(#WnLvVCXW$>gnT_{(%VilR=#2VKh~S}+Po#ha9C*<-l~Fx z$EK{1SO8np&{JC)7hdM8O+C( zF^s3HskJz@p3ot`SPKA92PG!PmC2d|9xA!CZxR!rK9-QYYBGAM-Gj zCqzBaIjtOZ6gu+lA%**RI7to$x^s8xIx}VF96=<29CjWtsl;tmNbuHgrCyB^VzEIB zt@sqnl8Vg`pnMppL6vbjNNKc?BrH<)fxiZ|WrYW%cnz-FMENGzMI+)@l7dit?oP|Wu zg-oLcv~79=fdqEM!zK%lI=R7S!Do!HBaD+*h^ULWVB}4jr^e5oUqY`zA&NUvzseI% z+XCvzS+n|m7WJoyjXXk(PE8;i^r$#Pq|NFd!{g~m2OecA1&>$7SYFw z;}Q{`F3LCE34Z>5;5dDtz&2Z&w|B9fwvU<@S<BBo(L4SbDV#X3%uS+<2q7iH+0baiGzlVP5n0fBDP z7kx+7|Cws+?T|cw-pt~SIa7BRDI_ATZ9^aQS^1I?WfnfEHZ*sGlT#Wk9djDL?dWLA zk%(B?<8L?iV*1m803UW|*sU$raq<(!N!CrQ&y7?7_g zF2!aAfw5cWqO}AX)+v)5_GvQ$1W8MV8bTMr3P{^!96Q4*YhS}9ne|+3GxDJmZEo zqh;%RqD5&32iTh7kT>EEo_%`8BeK&)$eXQ-o+pFIP!?lee z&kos;Q)_afg1H&{X|FTQ0V z@yxv4KGGN)X|n|J+(P6Q`wmGB;J}bBY{+LKVDN9#+_w9s$>*$z)mVQDOTe#JG)Zz9*<$LGBZ-umW@5k5b zbIHp=SJ13oX%IU>2@oqcN?)?0AFN#ovwS^|hpf5EGk0#N<)uC{F}GG}%;clhikp2* zu6ra2gL@2foI>7sL`(x5Q)@K2$nG$S?g`+JK(Q0hNjw9>kDM|Gpjmy=Sw5&{x5$&b zE%T6x(9i|z4?fMDhb%$*CIe2LvVjuHca`MiMcC|+IU51XfLx(BMMdLBq_ z65RKiOC$0w-t)Cyz0i-HEZpkfr$>LK%s5kga^FIY_|fadzu*r^$MkNMc!wMAz3b4P+Z3s(z^(%(04}dU>ef$Xmof(A|XXLbR z2`&3VeR1&jjKTut_i?rR_47Z`|1#$NE$&x#;NQM|hxDZ>biQ*+lg5E62o65ILRnOOOcz%Q;X$MJ?G5dYmk$oL_bONX4 zT^0yom^=NsRO^c$l02#s0T^dAAS&yYiA=;rLx;{ro6w08EeTdVF@j^}Bl;o=`L%h! zMKIUv(!a+>G^L3{z7^v3W$FUUHA+-AMv~<}e?2?VG|!itU~T>HcOKaqknSog zE}yY1^VrdNna1B6qA`s?grI>Y4W%)N;~*MH35iKGAp*gtkg=FE*mFDr5n2vbhwE|4 zZ!_Ss*NMZdOKsMRT=uU{bHGY%Gi=K{OD(YPa@i}RCc+mExn zQogd@w%>14cfQrB@d5G#>Lz1wEg?jJ0|(RwBzD74Eij@%3lyoBXVJpB{q0vHFmE7^ zc91!c%pt&uLa|(NyGF2_L6T{!xih@hpK;7B&bJ#oZM0`{T6D9)J2IXxP?DODPdc+T zC>+Zq8O%DXd5Gog2(s$BDE3suv=~s__JQnX@uGt+1r!vPd^MM}=0((G+QopU?VWgR zqj8EF0?sC`&&Nv-m-nagB}UhXPJUBn-UaDW9;(IX#)uc zL*h%hG>ry@a|U=^=7%k%V{n=eJ%Nl0Oqs!h^>_PgNbD>m;+b)XAk+4Cp=qYxTKDv& zq1soWt*hFf%X8}MpQZL-Lg7jc0?CcWuvAOE(i^j1Km^m8tav)lMx1GF{?J#*xwms2 z3N_KN-31f;@JcW(fTA`J5l$&Q8x{gb=9frpE8K0*0Rm;yzHnDY0J{EvLRF0 zRo6ca)gfv6C)@D#1I|tgL~uHJNA-{hwJQXS?Kw=8LU1J$)nQ-&Jhwxpe+%WeL@j0q z?)92i;tvzRki1P2#poL;YI?9DjGM4qvfpsHZQkJ{J^GNQCEgUn&Sg=966 zq?$JeQT+vq%zuq%%7JiQq(U!;Bsu% zzW%~rSk1e+_t89wUQOW<8%i|5_uSlI7BcpAO20?%EhjF%s%EE8aY15u(IC za2lfHgwc;nYnES7SD&Lf5IyZvj_gCpk47H}e05)rRbfh(K$!jv69r5oI| z?){!<{InPJF6m|KOe5R6++UPlf(KUeb+*gTPCvE6! z(wMCuOX{|-p(b~)zmNcTO%FA z$-6}lkc*MKjIJ(Fyj^jkrjVPS);3Qyq~;O$p+XT+m~0$HsjB@}3}r*h(8wGbH9ktQ zbaiiMSJf`6esxC3`u@nNqvxP1nBwerm|KN)aBzu$8v_liZ0(G8}*jB zv<8J%^S2E_cu+Wp1;gT66rI$>EwubN4I(Lo$t8kzF@?r0xu8JX`tUCpaZi(Q0~_^K zs6pBkie9~06l>(Jpy*d&;ZH{HJ^Ww6>Hs!DEcD{AO42KX(rTaj)0ox`;>}SRrt)N5 zX)8L4Fg)Y6EX?He?I`oHeQiGJRmWOAboAC4Jaf;FXzspuG{+3!lUW8?IY>3%)O546 z5}G94dk)Y>d_%DcszEgADP z8%?i~Ak~GQ!s(A4eVwxPxYy3|I~3I=7jf`yCDEk_W@yfaKjGmPdM}($H#8xGbi3l3 z5#?bjI$=*qS~odY6IqL-Q{=gdr2B5FVq7!lX}#Lw**Pyk!`PHN7M3Lp2c=T4l}?kn zVNWyrIb(k&`CckYH;dcAY7-kZ^47EPY6{K(&jBj1Jm>t$FD=u9U z#LI%MnI3wPice+0WeS5FDi<>~6&jlqx=)@n=g5TZVYdL@2BW3w{Q%MkE%sx}=1ihvj(HDjpx!*qqta?R?| zZ(Ju_SsUPK(ZK*&EdAE(Fj%eABf2+T>*fZ6;TBP%$xr(qv;}N@%vd5iGbzOgyMCk* z3X|-CcAz%}GQHalIwd<-FXzA3btVs-_;!9v7QP)V$ruRAURJhMlw7IO@SNM~UD)2= zv}eqKB^kiB))Yhh%v}$ubb#HBQHg3JMpgNF+pN*QbIx(Rx1ofpVIL5Y{)0y&bMO(@ zyK1vv{8CJQidtiI?rgYVynw{knuc!EoQ5-eete(AmM`32lI7{#eS#!otMBRl21|g^SVHWljl8jU?GU@#pYMIqrt3mF|SSYI&I+Vz|%xuXv8;pHg zlzFl!CZ>X%V#KWL3+-743fzYJY)FkKz>GJ<#uKB)6O8NbufCW%8&bQ^=8fHYfE(lY z1Fl@4l%|iaTqu=g7tTVk)wxjosZf2tZ2`8xs9a$b1X29h!9QP#WaP#~hRNL>=IZO@SX4uYQR_c0pSt89qQR@8gJhL*iXBTSBDtlsiNvc_ewvY-cm%bd&sJTnd@hE zwBGvqGW$X^oD~%`b@yeLW%An*as@4QzwdrpKY9-E%5PLqvO6B+bf>ph+TWiPD?8Ju z-V}p@%LcX{e)?*0o~#!S%XU<+9j>3{1gfU=%sHXhukgH+9z!)AOH_A{H3M}wmfmU8 z&9jjfwT-@iRwCbIEwNP4zQHvX3v-d*y87LoudeB9Jh5+mf9Mnj@*ZCpwpQ*2Z9kBWdL19Od7q|Hdbwv+zP*FuY zQc4CJ6}NIz7W+&BrB5V%{4Ty$#gf#V<%|igk)b@OV`0@<)cj(tl8~lLtt^c^l4{qP z=+n&U0LtyRpmg(_8Qo|3aXCW77i#f{VB?JO3nG!IpQ0Y~m!jBRchn`u>HfQuJwNll zVAMY5XHOX8T?hO@7Vp3b$H)uEOy{AMdsymZ=q)bJ%n&1;>4%GAjnju}Osg@ac*O?$ zpu9dxg-*L(%G^LSMhdnu=K)6ySa|}fPA@*Saj}Z>2Dlk~3%K(Py3yDG7wKij!7zVp zUZ@h$V0wJ|BvKc#AMLqMleA*+$rN%#d95$I;;Iy4PO6Cih{Usrvwt2P0lh!XUx~PGNySbq#P%`8 zb~INQw3Woiu#ONp_p!vp3vDl^#ItB06tRXw88L}lJV)EruM*!ZROYtrJHj!X@K$zJ zp?Tb=Dj_x1^)&>e@yn{^$B93%dFk~$Q|0^$=qT~WaEU-|YZZzi`=>oTodWz>#%%Xk z(GpkgQEJAibV%jL#dU)#87T0HOATp~V<(hV+CcO?GWZ_tOVjaCN13VQbCQo=Dt9cG znSF9X-~WMYDd66Rg8Ktop~CyS7@Pj@Vr<#Ja4zcq1}FIoW$@3mfd;rY_Ak^gzwqqD z^4<_kC2Eyd#=i8_-iZ&g_e#$P`;4v zduoZTdyRyEZ-5WOJwG-bfw*;7L7VXUZ8aIA{S3~?()Yly@ga|-v%?@2vQ;v&BVZlo7 z49aIo^>Cv=gp)o?3qOraF_HFQ$lO9vHVJHSqq4bNNL5j%YH*ok`>ah?-yjdEqtWPo z+8i0$RW|$z)pA_vvR%IVz4r$bG2kSVM&Z;@U*{Lug-ShiC+IScOl?O&8aFYXjs!(O z^xTJ|QgnnC2!|xtW*UOI#vInXJE!ZpDob9x`$ox|(r#A<5nqbnE)i<6#(=p?C~P-7 zBJN5xp$$)g^l};@EmMIe;PnE=vmPsTRMaMK;K`YTPGP0na6iGBR8bF%;crF3>ZPoLrlQytOQrfTAhp;g){Mr$zce#CA`sg^R1AT@tki!m1V zel8#WUNZfj(Fa#lT*nT>^pY*K7LxDql_!IUB@!u?F&(tfPspwuNRvGdC@z&Jg0(-N z(oBb3QX4em;U=P5G?Y~uIw@E7vUxBF-Ti*ccU05WZ7`m=#4?_38~VZvK2{MW*3I#fXoFG3?%B;ki#l%i#$G_bwYQR-4w>y;2` zMPWDvmL6|DP1GVXY)x+z8(hqaV5RloGn$l&imhzZEZP6v^d4qAgbQ~bHZEewbU~Z2 zGt?j~7`0?3DgK+)tAiA8rEst>p#;)W=V+8m+%}E$p-x#)mZa#{c^3pgZ9Cg}R@XB) zy_l7jHpy(u;fb+!EkZs6@Z?uEK+$x3Ehc8%~#4V?0AG0l(vy{8u@Md5r!O+5t zsa{*GBn?~+l4>rChlbuT9xzEx2yO_g!ARJO&;rZcfjzxpA0Chj!9rI_ZD!j` z6P@MWdDv&;-X5X8o2+9t%0f1vJk3R~7g8qL%-MY9+NCvQb)%(uPK4;>y4tozQ2Dl* zEoR_1#S~oFrd9s%NOkoS8$>EQV|uE<9U*1uqAYWCZigiGlMK~vSUU}f5M9o{<*WW? z$kP)2nG$My*fUNX3SE!g7^r#zTT^mVa#A*5sBP8kz4se+o3y}`EIa)6)VpKmto6Ew z1J-r2$%PM4XUaASlgVNv{BBeL{CqJfFO|+QpkvsvVBdCA7|vlwzf1p$Vq50$Vy*O+ z5Eb85s^J2MMVj53l4_?&Wpd1?faYE-X1ml-FNO-|a;ZRM*Vp!(ods{DY6~yRq%{*< zgq5#k|KJ70q47aO1o{*gKrMHt)6+m(qJi#(rAUw0Uy8~z8IX)>9&PTxhLzh#Oh*vZ zPd1b$Z&R{yc&TF^x?iQCw#tV}la&8^W)B*QZ${19LlRYgu#nF7Zj`~CtO^0S#xp+r zLYwM~si$I>+L}5gLGhN=dyAKO)KqPNXUOeFm#o+3 z&#!bD%aTBT@&;CD_5MMC&_Yi+d@nfuxWSKnYh0%~{EU`K&DLx}ZNI2osu#(gOF2}2 zZG#DdQ|k0vXj|PxxXg-MYSi9gI|hxI%iP)YF2$o< zeiC8qgODpT?j!l*pj_G(zXY2Kevy~q=C-SyPV$~s#f-PW2>yL}7V+0Iu^wH;AiI$W zcZDeX<2q%!-;Ah!x_Ld;bR@`bR4<`FTXYD(%@CI#biP z5BvN;=%AmP;G0>TpInP3gjTJanln8R9CNYJ#ziKhj(+V33zZorYh0QR{=jpSSVnSt zGt9Y7Bnb#Ke$slZGDKti&^XHptgL7 zkS)+b>fuz)B8Lwv&JV*};WcE2XRS63@Vv8V5vXeNsX5JB?e|7dy$DR9*J#J= zpKL@U)Kx?Y3C?A3oNyJ5S*L+_pG4+X*-P!Er~=Tq7=?t&wwky3=!x!~wkV$Ufm(N| z1HY?`Ik8?>%rf$6&0pxq8bQl16Jk*pwP`qs~x~Trcstqe-^hztuXOG zrYfI7ZKvK$eHWi9d{C${HirZ6JU_B`f$v@SJhq?mPpC-viPMpAVwE;v|G|rqJrE5p zRVf904-q{rjQ=P*MVKXIj7PSUEzu_jFvTksQ+BsRlArK&A*=>wZPK3T{Ki-=&WWX= z7x3VMFaCV5;Z=X&(s&M^6K=+t^W=1>_FFrIjwjQtlA|-wuN7&^v1ymny{51gZf4-V zU8|NSQuz!t<`JE%Qbs||u-6T*b*>%VZRWsLPk&umJ@?Noo5#{z$8Q0oTIv00`2A`# zrWm^tAp}17z72^NDu^95q1K)6Yl`Wvi-EZA+*i&8%HeLi*^9f$W;f1VF^Y*W;$3dk|eLMVb_H{;0f*w!SZMoon+#=CStnG-7ZU8V>Iy( zmk;42e941mi7!e>J0~5`=NMs5g)WrdUo^7sqtEvwz8>H$qk=nj(pMvAb4&hxobPA~p&-L5a_pTs&-0XCm zKXZ8BkkriiwE)L2CN$O-`#b15yhuQO7f_WdmmG<-lKeTBq_LojE&)|sqf;dt;llff znf|C$@+knhV_QYVxjq*>y@pDK|DuZg^L{eIgMZnyTEoe3hCgVMd|u)>9knXeBsbP_$(guzw>eV{?5l$ z063cqIysrx82-s6k;vE?0jxzV{@`jY3|*Wp?EdNUMl0#cBP$~CHqv$~sB5%50`m(( zSfD%qnxbGNM2MCwB+KA?F>u__Ti>vD%k0#C*Unf?d)bBG6-PYM!!q;_?YWptPiHo} z8q3M~_y9M6&&0#&uatQD6?dODSU)%_rHen`ANb z{*-xROTC1f9d!8`LsF&3jf{OE8~#;>BxHnOmR}D80c2Eh zd867kq@O$I#zEm!CCZJw8S`mCx}HrCl_Rh4Hsk{Cb_vJ4VA3GK+icku z%lgw)Y@$A0kzEV^#=Zj8i6jPk&Mt_bKDD!jqY3&W(*IPbzYu$@x$|3*aP{$bz-~xE^AOxtbyWvzwaCOHv6+99llI&xT_8)qX3u|y|0rDV z(Hu*#5#cN0mw4OSdY$g_xHo-zyZ-8WW&4r%qW(=5N>0O-t{k;#G9X81F~ynLV__Kz zbW1MA>Pjg0;3V?iV+-zQsll_0jimGuD|0GNW^av|4yes(PkR1bGZwO6xvgCy}ThR7?d&$N`kA3N!Xn5uSKKCT-`{lE1ZYYy?GzL}WF+mh|sgT6K2Z*c9YB zFSpGRNgYvk&#<2@G(vUM5GB|g?gk~-w+I4C{vGu{`%fiNuZIeu@V1qt`-x$E?OR;zu866Y@2^et5GTNCpX#3D=|jD5>lT^vD$ zr}{lRL#Lh4g45Yj43Vs7rxUb*kWC?bpKE1@75OJQ=XahF z5(C0DyF;at%HtwMTyL!*vq6CLGBi^Ey}Mx39TC2$a)UmekKDs&!h>4Hp2TmSUi!xo zWYGmyG)`$|PeDuEL3C6coVtit>%peYQ6S1F4AcA*F`OA;qM+1U6UaAI(0VbW#!q9* zz82f@(t35JH!N|P4_#WKK6Rc6H&5blD6XA&qXahn{AP=oKncRgH!&=b6WDz?eexo* z9pzh}_aBc_R&dZ+OLk+2mK-5UhF`>}{KN7nOxb{-1 zd`S-o1wgCh7k0u%QY&zoZH}!<;~!)3KTs-KYRg}MKP3Vl%p$e6*MOXLKhy)<1F5L* z+!IH!RHQKdpbT8@NA+BFd=!T==lzMU95xIyJ13Z6zysYQ1&zzH!$BNU(GUm1QKqm< zTo#f%;gJ@*o;{#swM4lKC(QQ<%@;7FBskc7$5}W9Bi=0heaVvuvz$Ml$TR8@}qVn>72?6W1VAc{Mt}M zkyTBhk|?V}z`z$;hFRu8Vq;IvnChm+no@^y9C1uugsSU`0`46G#kSN9>l_ozgzyqc zZnEVj_a-?v@?JmH1&c=~>-v^*zmt`_@3J^eF4e))l>}t2u4L`rueBR=jY9gZM;`nV z>z(i<0eedu2|u-*#`SH9lRJ7hhDI=unc z?g^30aePzkL`~hdH*V7IkDGnmHzVr%Q{d7sfb7(|)F}ijXMa7qg!3eHex)_-$X;~* z>Zd8WcNqR>!`m#~Xp;r4cjvfR{i04$&f1)7sgen9i>Y|3)DCt^f)`uq@!(SG?w|tdSLS+<;ID74 zTq8FJYHJHrhSwvKL|O1ZnSbG-=l6Eg-Suv60Xc;*bq~g+LYk*Q&e)tR_h3!(y)O}$ zLi*i5ec^uHkd)fz2KWiR;{RosL%peU`TxM7w*M9m#rAiG`M)FTB>=X@|A`7x)zn5- z$MB5>0qbweFB249EI@!zL~I7JSTZbzjSMMJ=!DrzgCS!+FeaLvx~jZXwR`BFxZ~+A z=!Pifk?+2awS3DVi32fgZRaqXZq2^->izZpIa1sEog@01#TuEzq%*v359787rZoC( z9%`mDR^Hdxb%XzUt&cJN3>Cl{wmv{@(h>R38qri1jLKds0d|I?%Mmhu2pLy=< zOkKo4UdS`E9Y~z3z{5_K+j~i7Ou}q0?Qv4YebBya1%VkkWzR%+oB!c?9(Ydaka32! zTEv*zgrNWs`|~Q{h?O|8s0Clv{Kg0$&U}?VFLkGg_y=0Qx#=P${6SNQFp!tDsTAPV z0Ra{(2I7LAoynS0GgeQ6_)?rYhUy}AE^$gwmg?i!x#<9eP=0N=>ZgB#LV9|aH8q#B za|O-vu(GR|$6Ty!mKtIfqWRS-RO4M0wwcSr9*)2A5`ZyAq1`;6Yo)PmDLstI zL2%^$1ikF}0w^)h&000z8Uc7bKN6^q3NBfZETM+CmMTMU`2f^a#BqoYm>bNXDxQ z`3s6f6zi5sj70>rMV-Mp$}lP|jm6Zxg}Sa*$gNGH)c-upqOC7vdwhw}e?`MEMdyaC zP-`+83ke+stJPTsknz0~Hr8ea+iL>2CxK-%tt&NIO-BvVt0+&zsr9xbguP-{3uW#$ z<&0$qcOgS{J|qTnP;&!vWtyvEIi!+IpD2G%Zs>;k#+d|wbodASsmHX_F#z?^$)zN5 zpQSLH`x4qglYj*{_=8p>!q39x(y`B2s$&MFQ>lNXuhth=8}R}Ck;1}MI2joNIz1h| zjlW@TIPxM_7 zKBG{Thg9AP%B2^OFC~3LG$3odFn_mr-w2v**>Ub7da@>xY&kTq;IGPK5;^_bY5BP~ z2fiPzvC&osO@RL)io905e4pY3Yq2%j&)cfqk|($w`l`7Pb@407?5%zIS9rDgVFfx! zo89sD58PGBa$S$Lt?@8-AzR)V{@Q#COHi-EKAa5v!WJtJSa3-Wo`#TR%I#UUb=>j2 z7o-PYd_OrbZ~3K`pn*aw2)XKfuZnUr(9*J<%z@WgC?fexFu%UY!Yxi6-63kAk7nsM zlrr5RjxV45AM~MPIJQqKpl6QmABgL~E+pMswV+Knrn!0T)Ojw{<(yD8{S|$(#Z!xX zpH9_Q>5MoBKjG%zzD*b6-v>z&GK8Dfh-0oW4tr(AwFsR(PHw_F^k((%TdkglzWR`iWX>hT1rSX;F90?IN4&}YIMR^XF-CEM(o(W@P#n?HF z!Ey(gDD_0vl+{DDDhPsxspBcks^JCEJ$X74}9MsLt=S?s3)m zQ0cSrmU*<u;KMgi1(@Ip7nX@4Zq>yz;E<(M8-d0ksf0a2Ig8w2N-T69?f}j}ufew}LYD zxr7FF3R7yV0Gu^%pXS^49){xT(nPupa(8aB1>tfKUxn{6m@m1lD>AYVP=<)fI_1Hp zIXJW9gqOV;iY$C&d=8V)JJIv9B;Cyp7cE}gOoz47P)h)Y?HIE73gOHmotX1WKFOvk z5(t$Wh^13vl;+pnYvJGDz&_0Hd3Z4;Iwa-i3p|*RN7n?VJ(whUPdW>Z-;6)Re8n2# z-mvf6o!?>6wheB9q}v~&dvd0V`8x&pQkUuK_D?Hw^j;RM-bi_`5eQE5AOIzG0y`Hr zceFx7x-<*yfAk|XDgPyOkJ?){VGnT`7$LeSO!n|o=;?W4SaGHt4ngsy@=h-_(^qX)(0u=Duy02~Fr}XWzKB5nkU$y`$67%d^(`GrAYwJ? zN75&RKTlGC%FP27M06zzm}Y6l2(iE*T6kdZPzneMK9~m)s7J^#Q=B(Okqm1xB7wy< zNC>)8Tr$IG3Q7?bxF%$vO1Y^Qhy>ZUwUmIW5J4=ZxC|U)R+zg4OD$pnQ{cD`lp+MM zS3RitxImPC0)C|_d18Shpt$RL5iIK~H z)F39SLwX^vpz;Dcl0*WK*$h%t0FVt`Wkn<=rQ6@wht+6|3?Yh*EUe+3ISF zbbV(J6NNG?VNIXC)AE#(m$5Q?&@mjIzw_9V!g0#+F?)2LW2+_rf>O&`o;DA!O39Rg ziOyYKXbDK!{#+cj_j{g;|IF`G77qoNBMl8r@EIUBf+7M|eND2#Y#-x=N_k3a52*fi zp-8K}C~U4$$76)@;@M@6ZF*IftXfwyZ0V+6QESKslI-u!+R+?PV=#65d04(UI%}`r z{q6{Q#z~xOh}J=@ZN<07>bOdbSI(Tfcu|gZ?{YVVcOPTTVV52>&GrxwumlIek}OL? zeGFo#sd|C_=JV#Cu^l9$fSlH*?X|e?MdAj8Uw^@Dh6+eJa?A?2Z#)K zvr7I|GqB~N_NU~GZ?o1A+fc@%HlF$71Bz{jOC{B*x=?TsmF0DbFiNcnIuRENZA43a zfFR89OAhqSn|1~L4sA9nVHsFV4xdIY_Ix>v0|gdP(tJ^7ifMR_2i4McL#;94*tSY) zbwcRqCo$AnpV)qGHZ~Iw_2Q1uDS2XvFff#5BXjO!w&1C^$Pv^HwXT~vN0l}QsTFOz zp|y%Om9}{#!%cPR8d8sc4Y@BM+smy{aU#SHY>>2oh1pK+%DhPqc2)`!?wF{8(K$=~ z<4Sq&*`ThyQETvmt^NaN{Ef2FQ)*)|ywK%o-@1Q9PQ_)$nJqzHjxk4}L zJRnK{sYP4Wy(5Xiw*@M^=SUS9iCbSS(P{bKcfQ(vU?F~)j{~tD>z2I#!`eFrSHf;v zquo)*?AW$#+qP}n$%<{;wr$()*yw5N`8_rOTs^kOqyY;dIjsdw*6k_mL}v2V9C_*sK<_L8 za<3)C%4nRybn^plZ(y?erFuRVE9g%mzsJzEi5CTx?wwx@dpDFSOAubRa_#m+=AzZ~ z^0W#O2zIvWEkxf^QF660(Gy8eyS`R$N#K)`J732O1rK4YHBmh|7zZ`!+_91uj&3d} zKUqDuDQ8YCmvx-Jv*$H%{MrhM zw`g@pJYDvZp6`2zsZ(dm)<*5p3nup(AE6}i#Oh=;dhOA=V7E}98CO<1Lp3*+&0^`P zs}2;DZ15cuT($%cwznqmtTvCvzazAVu5Ub5YVn#Oo1X|&MsVvz8c5iwRi43-d3T%tMhcK#ke{i-MYad@M~0B_p`Iq){RLadp-6!peP^OYHTq~^vM zqTr5=CMAw|k3QxxiH;`*;@GOl(PXrt(y@7xo$)a3Fq4_xRM_3+44!#E zO-YL^m*@}MVI$5PM|N8Z2kt-smM>Jj@Dkg5%`lYidMIbt4v=Miqj4-sEE z)1*5VCqF1I{KZVw`U0Wa!+)|uiOM|=gM65??+k|{E6%76MqT>T+;z{*&^5Q9ikL2D zN2}U$UY)=rIyUnWo=yQ@55#sCZeAC}cQA(tg5ZhqLtu*z>4}mbfoZ>JOj-|a2fR$L zQ(7N$spJL_BHb6Bf%ieO10~pQX%@^WKmQOQNOUe4h|M}XOTRL`^QVpN$MjJ7t+UdP zDdzcK3e7_fdv)PPR>O|-`kVC1_O08_WGcQXj*W5d?}3yE?-fZ_@mE-zcq6^Mn49!; zDDcus*@4dFIyZ%_d3*MO=kk3$MQ^?zaDR1-o<<7T=;`8 zz2(w>U9IQ+pZ<*B;4dE@LnlF7YwNG>la#rQ@mC4u@@0_pf40+<&t)+9(YOgCP9(aJ z5v7SRi(y4;fWR)oHRxf2|Va=?P zXq&7GtTYd+3U{Wm5?#e7gDwz#OFbvHL4Jq{BGhNYzh|U!1$_WEJef&NKDD9)*$d+e ztXF1-rvO5OBm{g9Mo8x?^YB;J|G*~3m@2y%Fyx6eb*O^lW- z`JUL?!exvd&SL_w89KoQxw5ZZ}7$FD4s>z`!3R}6vcFf0lWNYjH$#P z<)0DiPN%ASTkjWqlBB;8?RX+X+y>z*$H@l%_-0-}UJ>9l$`=+*lIln9lMi%Q7CK-3 z;bsfk5N?k~;PrMo)_!+-PO&)y-pbaIjn;oSYMM2dWJMX6tsA5>3QNGQII^3->manx z(J+2-G~b34{1^sgxplkf>?@Me476Wwog~$mri{^`b3K0p+sxG4oKSwG zbl!m9DE87k>gd9WK#bURBx%`(=$J!4d*;!0&q;LW82;wX{}KbPAZtt86v(tum_1hN z0{g%T0|c(PaSb+NAF^JX;-?=e$Lm4PAi|v%(9uXMU>IbAlv*f{Ye3USUIkK`^A=Vn zd))fSFUex3D@nsdx6-@cfO1%yfr4+0B!uZ)cHCJdZNcsl%q9;#%k@1jh9TGHRnH2(ef0~sB(`82IC_71#zbg=NL$r=_9UD-~ z8c54_zA@jEhkJpL?U`$p&|XF}OpRvr`~}+^BYBtiFB1!;FX;a3=7jkFSET)41C@V` zxhfS)O-$jRJ|R}CL{=N{{^0~c8WuLOC?`>JKmFGi?dlfss4Y^AAtV#FoLvWoHsEeg zAAOc+PXl@WoSOOu_6Tz~K=>OK@KL#^re(1oPrhcen@+#ouGG|g(;A5(SVuE~rp$?# zR$o(46m}O~QtU{!N-s}RfYh+?*m9v#w@;=DEXI;!CEf0bHEgI<~T7&VnIvtG%o=s@3c zG1AT(J>!bph%Z1^xT_aO>@%jWnTW=8Z^2k0?aJ(8R5VA}H+mDh>$b9ua{)I5X9$%b z&O%F;3AIW&9j3=Q1#8uL%4_2mc3xX2AdzYJi%#Q#PEY3lk<#u=Pc?EJ7qt4WZX)bH481F8hwMr^9C^N8KUiWIgcVa=V` z4_7By=0Fkq>M6N?Bis+nc$YOqN4Qs@KDdQCy0TTi;SQ7^#<wi9E4T)##ZVvS(SK4#6j^QjHIUh<0_ZD2Yl+t?Z2;4zA zvI<(>jLvJae#sIA`qHl0lnkcU$>Rrkcnp{E;VZwW`cucIIWi{hftjEx-7>xXWRsa4VH(CCyuleyG8a+wOY8l*y>n@ zxZb}o=p9lR)9N^FKfkvPH-t2{qDE=hG8Z!`JO>6aJ^hKJVyIV&qGo*YSpoU(d)&OE ziv2#o`&W>(IK~sH{_5aPL;qcn{2%Gae+r5G4yMl5U)EB>ZidEo|F@f)70WN%Pxo`= zQ+U-W9}iLlF=`VeGD0*EpI!(lVJHy(%9yFZkS_GMSF?J*$bq+2vW37rwn;9?9%g(Jhwc<`lHvf6@SfnQaA&aF=los z0>hw9*P}3mWaZ|N5+NXIqz#8EtCtYf-szHPI`%!HhjmeCnZCim3$IX?5Il%muqrPr zyUS#WRB(?RNxImUZHdS&sF8%5wkd0RIb*O#0HH zeH~m^Rxe1;4d(~&pWGyPBxAr}E(wVwlmCs*uyeB2mcsCT%kwX|8&Pygda=T}x{%^7 z)5lE5jl0|DKd|4N*_!(ZLrDL5Lp&WjO7B($n9!_R3H(B$7*D zLV}bNCevduAk2pJfxjpEUCw;q$yK=X-gH^$2f}NQyl(9ymTq>xq!x0a7-EitRR3OY zOYS2Qh?{_J_zKEI!g0gz1B=_K4TABrliLu6nr-`w~g2#zb zh7qeBbkWznjeGKNgUS8^^w)uLv*jd8eH~cG-wMN+{*42Z{m(E{)>K7O{rLflN(vC~ zRcceKP!kd)80=8ttH@14>_q|L&x0K^N0Ty{9~+c>m0S<$R@e11>wu&=*Uc^^`dE9RnW+)N$re2(N@%&3A?!JdI?Vx;X=8&1+=;krE8o%t z32Gi2=|qi=F?kmSo19LqgEPC5kGeJ5+<3TpUXV3Yik_6(^;SJw=Cz`dq(LN)F9G<$ za-aTiEiE}H(a>WITnJ+qG$3eCqrKgXFRiIv=@1C4zGNV!+ z{{7_AulEPXdR+~$sJ+yHA73j_w^4>UHZFnK$xsp}YtpklHa57+9!NfhOuU7m4@WQp z5_qb`)p|6atW#^b;KIj?8mWxF(!eN<#8h=Ohzw&bagGAS4;O^;d-~#Ct0*gpp_4&( ztwlS2Jf#9i>=e5+X8QSy**-JE&6{$GlkjNzNJY;K5&h|iDT-6%4@g;*JK&oA8auCovoA0+S(t~|vpG$yI+;aKSa{{Y(Tnm{ zzWuo^wgB?@?S9oKub=|NZNEDc;5v@IL*DBqaMkgn@z+IeaE^&%fZ0ZGLFYEubRxP0WG`S| zRCRXWt+ArtBMCRqB725odpDu(qdG;jez|6*MZE_Ml<4ehK_$06#r3*=zC9q}YtZ*S zBEb2?=5|Tt;&QV^qXpaf?<;2>07JVaR^L9-|MG6y=U9k{8-^iS4-l_D(;~l=zLoq% zVw05cIVj1qTLpYcQH0wS1yQ47L4OoP;otb02V!HGZhPnzw`@TRACZZ_pfB#ez4wObPJYcc%W>L8Z*`$ZPypyFuHJRW>NAha3z?^PfHsbP*-XPPq|`h} zljm&0NB7EFFgWo%0qK`TAhp220MRLHof1zNXAP6At4n#(ts2F+B`SaIKOHzEBmCJ3 z$7Z&kYcKWH&T!=#s5C8C_UMQ4F^CFeacQ{e0bG?p5J~*mOvg>zy_C{A4sbf!JT+JK z>9kMi=5@{1To&ILA)1wwVpOJ&%@yfuRwC9cD2`0CmsURi5pr2nYb6oBY&EmL9Gd@i zj{F}h!T*#a<@6mKzogszCSUCq5pxGeCq-w2|M>ZzLft79&A-&!AH~#ER1?Z=ZavC0 z)V05~!^Nl{E5wrkBLnrxLoO|AG&hoOa6AV2{KWL#X*UItj_W`}DEbIUxa;huN0S#` zUtXHi+cPyg-=Gad`2Aw-HWO*;`_&j9B3GHLy(f^@Do@Wu*5{FANC+>M*e6(YAz4k^ zcb_n4oJgrykBM1T!VN(2`&(rNBh+UcE}oL@A~Fj}xf0|qtJK?WzUk{t=M15p!)i7k zM!`qg^o;xR*VM49 zcY_1Yv0?~;V7`h7c&Rj;yapzw2+H%~-AhagWAfI0U`2d7$SXt=@8SEV_hpyni~8B| zmy7w?04R$7leh>WYSu8)oxD`88>7l=AWWJmm9iWfRO z!Aa*kd7^Z-3sEIny|bs9?8<1f)B$Xboi69*|j5E?lMH6PhhFTepWbjvh*7 zJEKyr89j`X>+v6k1O$NS-`gI;mQ(}DQdT*FCIIppRtRJd2|J?qHPGQut66-~F>RWs=TMIYl6K=k7`n1c%*gtLMgJM2|D;Hc|HNidlC>-nKm5q2 zBXyM)6euzXE&_r%C06K*fES5`6h-_u>4PZs^`^{bxR?=s!7Ld0`}aJ?Z6)7x1^ zt3Yi`DVtZ*({C;&E-sJ1W@dK29of-B1lIm)MV4F?HkZ_3t|LrpIuG~IZdWO@(2S6& zB2jA7qiiGi%HO2fU5|yY#aC<57DNc7T%q9L>B_Qh@v#)x(?}*zr1f4C4p8>~v2JFR z8=g|BIpG$W)QEc#GV1A}_(>v&=KTqZbfm)rqdM>}3n%;mv2z*|8%@%u)nQWi>X=%m?>Thn;V**6wQEj#$rU&_?y|xoCLe4=2`e&7P16L7LluN^#&f1#Gsf<{` z>33Bc8LbllJfhhAR?d7*ej*Rty)DHwVG)3$&{XFKdG?O-C=-L9DG$*)_*hQicm`!o zib(R-F%e@mD*&V`$#MCK=$95r$}E<4%o6EHLxM0&K$=;Z#6Ag0Tcl9i+g`$Pcz&tP zgds)TewipwlXh0T)!e~d+ES8zuwFIChK+c4;{!RC4P(|E4$^#0V*HhXG80C;ZD-no z!u+uQ;GCpm^iAW&odDVeo+LJU6qc$4+CJ6b6T&Y^K3(O_bN{@A{&*c6>f6y@EJ+34 zscmnr_m{V`e8HdZ>xs*=g6DK)q2H5Xew?8h;k{)KBl;fO@c_1uRV>l#Xr+^vzgsub zMUo8k!cQ>m1BnO>TQ<)|oBHVATk|}^c&`sg>V5)u-}xK*TOg%E__w<*=|;?? z!WptKGk*fFIEE-G&d8-jh%~oau#B1T9hDK;1a*op&z+MxJbO!Bz8~+V&p-f8KYw!B zIC4g_&BzWI98tBn?!7pt4|{3tm@l+K-O>Jq08C6x(uA)nuJ22n`meK;#J`UK0b>(e z2jhQ{rY;qcOyNJR9qioLiRT51gfXchi2#J*wD3g+AeK>lm_<>4jHCC>*)lfiQzGtl zPjhB%U5c@-(o}k!hiTtqIJQXHiBc8W8yVkYFSuV_I(oJ|U2@*IxKB1*8gJCSs|PS+EIlo~NEbD+RJ^T1 z@{_k(?!kjYU~8W&!;k1=Q+R-PDVW#EYa(xBJ2s8GKOk#QR92^EQ_p-?j2lBlArQgT z0RzL+zbx-Y>6^EYF-3F8`Z*qwIi_-B5ntw#~M}Q)kE% z@aDhS7%)rc#~=3b3TW~c_O8u!RnVEE10YdEBa!5@&)?!J0B{!Sg}Qh$2`7bZR_atZ zV0Nl8TBf4BfJ*2p_Xw+h;rK@{unC5$0%X}1U?=9!fc2j_qu13bL+5_?jg+f$u%)ZbkVg2a`{ZwQCdJhq%STYsK*R*aQKU z=lOv?*JBD5wQvdQIObh!v>HG3T&>vIWiT?@cp$SwbDoV(?STo3x^DR4Yq=9@L5NnN z_C?fdf!HDWyv(?Uw={r`jtv_67bQ5WLFEsf@p!P3pKvnKh_D}X@WTX^xml)D^Sj8Er?RRo2GLWxu`-Bsc ztZ*OU?k$jdB|C6uJtJ#yFm{8!oAQj<0X}2I(9uuw#fiv5bdF$ZBOl@h<#V401H;_` zu5-9V`$k1Mk44+9|F}wIIjra8>7jLUQF|q zIi8JCWez)_hj3aHBMn6(scZd9q#I<3MZzv}Yjc^t_gtGunP?|mAs+s!nGtNlDQ?ZO zgtG2b3s#J8Wh#0z1E|n_(y*F5-s7_LM0Rj3atDhs4HqmZc|?8LDFFu}YWZ}^8D`Yi z`AgJWbQ)dK(Qn?%Z=YDi#f%pLZu_kRnLrC2Qu|V>iD=z=8Y%}YY=g8bb~&dj;h7(T zPhji+7=m2hP~Xw`%Ma7o#?jo#+{IY&YkSeg^os)9>3?ZB z|Bt1-;uj0%|M_9k;#6c+)a)0oA}8+=h^#A_o=QR@jX^|y`YIR9V8ppGX>)FS%X>eB zD&v$!{eebt&-}u8z2t`KZLno>+UPceqXzuZe2u zHYz7U9}_Sw2da@ugQjBJCp(MNp~mVSk>b9nN*8UE`)88xXr88KXWmTa;FKKrd{Zy> zqL}@fo*7-ImF(Ad!5W7Z#;QLsABck0s8aWQohc@PmX3TK#f$`734%ifVd{M!J1;%A z)qjpf=kxPgv5NpUuUyc=C%MzLufCgTEFXQawxJo)rv4xG&{TKfV;V#ggkxefi`{sS zX+NQ8yc>qcdU zUuLM~0x32S& z|NdQ-wE6O{{U-(dCn@}Ty2i=)pJeb-?bP+BGRkLHp&;`Vup!}`pJdth`04rFPy;$a zkU=wWy;P$BMzf+0DM(IbYh`Dk*60l?3LAU;z3I^tHbXtB5H$Op=VEPL8!mydG>$T@S9;?^}mmDK)+x*TCN_Z`%SG{Hv0;P*>(P@^xe2%mUldaqF9$ zG+Oq<5)pQ+V4%%R>bK|~veGY4T&ALmnT@W*I)aT~2(zk>&L9PVG9&;LdC%xAUA`gC4KOGLHiqxbxMTA^!+T*7G;rF z;7ZNc3t&xd!^{e|E(7-FHu@!VrWQ8CB=pP;#jG#yi6(!BfCV(rrY~7D)0vCp_Ra@9 zSuu)to5ArdCAYX}MU&4u6}*{oe=Ipe09Z7|z41Y&lh`olz{lmO>wZpnwx+x4!~7@37|N~@wr=Tqf*+}4H{7GE*BvptMyhTAwu?VYEaj~BiJm7 zQw98FiwJTx0`qY8Y+268mkV#!grHt3S_69w?1TRi-P^2iNv=ajmQIkoX7OkY=Cpvk zs;-Gv?R(YEAb(%@0tNz)_r8bwE zPh75RwYWr?wPZ0rkG<5WwX|fjqCBP4^etDs4{ZF9+|c#@Y60nB)I_U5Z$FYe=SLXI zn}7T@%LLA>*fWf9X?vSD3tpXSEk%H{*`ZmRik>=se}`HWHKL|HHiXovNzTS~-4e?1 zgVLCWv@)(($B*C3rGn`N#nzUyVrSw>OiD;4`i15QHhdicm}A(CP)UO>PO(3!(=v-x zrsKIUCbJMb>=IB}20b{69IdU(vQ%Ti0Zm?VLQoL++HK(G%^P{wuH;|@Cn7Ncybw%D zDhWh??1)6j5j7RbEy-{rVefvMhV|Su8n9`m>4LU^TanMzUIy>S&UbSKJW56C(K5NX z*Ypzh@KaMD=ank_G}Di5SaDTz3@Ze;5$pkK$7Pz?SBj&njRD4so5e0Msp_p}|D8aq zDvU@2s@T_?)?f5XEWS3j_%6%AK-4aXU5!Xzk{fL%mI~AYWP?q}8X}}ZV3ZzKLFvmm zOHWR3OY0l)pZ#y@qGPkjS~mGj&J8uJnU<~+n?qrBTsf>8jN~i17c~Ry=4wM6YrgqZ@h`8`?iL&$8#fYrt7MinX)gEl7Sh_TS zOW{AyVh%SzW|QYBJo8iEVrA!yL(Lm&j6GB0|c?~N{~?Qyj^qjbs>E~lpWo!q!lNwfr(DPZVe zaazh2J{{o=*AQ|Wxz*!pBwYx_9+G$12{5G3V!0F=yB=tPa zEgh47ryFGZc;E%A{m4lJoik6@^k%E0{99pIL1gE;NqT!1dl5UV>RkEWtP)3f_5hG6 zs%M}qX?DNaI+4HN*-wn`HOjlEz0}K{o0fG~_%%c8sDq)6Z2)6msormgjhmtdzv;Hy{BwHXKp&3Bf9paw+J4r-E zBoWmEr6%r3t?F`38eCyr+)`In1&qS9`gcQ|rHBP`LlCl=_x?ck0lISju@hW*d~EQ) zU2sgl#~^(ye%SeZR%gZ=&?1ZxeU1v@44;`}yi^j0*Efg1lIFcC*xEj}Y~k|(I&}7z zXXi2xe>mc_cC`K=v8&-5p%=m=z47Z6HQUzNi5=oCeJ$-Bo#B0=i}CemYbux7I~B*e z3hSneMn$KHNXf4;wr5fkuA+)IzWs8gJ%$o0Q^vfnXQLnABJW;NRN(83Dcbu9dLnvo z6mweq2@yPK%0|R9vT)B$&|S!QO6f(~J^Z+b`G(j1;HKOq_fG$-36zvBI$`hvA94i( zGPGVo&Y%nRsodWyzn0bD0VZlG?=0M23Mc2V1_7>R^3`|z_5B;}JnIp0FI}9XNKJ^o z7xYKOFdYxX?UW~4PC!hVz86aP+dsOkBA(sz3J+6$KL`SU4tRwWnnCQN z&+C92x#?WNBaxf?Q^Q}@QD5rC=@aj8SIg;(QG06k^C5bZFwmiAyFl|qPX^@e2*J%m z1Fu_Jk5oZEB&%YN54Y8;?#l#GYHr->Q>-?72QSIc+Gx^C%;!$ezH>t<=o$&#w*Y_Y7=|PH*+o57yb>b&zpTUQv)0raRzrkL=hA-Z(10vNYDiT487% zzp2zr4ujA#rQ;Hxh7moX(VldzylrhKvPnl9Fb?LCt#|==!=?2aiZ`$Wx*^Lv@5r_ySpQ_vQ{h2_>I`Wd|GjXY?!>=X8v}wmTc+Nqi-?ln zQa28}pDfvjpheaM2>AYDC2x`+&QYH(jGqHDYLi}w55O5^e9s=Ui^hQ~xG*&TU8I}Y zeH~7!$!=a+1_RZe{6G$BICI6R2PKE{gYW8_ss!VY*4uXw8`?o>p=fC>n&DGzxJ$&w zoIxdMA4I503p(>m9*FnFeEJQ5Nd^WK*>I_79(IA)e#hr2qZ8Y!RMcbS}R z(2;{C#FXUv_o-0C=w18S!7fh!MXAN-iF!Oq4^n#Q{ktGsqj0nd~}H&v#Brb}6cd=q75>E;O8p?6a;CR4FiN zxyB?rmw)!Kxrh&7DbPei$lj)r+fDY&=qH+ zKX`VtQ=2fc?BwarW+heGX&C!Qk;F;mEuPC*8 z0Tv0h2v&J#wCU_0q-Wq9SHLOvx@F!QQQN+qN^-r-OgGRYhpu%J-L~SiU7o@0&q6t( zxtimUlrTO)Zk6SnXsm8l$`GW-ZHKNo1a}<%U4Ng z(k8=jTPjoZZ%$(tdr@17t|MV8uhdF4s|HbPO)SF`++T%r=cNRx&$BkW7|$)u%Anm; zGOv)GmwW*J5DzeI8Vk_HZ4v?Mmz$vpL#M%+vyeiW;BK6w|_S0 z{pqGZxI%-~r~b@=F#^|^+pwQE*qc8+b7!b}A$8OjqA%6=i?yI;3BcDP1xU_UVYa?^ z3o-aYI`X%p!w>>cRe_3rtp}@f1d&AQZ_2eeB;1_+9(`jpC22z+w%(kh6G3}Rz&~U_ z5_LxI)7~`nP=ZdVO&`rUP8`b-t^Vqi;Yt~Ckxauk>cj@W0v=E}$00?Jq(sxBcQHKc z(W}uAA*+e%Q)ybLANOe7gb4w^eX#gI%i56{GJz6NVMA{tQ! z3-}Mdjxfy6C#;%_-{5h|d0xP0YQ!qQ^uV*Y&_F9pP!A;qx#0w*)&xPF0?%{;8t+uWA#vrZ|CBD0wz@?M=ge(^#$y< zIEBv1wmL`NKAe&)7@UC9H^t0E0$}Odd>u4cQGdKdlfCn0`goK~uQ0xrP*{VJ*TjR; za16!CM>-msM@KcxU|HsEGgn{v>uy1R?slG}XL5)*rLTNHdYowI*;qe~TZH z|1Ez0TXrc@khWdmgZJKV6+aJVlFsv5z~PhdC>=^tL5BC|3tyMuXSdsEC3L0qw60S>ecX zi&`-rZ=GqxfrH{+JvkuOY?{d?;HZmv z2@4+ep(g+yG6W%NrdJe2%miVnb8nX{yXK>?5DC#GA6IIXU-`!?8+xm(8r)Vi;=?g! zmOK)$jQv~nakv-|`0=Z`-Ir1%2q8~>T7-k=DyG^Rjk7|!y(QO&)cBEKdBrv~E$7_y z&?K!6DP;Qr_0fbbj86^W(4M{lqGx6Mb;`H;>IDqqGG@3I+oZg_)nb=k|ItMkuX2Y@ zYzDmMV~3{y43}y%IT+)nBCIzi^Cr1gEfyrjrQ7gXAmE$4Hj(&CuyWXjDrkV~uP>9T zCX5cXn!1oEjO!P#71iyGh#q+8qrD8)h#wE#x;bz+a^sQyAntO(UhxFVUqR^dux8 zOsN=Nzw5imC7U~@t^#gLo}j#vge3C6o(%0V5<0d~1qlxe4%yD~{EDGzZ40)ZIXytB zg3^NFa(98n#OwV!DJqgy;xitYp)Q(W$(J0<0Xr5DHFYO$zuUkC(4}Zv2uB`O@_TR7 zG3Ehp!K;YLl%2&*oz3`{p|hj`Bzd(@BMVVA2ruucGsD0mj`^a1Qw3WsT7_z)c_<&j zvy(u5yod#@5~XT5KRPqKKp*2Q`rN!6gd#Wdh9;806oaWGi6~pB78)SYEhIYZDo*^} z-93olUg^Vh29G^}wQ8p(BK0(<7R6(8><}Bia@h%62o%ONE`~PiaIdfy!HGUm0GZdJ z&^aK^@JP|8YL`L(zI6Y#c%Q{6*APf`DU#$22PjfSP@T4xKHW~A(vL$pvf+~p{QLdx^j4sUA;?IZ zVWID3OA_VkZ_3?~Yy1yn?4Ev^r}1~c!n9;Z7pRn*D$^J%4QyWNvPkKF5{{bMBefvT zFZu|hco!0Me-__dyLe6S!}>m?I-x%1{Zr3_Qi!(T@)hh%zBE1my2AWl^XY#v%TSX3 z;?rn8Chf+?>SQ|v8gl$*f5dpix{i;?651ezum2tQCU`9sKxuZG2A9o(M~}G`*q2m#iW# z?0fJS+j_XxOk1fb+Nx6$rZqhg!x}eO!3nMy6a@4doqY&?(c`8$^B?0InG4T&{mu*3 zpcYaf)z__Dgr%+6UFYYXSu(oRrPYGviL~FKc{0X%tnt+9slAC|W0F8l^(@8qDXks~ zOZgs?O-6e-12Q>w5d?|E$P&oyah^mqd(Cu#uNtjCpp&F}G&biuW49LGkFCDEYe0S* zo-W_}-yR$%Z^03i8{&R&oU1BbY9$ER3RR5LjocL5er=CclJwCH>M6ge$R*Wi zd3zUoE*~?a1owq&DiT2#_Q)~tr$;Q=BJrMHrG@j3^J=#U3 zmd)ubgUu(9g(qmjx~7+!$9^%~fpi9$*n=+HfX&<>a}qkD;Ky@piqolGdF>VEX?(!DuO z{=7v}0Y|$@o3c`s^K3&3uMD0T1NMMrgwn$+g{=Tr&IHH@S`Aj4zn z{Mpln$!B->uUYTFe+75e!ee*euX`W%xA&g!-%s-YJ-sJP*(~t=44RSN6K5u7}a9;40`KN#fg#N>-s?YE6*qS9zkP2*=!a%O&aJ4>)JR>{O6n)(@ z$2mBny!kLLgnPgrX&!fTVnSXLEY}ZR{fLL4Jw;uI;)DhJJ<;%5&X%lg5)mYwwyHK=W zS`3yPe&Ncy_OA!;HvQV1TI3}7jib>EhqT!PZIoDg_Wm4OraFX|nGmCsXj|{&g!(_; z;(_uG68gxxy{T#wPPuETHggw6G8nCyc`=x89;arkuB%&7rbL&VzCm|jQFg8me78tu z2l-K|IsFgX@am)(c=1IWYX5fhCjIZ&9MBs9(Qg*`U5T`@H2xqzQxj`1bK#2gmDn2=yI!n0*6A2{JuA3~uX7 zsXocdxHHMV^?dsW+s}S8j8Mq!pjB8=NytY%-MEgx+HnavDcotwYmA{J%RzlLhZ{?t-W6 zr-JA(qw%OVMtv?N?75aid-cY`ZJLFT`fh-fZ0()^P(3wyQ`wDHG$9cUmEr^~!;iGV z#ukG&nXeLHarXD$=({)#Es!?%=2*`or!FE4N6XWEo>>`}ocE?kmQb+2JP;-))sn0V zoC6&be>gf!XD#yJO`FCF(Ts|~ zUbO#y44!V-U|&SEr1#r^_fJ1Ql3isjfCVAfvNga7OBJG^YAP`r8d{))?5D{xm+FB~ z*>D&s+(Z(o*)gx|EpJAYlnk@A&=zpkYvak{W~Y}~8M_p7Uu1bY#7m{Mq-#4-xw3lH z{(8=+O+WrU)^C(;qRm%NiKnO+<0W6EF|>n#fw%OKxr!@d%dWHOmv~#M2{eIlxaRW% z;k6v=< zZ{5W}@ik?!__~T?0QX0xX^^}Isw8Ey-yXCwQkS!)xT-ZdV6A`#HdMECf78X){%6)7 znLSKwqK}!hdkVk2QjAZ?j%&Id%WY~^<$ntL2p8J;eq$VCp%Cg{)oW&%Z3vp6ihm9D zIlPC#zVE^>62fNwZqsk)mt+E#rrU@%4vWtkYK)Qv$a*}$T2ZJCtTFI`tuLb*7j`!^eR`?d9h2TjF-h2Yr+ z){T|kWBNyrA5vpZE{Ez_)pG7Zf%QXqW)R@(<_0oOP?cwg&gib`IjKTzN_R*5A)G>_ z1r#qXr5i)U$$wv(kXfodOg=h$UZk78c@50K^wOMcKCx26s{q}vdOioj1n!&if0FRY zSi@$}gn4KW;2<;+lY?&>M6GNrRtfUTEIzqih@yLMQA2(17m3)hLTa@zlj=oHqaCG5 zYg71D3e}v36DjH++<*=MXgd2q&dP^6f&^KctfDe(SQrvy5JXC@BG#|N_^XbfxhcV) z>KV$aMxcL*ISc0|0;+<2ix7U7xq8m48=~j!a`g?SzE5}(Y;hxqEHJg_+qB99$}py7 z*ZPXL?FKLA>0uVicvq3okpoLZE#OG@fv^+k0{35pf`XdVT)1< z#mV4mcikkivZcE(=0rgfv&#+yZJrAOX&VDL(}Zx8@&$yi4Y1kmEK&uL<}ZqWr05mr zcSwaqH=squnLs+UCn@yp#WNQuIv$~B*sN_NAACD>N3k_$E(j~}Uvqda!_ zZcu7UrsR_q-P2YTrg|lijt8kyqL>T@ab#-a7i>%#*eoxFfgx(FoPa(y1nDI{z#Pz^ zfF~)6RBc?#ivEF<@XVD*#9r^r-;*<^(tE%UtWw^oom83;$5d{UoUbmAP(3Z)14YTK zMXQ#mz9yw>*8D^82vL^|%lyo|ZiQPd&{<*wCZI%up=wadl~C~cRJ!=Hjc&F)FNlnd zgNI|iSIMyqh=qV(z+HbldU4}!sqMs1R?t*RV!S*WW>qW_GF4NJ&vb-{2sJjiTIpL; z{bC@V&EhO|>GuDv7`%$kO<-P@^VI+y zl0tXGm|eISy)fiY3m8_Yaz>`Q=B(Yi8EH71{wfM*8ziS3BIju?26ujw==Xh4x5rH71h?Z859IWq(i#9 zLt0wt?(QBsL(q4yCv&g4t0jJvu^@FtJJk`8YXb{{(OdTS%rGxnPR)xY#6=?AWjD5M2n z5GZ@@ulO|JN34J-2y*-Nh@6|?RkFHwSj$e}p}mbc3Y}*el{O31RU0Z_E48@5O~5n;kDJy}a$x&Lc;27DTvAd@s^9>IA@$q{m6K?eZqOJGKpgCT!Zhld>#d^DAK+MDP}|3h zZ{i!ENw;mW62Pq^|FY#w?@8U6Nvjgi(sKW}&uvgjz0YIS>%Sxk1`5 z`qk`C2*bWd|0I4L=_~s(^2F$Bv7OTjo*G+gBD=Rq-~$7t{Bo|mmck(d6ywQ*UbIjkS>qtkH~Zs(sq zEYNB4xxdYmy+G=${gOjGGfSQQLi1D*{&en*3{wyd7U3M)y^FX(+d)eFi?9oMy@64c zwL?!q#*eJ$eayb4lc!B$W%M4B$4dH>9eFXwjfk5U@}6vXOWDiiLMYP3^VYlG$yDjaC({9tyL4NxPb{x=ADdJ7Bl5EHzU6h-Cbke zwi+34LGVF=G%>d5Q7C>n!)%!LT`UZ0v^YN1WrcjC(pS!&vek-SK#kj^EL9!l?TvY% zOkz%!#5Cf^2JFrvNeU5ZL1_aI(M~e4?~kId$T!A@Z$?f40q#~5HuElkRMQV+6r0>J zK9y=%I^m-_xwRNyO<2Zq-0W6!frE$jT$C3Qi3d>0911QPc`Ky6`~Y<)?mMy*u`nz8 z={b()Z;8DqbWJ?MdOsaF6Zn)$d>DQpRHM~bD3cq=Rw_fzWpiwtJFY`BF}hTFCeh+C zs-4A}MCP}`EInNzh3hRoZ6L1a`J7}T&wh9#HItmHBCRwefpQ97*u{--QH=5>MSZud zv_%DacJS+lsxlJ0q=40vs-8P$Q$_Pt)JM=)|1dcFO&JWY8KwhiP$a&Ua*Z z$BTW#lu4QZna#vZECq#Q?Up_(@`0#(@~0?mG{qA#^rZDq^&6T=pbGL8nU?BY-TwKE zPmMqhP_w?q1B~|43T5=Hl(Bi-+{yY;Acv4i9u}oWC+@^i*}l}=dg`Y~E%dTn;rqj5 z&3pLFHjC62jcxW_a@Jj2Ce%eToCB!6OV*6I0!XF9Hq7orpm-RpizSSHx890&_kCQ% z$cKVw-`WnDvv5Lq?L!qGDcUPtgmotX=C`~Smjg&oM5V?}gAzL%WkRwLmNZyrCbKwC zcsUD3O0ruLr%s`B5W)IYjzLTXcAqinas75T_j&1_m!m!^ORvk6_bYvK||DIVE@IUjWQ z0dQ(H9=a-c`@{Q=uj?JC8g`r$a>)gR#=2%vuea5B_BAp;*QX&I;N?>jHYFR=q?8sq zatBJBYX`tr1BQxIgACJ==*ivk$UjW^Maod6-=SzI3MMUbCqu!3wVHt!Be?M@)2aK+$Rv(?iH18-}e+rDznPRv< zi!{-5NNHE)eqVEeYl>F5S{6w^8L$0p7l|M;(^c+Ei|{V7!!8;xiDx@QK4Pl8Iel7N z*9%$ISyQPK_+5tc2c9jhX%sfIOCZf-E%K9X7Z6N0Nvp!~v(KAZvWnaHK^SQSragIF zVIC_7tGTXeU(TRqj?owTmj{SXNtf7;9evoBURMB5R`8R1$@$}FCS%ugA{4igxOhRi z*q_y$&&!mHF1$S}2279&m0^nFxDV#WvV&?Pphq(craPjcBtveg0Nqdm9tXL4lN{t= z?BLepVnp$U5KskjvVX-GjEf=M3mOTZb|Z$Hp*yytey0C^{cH*v>gqF&-j?gcEj4)l)cdGBmB(^HrSe_)qzf z+TZ^Yo4|GWz=Oi3m`r(hV`iZHb_mu63g(JXPMW4p9JhL_(tg+XQnmR0&52UUA|nZI zvjwOx(fNtZ`8!#|4$7GoJPQ`;T?hKOi`^`kFOyX;C4KfC(U-(CX?Qh2!RTe!4raMP zjLaC7qL_tJ?^0!T9ibZe!m-x!u7o%2dHK{uYZ~#+vERAv-G-MQeYQ*~DILuFpu02u z(Qc)=bHqb4{fs+hdKa5etlX z3EW#vlbEZmWT>X{3WbgW)8~u=8IGuRc<=?KoDXg5V`jf%i^Ai`Cd9=&FH6d|N9uJl z>QhxtW_{}H10BF}GQNitk~V=GnB%NI1Xv-6-OeaI&Amg0s{4i4;HhP$6oc(L-}yHt zej63({`5VLSoIef7D3Z9BA5x<9$^x?PhV=6A@Nu=QiJo@*o?M@*6-UA@EdV@bQCR< z9>{N%eK;Y#U-@XDBBCT^j=?<|y|lsAWrXsf`t%4VT{)63oxQe^u_5NuOq{rsrRd}Z zOx&OldRtR4leEX#r$9`gPJtbHccH!JgZK&3x`tJ<_{kv)E?$LhZ?brv`Cc}X%cWC7<@6yqM2O&m(rB`1v-TiqcQmA5n$rbGJ4zs({=R-I%6}*^UQ)wi9WuzW%Ri%&5 zTdd%>+GvADk+4q#3s5qne99`MC)X_#=p1!d?(mcKDW=Efc31Jso)9M49O0OMeP&7~ zIm!vorpxBSbvSiczr^?WP&e&-!3GLxCIaR5?PGeLgwYT;lYu9UE8SwmXR(D?A^s`7 z^F4di(+oHh%$DZjj7F3_-Y9}k^uCKeSC?Jd7h>RZIDZ{wcbh|9w4)p$dmv7|gX1n& zkrYjSso~;~qMMzZUQ5AC+GUvuj@y{4E&&v(+OE-rS^J7iE~Yz1 zCQ9hAI&0X2_H8CKZMqo00MsxtwjvM{`AdSaZ8#Y?5zPI;a+0`JF52!uVwr@5Ufctm zm;5G%gI&utfGa~fv6!jHh9d1r3TYD zEOlrbyFnDl5J%sEO>HErK~WWE6I$_eXp!dbphDf zc;~oWDQylVa=y?q;c>SKzvZ~R(ZE2csFwf@10@zaZxFAYWaV9TFMh(QuqxNhPUav~ zzCkoe8-lM{?vh}kdM6EMCH(eLK3Rt{HsEJ+4fve=xAVq(cUc9fO9g1%zI+QfFOb@0 zePFU(&?Np9w3&xs)ZwPnQniC0%xs8(Hyx{7*Ot51*`9&2^h7@!nmzuF`3pl8ep#Ls z<)nk7ts}`9tGgaVJWC-3w;B~$juY6m+7XgfzjR4I=oV}E9LRGf4@cI>d3z%CYyURI z7lRn11g!D34zI6|26>?CELeIh?cEv_GCCMd5&g<=9-)pe8iXINQ}4IljYsQyfRz|( z<%w=HN4ZOQKJ9e7DOUhjA7A%-xcR%2`@1?U&u}rvqNc_8l9dUT_S`4TKJ;yezIdp} z?qDAfx6IHQ7YlO;EAP%d4U2O7jU`Uh(um!J`hJ_3&mmQez8AqWLQEftYJuMdCj27t zoV#b!c0d8al0j1yveY6)U#kPCh%OfL>P=%WE^LQew^k-QqZ{rjX6PqOd2K7>1^VUB z`&H@+vW=wH0UY>88nXCH@RKCY&?bR%8-53b{;@>|;uzDd5f`Z% zaSC<8OLh|b@ZnBET?My38fV9~ku2cPfcWZl7nW|pkQKfFlp@xRt+K0Tj@gdvVAQXP z?i45RNE4W#Kf0%Pp2=?hESkG}EK557cwn0r1{uWeG53_tb!9bg&R8R_d4s5N0poc- zr>1g0W~1oha&#@_irbqnL)jJ@Z=y7J3fCQ@qlr{6(%rSs2rpkS1QIU^tieJ-xq%nd ze-C=#{@E+Kzb&SJ2KM~9q^4Yk^jyXa#{;P)y`YsFvfzX?%V~r6GciP4eX~$vk{-C? zeipAYsMSp`Z~&-Jc*dt}m-A_w&cnb#~sIdbU{uCayd>nWKDxQ9!%R zTrgS~+>TqXgrN~e2&eeWdPhuHP2*#K1=f^B@UGZBjFq- z;mtKYyul9ZNuq89XEoeSg7^qld5^R}FHpbyRyk1pRPMDO$_Kqi*sp1hk&UpUKc!V! zJZpCQc!)@X+%qOQMP)CU@Qe|=IG@|DZ~o#j>TBFQxH>8rJ#0y`XO9ukvc)kJ6LY3$ zY}{(tri#32!LjVY^exC3Ky)i$NY6v^*>X5y8F65pYYjt^T^X<=zm=)Cr=>dcId>?I zR^0I?)=)|}ak7wG)&Ar#A&60BRp}&NWFPy7zt)yl3aObS?sB8fxfU9ayR{$#%S<#3 zrsbmi#bDSP)@w%iYS%&wyyIB??LJ0Q%aD^!XXYk3)tQt~x_YU?y4KVKl{MJ)KSz&f zV;tJ1smY(dLM6zZXVAWND3L|(W=q~HjA6OkjQ+kx-EuqtaaQQPaa=2_wwuW@G*1>e z_TqB;+1@yuHg}YYpEJL&Sw~jD3Xeb(Wo(-nz6`#gbP7?agYT>j_R%+^h{1>7W&cP{s8epLY9Ky6mU*u*!QBn zI7T~WL-_qj+~Hdpr}qtfjZmD;eI%H0SP~~ifqoD59-q)R9_Z zKr6OeoZT!Za#k5yo&CCmzLbGP*6ggJ@2QPhIY^aMXjVjQ@D+-E#qmAjuL{o@NCUDF zFy)B~$j`rK7Iz$L>_Jl~O?IJu2P3 zlHQ@${Jgcvp`PKu7p;6Fr=4y1?8nJ;=~jls^gx4&_O4+)C-OGc5)L0+R!&uI&qQID zhV&ZQ@+2={Z|2F%WoOu9Ljt}|0r;!e zCBx(uAViqOffibUBOVEH_IlV=57ZQSQ~Te5(wmsO+o_CCNAgCJzZ3ly84J34_Zf#SwQ9q8i41 zE>u$JuO$kQq*W6MDo$Eu?3jJAFUt&>Qy#K{lT-Vx z6=kceU^v`;vBRoFxQED5TL+=>QJ!iaxV^Z2r#%CaaEWgbs1ysT$&~sem&74AEC!;< zcGDH;CENBJ&hfI!@G5ezCK!sXzdB@m#a(q8KeX;U=yl6AujNz z{}huJlo1yL$DlAsi{12aS?CJ*{xuIIV4wf-V6E?L4E!5BWMQ0Zh4uel*xZJ}QQuPE z-u#DdD6hH6`;nVJ>O}8iuWxH>Z2vc>a;iFbm)nrbj$ps$6aa4TjfVZVZr7dK+E_E# z+S`ErJDM9i{HX815lax33Wl(;H~m|sF28cs+hB$%2pjyXgubo5p_%ay3!*?212bxX z@1{$rzY6~DK*{`5@oRm0>(9INQX61!{Ip#NymIM*g~u=D)UFH!NcfQ(AsZXVOPv5) zX?=4bI9>9;>HvTACiBNDt)x;_}tsJousTuWrG- zDUSM9|4|IRSy@PhdB$sAk4b;vRr>Nt@t3OB<#_*dl_7P>FGcFF3-DA?KBW00A<;2=*&`^P8}cEZW!GSO9(+{;-V@ zd%%C8KEDYD$pC#x%zb4bfVJ|kgWcG0-UNZT9@2=R|Wz+H2iJ2A29LV z#Dye7Qn~^KUqOIS)8EGZC9w+k*Sq|}?ze$| zKpJrq7cvL=dV^7%ejE4Cn@aE>Q}b^ELnd#EUUf703IedX{*S;n6P|BELgooxW`$lE z2;lhae}w#VCPR>N+{A=T+qyn;-Jk!Dn2`C1H{l?&Wv&mW{)_(?+|T+JGMPf)s$;=d z5J27Mw}F4!tB`@`mkAnI1_G4%{WjW<(=~4PFy#B)>ubz@;O|2J^F9yq(EB<9e9})4 z{&vv)&j^s`f|tKquM7lG$@pD_AFY;q=hx31Z;lY;$;aa>NbnT| kh{^d0>dn0}#6IV5TMroUdkH8gdhnkj_&0LYo6ArC2O!h?t^fc4 diff --git a/EurekaServerUsingConfigerver/eurekaserver/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingConfigerver/eurekaserver/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingConfigerver/eurekaserver/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingConfigerver/eurekaserver/mvnw b/EurekaServerUsingConfigerver/eurekaserver/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingConfigerver/eurekaserver/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingConfigerver/eurekaserver/mvnw.cmd b/EurekaServerUsingConfigerver/eurekaserver/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingConfigerver/eurekaserver/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingConfigerver/eurekaserver/pom.xml b/EurekaServerUsingConfigerver/eurekaserver/pom.xml deleted file mode 100644 index 7d38d40..0000000 --- a/EurekaServerUsingConfigerver/eurekaserver/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - 4.0.0 - - com.github.rawsanj - eureka-server - 0.0.1-SNAPSHOT - jar - - eureka-server - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java b/EurekaServerUsingConfigerver/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java deleted file mode 100644 index 1b2a6ba..0000000 --- a/EurekaServerUsingConfigerver/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.eurekaserver; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; - -@SpringBootApplication -@EnableEurekaServer -public class EurekaserverApplication { - - public static void main(String[] args) { - SpringApplication.run(EurekaserverApplication.class, args); - } -} diff --git a/EurekaServerUsingConfigerver/eurekaserver/src/main/resources/application.properties b/EurekaServerUsingConfigerver/eurekaserver/src/main/resources/application.properties deleted file mode 100644 index a4548d5..0000000 --- a/EurekaServerUsingConfigerver/eurekaserver/src/main/resources/application.properties +++ /dev/null @@ -1,8 +0,0 @@ -server.port=8762 - - -spring.application.name=EurekaSErver - - - -#eureka.client.serviceUrl.defaultZone= http://localhost:8762/eureka \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java b/EurekaServerUsingConfigerver/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java deleted file mode 100644 index a20f6a0..0000000 --- a/EurekaServerUsingConfigerver/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.eurekaserver; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class EurekaserverApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/.gitignore b/EurekaServerUsingConfigerver/mongodbClient2/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/mongodbClient2/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingConfigerver/mongodbClient2/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingConfigerver/mongodbClient2/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingConfigerver/mongodbClient2/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingConfigerver/mongodbClient2/bootstrap.properties b/EurekaServerUsingConfigerver/mongodbClient2/bootstrap.properties deleted file mode 100644 index a2136c3..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/bootstrap.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.application.name=mongo-service -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27017 -spring.data.mongodb.database=mongodb -server.port=8082 -spring.cloud.config.uri=http://localhost:8888 \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/mongodbClient2/mvnw b/EurekaServerUsingConfigerver/mongodbClient2/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingConfigerver/mongodbClient2/mvnw.cmd b/EurekaServerUsingConfigerver/mongodbClient2/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingConfigerver/mongodbClient2/pom.xml b/EurekaServerUsingConfigerver/mongodbClient2/pom.xml deleted file mode 100644 index 5ae6d0a..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - 4.0.0 - - com.mongoDb - mongodbExample - 0.0.1-SNAPSHOT - jar - - mongodbExample - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - org.springframework.boot - spring-boot-starter-web - - - org.projectlombok - lombok - 1.16.20 - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java deleted file mode 100644 index 134b650..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; -@SpringBootApplication -@EnableEurekaClient -public class MongoMain { - - public static void main(String[] args) { - SpringApplication.run(MongoMain.class, args); - } - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java deleted file mode 100644 index a830375..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.mongo.db.controller; - -import java.util.List; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.service.IAuditService; -import com.mongo.db.vo.updateAuditRequest; - -/** - * @author trainee - * - */ -//@RequestMapping("/audit") -@RestController -public class AuditController { - - @Autowired - private IAuditService auditService; -/** - * - * @param audit - * @return - */ - @PostMapping - public ResponseEntitycreate(@RequestBody final AuditLog audit) - { - try { - auditService.createAudit(audit); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException exep) { - return new ResponseEntity(exep.getMessage(),HttpStatus.OK); - } - } - /** - * - * @param eventName - * @return - */ - @GetMapping("/{eventName}") - public ResponseEntitygetAudit(@PathVariable @NotNull final String eventName) - { - - try { - List list=auditService.getDetails(eventName); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @return - */ - @GetMapping - public ResponseEntitygetAllAudit() - { - - try { - List list=auditService.findall(); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param update - * @return - */ - @PutMapping - public ResponseEntityupdateAudit(@RequestBody final updateAuditRequest update) - { - - try { - AuditLog audit=auditService.update(update.getEventId(), update.getEventType()); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param eventId - * @return - */ - @DeleteMapping("{eventId}") - public ResponseEntitydeleteAudit(@PathVariable final UUID eventId) - { - - try { - - String audit=auditService.deleteAudit(eventId); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java deleted file mode 100644 index 1b55caa..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.mongo.db.document; - -import java.util.Date; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -@Document -public class AuditLog { - - @Id - @NotNull - private UUID eventID=UUID.randomUUID(); - @NotNull - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * - * @return the eventID - */ - public UUID getEventID() { - return eventID; - } - /** - * @param eventID the eventID to set - */ - public void setEventID(UUID eventID) { - this.eventID = eventID; - } - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /** - * @param eventID - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(UUID eventID, String eventName, String eventType, Date eventDate, String userId, - Object oldValue, Object newValue) { - super(); - this.eventID = eventID; - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventID=" + eventID + ", eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" - + eventDate + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - - - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java deleted file mode 100644 index 6479eb2..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.mongo.db.document; - -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java deleted file mode 100644 index c61912a..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db.exception; - -public class AuditException extends Exception{ - String msg; - - /** - * @param msg - */ - public AuditException(String msg) { - super(); - this.msg = msg; - } - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java deleted file mode 100644 index b7d4db1..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.mongo.db.repo; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.data.mongodb.repository.MongoRepository; - -import com.mongo.db.document.AuditLog; - -/** - * @author trainee - * - */ -public interface AuditMongoRepository extends MongoRepository{ - - /** - * @param eventName - * @return - */ - List findByEventName(String eventName); - /** - * @param eventType - * @return - */ - AuditLog findByEventType(String eventType); - - - Optional findByeventID(UUID eventID); -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java deleted file mode 100644 index cd8286f..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; - -@Service("auditService") -public class AuditServiceImpl implements IAuditService{ - - @Autowired - private AuditMongoRepository auditRepo; - @Override - public AuditLog createAudit(AuditLog audit)throws AuditException { - AuditLog audi= auditRepo.save(audit); - if(audi!=null) - { - return audi; - } - else - { - throw new AuditException("audit not added"); - } - } - - - - @Override - public String deleteAudit(UUID id) throws AuditException { - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - {AuditLog aud=audit.get(); - auditRepo.delete(aud);; - return "deleted"; - } - else - { - throw new AuditException("not deleted"); - } - } - - @Override - public AuditLog update(UUID id,String eventType) throws AuditException { - //changes made after downgrading application - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - { - AuditLog auditLog=audit.get(); - auditLog.setEventType(eventType); - AuditLog auu=auditRepo.save(auditLog); - return auu; - } - else - { - throw new AuditException("id not found!!!!"); - } - } - - - - @Override - public List getDetails(String eventName) throws AuditException { - // TODO Auto-generated method stub - List list=auditRepo.findByEventName(eventName); - if(list.isEmpty()) - { - throw new AuditException("List is empty"); - } - else - { - return list; - } - - } - - - - @Override - public List findall() throws AuditException { - // TODO Auto-generated method stub - return auditRepo.findAll(); - } - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java deleted file mode 100644 index db121ae..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.UUID; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; - -public interface IAuditService { - - /** - * @method createAudit - * @param audit - * @return AuditLog object - * @throws AuditException - */ - AuditLog createAudit(AuditLog audit) throws AuditException; - /** - * @method getDetails - * @param eventName - * @return List - * @throws AuditException - */ - List getDetails(String eventName) throws AuditException; - /** - * @method deleteaudit - * @param id - * @return String - * @throws AuditException - */ - String deleteAudit(UUID id) throws AuditException; - /** - * @method update - * @param id - * @param eventType - * @return AuditLog - * @throws AuditException - */ - AuditLog update(UUID id,String eventType) throws AuditException; - /** - * @method findall - * @return List - * @throws AuditException - */ - List findall() throws AuditException; - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java b/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java deleted file mode 100644 index ac2a51a..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mongo.db.vo; - -import java.util.UUID; - -public class updateAuditRequest { - - private UUID eventId; - private String eventType; - /** - * @return the eventId - */ - public UUID getEventId() { - return eventId; - } - /** - * @param eventId the eventId to set - */ - public void setEventId(UUID eventId) { - this.eventId = eventId; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - -} diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/main/resources/application.properties b/EurekaServerUsingConfigerver/mongodbClient2/src/main/resources/application.properties deleted file mode 100644 index 8c2930b..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/main/resources/application.properties +++ /dev/null @@ -1,19 +0,0 @@ -#Mongo -#spring.data.mongodb.host=localhost -#spring.data.mongodb.port=27017 -#spring.data.mongodb.database=mongodb -#server.port=8082 - -#Register with eureka -eureka.client.service-url.defaultZone=http://localhost:8762/eureka - - - -#eureka.client.service-url.defaultZone=https://github.com/ramdafale/bank-config-server - - - - -spring.application.name=mongo-client - - diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java b/EurekaServerUsingConfigerver/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java deleted file mode 100644 index 86f4145..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/*package com.mongoDb.mongodbExample; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.document.BaseEntity; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; -import com.mongo.db.service.AuditServiceImpl; -import com.mongo.db.service.IAuditService; - -@RunWith(MockitoJUnitRunner.class) -public class MongoTest { - - @Mock - private AuditMongoRepository auditRepo; - - - @InjectMocks IAuditService auditServcie=new AuditServiceImpl(); - Date date=new Date(); - UUID id; - Timestamp time; - BaseEntity base1; - BaseEntity bsae2; - AuditLog audit; - AuditLog audit1; - AuditLog audit2; - @Before - public void init() - { - date=new Date(); - id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - time=new Timestamp(date.getTime()); - base1=new BaseEntity("1"); - bsae2=new BaseEntity("2"); - audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - audit1 =new AuditLog(UUID.fromString("38400000-8cf0-11cd-b23e-10b96e4ef00d"),"createnew","creation",time,"3",base1,bsae2); - } - @Test - public void auditcreateTest()throws AuditException - { Date date=new Date(); - UUID id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - Timestamp time=new Timestamp(date.getTime()); - BaseEntity base1=new BaseEntity("1"); - BaseEntity bsae2=new BaseEntity("2"); - AuditLog audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - Mockito.when(auditRepo.save(audit)).thenReturn(audit); - AuditLog audi; - - audi = auditServcie.createAudit(audit); - assertEquals("created",audi,audit); - } - @Test(expected=AuditException.class) - public void falsecreateTest() throws AuditException - { - AuditLog audit1=null; - Mockito.when(auditRepo.save(audit1)).thenReturn(audit1); - AuditLog audi; - audi = auditServcie.createAudit(audit1); - } - -@Test -public void auditgetDetails()throws AuditException -{ - - - List list=new ArrayList(); - - list.add(audit); - list.add(audit1); - Mockito.when(auditRepo.findByEventName("create")).thenReturn(list); - List newList=auditServcie.getDetails("create"); - assertEquals(list, newList); - -} -@Test(expected=AuditException.class) -public void auditgetDetailsfalse()throws AuditException -{ - - - List list=new ArrayList<>(); - Mockito.when(auditRepo.findByEventName("mongo")).thenReturn(list); - List newList=auditServcie.getDetails("mongo"); - - -} - -@Test -public void auditupdatetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - assertEquals(auditt,newAudit); -} - -@Test(expected=AuditException.class) -public void auditupdatefalsecase() throws AuditException -{ - Optional opt=Optional.empty(); - when(auditRepo.findById(id)).thenReturn(opt); - //AuditLog auditt=opt.get(); - //when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - -} - -@Test -public void auditdeletetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - - String newAudit=auditServcie.deleteAudit(id); - - assertEquals("deleted",newAudit); -} - -} -*/ \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java b/EurekaServerUsingConfigerver/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java deleted file mode 100644 index 05b8eae..0000000 --- a/EurekaServerUsingConfigerver/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mongoDb.mongodbExample; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MongodbExampleApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/.gitignore b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/mvnw b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/mvnw.cmd b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/pom.xml b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/pom.xml deleted file mode 100644 index c3bff8e..0000000 --- a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - 4.0.0 - - com.example - spring-cloud-config-server-new - 0.0.1-SNAPSHOT - jar - - spring-cloud-config-server-new - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.cloud - spring-cloud-config-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/main/java/com/example/demo/SpringCloudConfigServerNewApplication.java b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/main/java/com/example/demo/SpringCloudConfigServerNewApplication.java deleted file mode 100644 index 720b138..0000000 --- a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/main/java/com/example/demo/SpringCloudConfigServerNewApplication.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.demo; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.config.server.EnableConfigServer; - -@SpringBootApplication -@EnableConfigServer - -public class SpringCloudConfigServerNewApplication { - - public static void main(String[] args) { - SpringApplication.run(SpringCloudConfigServerNewApplication.class, args); - } -} diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/main/resources/application.properties b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/main/resources/application.properties deleted file mode 100644 index 1b4d780..0000000 --- a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/main/resources/application.properties +++ /dev/null @@ -1,5 +0,0 @@ -server.port= 8888 - -#registration with eureka -spring.cloud.config.server.git.uri=https://github.com/ramdafale/bank-config-server -#spring.application.name=application.properties diff --git a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/test/java/com/example/demo/SpringCloudConfigServerNewApplicationTests.java b/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/test/java/com/example/demo/SpringCloudConfigServerNewApplicationTests.java deleted file mode 100644 index f3a395b..0000000 --- a/EurekaServerUsingConfigerver/spring-cloud-config-server-new/src/test/java/com/example/demo/SpringCloudConfigServerNewApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.demo; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SpringCloudConfigServerNewApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/.eclipse-pmd b/EurekaServerUsingFeignClient/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/17BankInCapg/.gitignore b/EurekaServerUsingFeignClient/17BankInCapg/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 zcmbTd1CXW7vMxN+wr$(CZCk5to71*!+jjS~ZJX1!ds=tCefGhB{(HVS`>u$J^~PFn zW>r>YRc2N`sUQsug7OUl0^-}ZZ-jr^e|{kUJj#ly2+~T*iO~apQ;-J#>z!{v|9nH? zexD9D~4A70;F%I|$?{aX9)~)7!NMGs_XtoO(D2z3Q#5Lmj zOYWk1b{iMmsdX30UFmYyZk1gWICVeOtk^$+{3U2(8gx?WA2F!EfBPf&|1?AJ|5Z>M zfUAk^zcf#n|9^4|J34286~NKrUt&c5cZ~iqE?PH7fW5tm3-qG$) z56%`QPSn!0RMV3)jjXfG^UQ}*^yBojH!}58lPlDclX5iUhf*|DV=~e*bl;(l$Wn@r zPE*iH(NK!e9KQcU$rRM}aJc?-&H1PO&vOs*=U+QVvwuk-=zr1x>;XpRCjSyC;{TWQ z|824V8t*^*{x=5yn^pP#-?k<5|7|4y&Pd44&e_TN&sxg@ENqpX0glclj&w%W04Jwp zwJ}#@ag^@h5VV4H5U@i7V#A*a;4bzM-y_rd{0WG#jRFPJU}(#&o8vo@uM+B+$>Tiq zei^5$wg8CVf{+_#Vh`yPx-6TmB~zT_nocS_Rb6&EYp*KjbN#-aP<~3j=NVuR)S1wm zdy3AWx2r9uww3eNJxT>{tdmY4#pLw`*`_fIwSu;yzFYP)=W6iawn`s*omzNbR?E&LyC17rFcjWp!M~p?;{v!78DTxtF85BK4dT< zA5p)Z%6O}mP?<%Z{>nZmbVEbomm zLgy;;N&!y>Dma2sqmbvz&KY-j&s~dd#mWGlNF%7}vS7yt>Dm{P=X zG>Pyv2D!ba0CcTI*G6-v?!0}`EWm1d?K)DgZIQk9eucI&lBtR))NxqVz)+hBR1b|7 zgv&^46cI?mgCvp>lY9W(nJT#^<*kY3o#Php1RZLY@ffmLLq3A!Yd}O~n@BhXVp`<5 zJx`BjR%Svv)Sih_8TFg-9F-Gg3^kQrpDGej@uT5%y_9NSsk5SW>7{>&11u(JZHsZO zZweI|!&qHl0;7qxijraQo=oV^Pi~bNlzx;~b2+hXreonWGD%C$fyHs+8d1kKN>TgB z{Mu?~E{=l1osx|_8P*yC>81_GB7>NS7UA+x2k_c*cU-$gQjR{+IU)z069Ic$<)ci< zb?+V#^-MK!0s~wRP|grx?P^8EZ(9Jt0iA{`uVS6fNo>b@as5_-?e766V}&)8ZOEVtKB z*HtHAqat+2lbJbEI#fl~`XKNIF&J?PHKq)A!z(#j%)Uby=5d!bQP)-Mr!0#J=FV%@9G#Cby%r#(S=23H#9d)5Ndy>pIXJ%si!D=m*-QQZ(O9~#Jhx#AS3 z&Vs+*E5>d+{ib4>FEd#L15-ovl*zV%SYSWF>Z}j!vGn=g%w0~3XvAK&$Dl@t5hiUa#mT(4s9-JF1l zPi5d2YmuFJ4S(O>g~H)5l_`%h3qm?+8MmhXA>GRN}7GX;$4(!WTkYZB=TA^8ZFh^d9_@x$fK4qenP!zzaqQ1^(GQ- zjC$P$B5o{q&-H8UH_$orJTv0}#|9ja(vW9gA%l|@alYk+Uth1ey*ax8wmV7U?^Z9? zsQMrEzP8|_s0=bii4wDWa7te&Vmh9T>fcUXJS|dD3Y$A`s-7kY!+idEa`zB) zaW*%xb+#}9INSa62(M1kwL=m_3E2T|l5Sm9QmON8ewxr#QR`;vOGCgyMsA8$O(;=U z#sEw)37duzeM#9_7l!ly#5c+Mu3{;<9%O{e z`+0*{COEF^py;f6)y6NX)gycj`uU9pdZMum9h(bS!zu1gDXdmF4{Og{u;d(Dr~Co1 z1tm@i#5?>oL}-weK1zJRlLv*+M?l=eI~Sp9vg{R6csq=3tYSB2pqB8 z=#p`us7r|uH=cZnGj|juceAu8J#vb+&UFLFmGn~9O|TNeGH>sboBl%JI9v(@^|45? zLvr2ha)NWP4yxV8K%dU(Ae=zl)qdGyz={$my;Vs6?4?2*1?&u!OFyFbAquv6@1e)~&Rp#Ww9O88!mrze((=@F?&BPl_u9gK4VlHo@4gLK_pGtEA(gO4YpIIWTrFN zqVi%Q{adXq^Ez~dZ0VUC>DW`pGtpTY<9tMd;}WZUhT1iy+S^TfHCWXGuDwAv1Ik85 zh3!tSlWU3*aLtmdf?g(#WnLvVCXW$>gnT_{(%VilR=#2VKh~S}+Po#ha9C*<-l~Fx z$EK{1SO8np&{JC)7hdM8O+C( zF^s3HskJz@p3ot`SPKA92PG!PmC2d|9xA!CZxR!rK9-QYYBGAM-Gj zCqzBaIjtOZ6gu+lA%**RI7to$x^s8xIx}VF96=<29CjWtsl;tmNbuHgrCyB^VzEIB zt@sqnl8Vg`pnMppL6vbjNNKc?BrH<)fxiZ|WrYW%cnz-FMENGzMI+)@l7dit?oP|Wu zg-oLcv~79=fdqEM!zK%lI=R7S!Do!HBaD+*h^ULWVB}4jr^e5oUqY`zA&NUvzseI% z+XCvzS+n|m7WJoyjXXk(PE8;i^r$#Pq|NFd!{g~m2OecA1&>$7SYFw z;}Q{`F3LCE34Z>5;5dDtz&2Z&w|B9fwvU<@S<BBo(L4SbDV#X3%uS+<2q7iH+0baiGzlVP5n0fBDP z7kx+7|Cws+?T|cw-pt~SIa7BRDI_ATZ9^aQS^1I?WfnfEHZ*sGlT#Wk9djDL?dWLA zk%(B?<8L?iV*1m803UW|*sU$raq<(!N!CrQ&y7?7_g zF2!aAfw5cWqO}AX)+v)5_GvQ$1W8MV8bTMr3P{^!96Q4*YhS}9ne|+3GxDJmZEo zqh;%RqD5&32iTh7kT>EEo_%`8BeK&)$eXQ-o+pFIP!?lee z&kos;Q)_afg1H&{X|FTQ0V z@yxv4KGGN)X|n|J+(P6Q`wmGB;J}bBY{+LKVDN9#+_w9s$>*$z)mVQDOTe#JG)Zz9*<$LGBZ-umW@5k5b zbIHp=SJ13oX%IU>2@oqcN?)?0AFN#ovwS^|hpf5EGk0#N<)uC{F}GG}%;clhikp2* zu6ra2gL@2foI>7sL`(x5Q)@K2$nG$S?g`+JK(Q0hNjw9>kDM|Gpjmy=Sw5&{x5$&b zE%T6x(9i|z4?fMDhb%$*CIe2LvVjuHca`MiMcC|+IU51XfLx(BMMdLBq_ z65RKiOC$0w-t)Cyz0i-HEZpkfr$>LK%s5kga^FIY_|fadzu*r^$MkNMc!wMAz3b4P+Z3s(z^(%(04}dU>ef$Xmof(A|XXLbR z2`&3VeR1&jjKTut_i?rR_47Z`|1#$NE$&x#;NQM|hxDZ>biQ*+lg5E62o65ILRnOOOcz%Q;X$MJ?G5dYmk$oL_bONX4 zT^0yom^=NsRO^c$l02#s0T^dAAS&yYiA=;rLx;{ro6w08EeTdVF@j^}Bl;o=`L%h! zMKIUv(!a+>G^L3{z7^v3W$FUUHA+-AMv~<}e?2?VG|!itU~T>HcOKaqknSog zE}yY1^VrdNna1B6qA`s?grI>Y4W%)N;~*MH35iKGAp*gtkg=FE*mFDr5n2vbhwE|4 zZ!_Ss*NMZdOKsMRT=uU{bHGY%Gi=K{OD(YPa@i}RCc+mExn zQogd@w%>14cfQrB@d5G#>Lz1wEg?jJ0|(RwBzD74Eij@%3lyoBXVJpB{q0vHFmE7^ zc91!c%pt&uLa|(NyGF2_L6T{!xih@hpK;7B&bJ#oZM0`{T6D9)J2IXxP?DODPdc+T zC>+Zq8O%DXd5Gog2(s$BDE3suv=~s__JQnX@uGt+1r!vPd^MM}=0((G+QopU?VWgR zqj8EF0?sC`&&Nv-m-nagB}UhXPJUBn-UaDW9;(IX#)uc zL*h%hG>ry@a|U=^=7%k%V{n=eJ%Nl0Oqs!h^>_PgNbD>m;+b)XAk+4Cp=qYxTKDv& zq1soWt*hFf%X8}MpQZL-Lg7jc0?CcWuvAOE(i^j1Km^m8tav)lMx1GF{?J#*xwms2 z3N_KN-31f;@JcW(fTA`J5l$&Q8x{gb=9frpE8K0*0Rm;yzHnDY0J{EvLRF0 zRo6ca)gfv6C)@D#1I|tgL~uHJNA-{hwJQXS?Kw=8LU1J$)nQ-&Jhwxpe+%WeL@j0q z?)92i;tvzRki1P2#poL;YI?9DjGM4qvfpsHZQkJ{J^GNQCEgUn&Sg=966 zq?$JeQT+vq%zuq%%7JiQq(U!;Bsu% zzW%~rSk1e+_t89wUQOW<8%i|5_uSlI7BcpAO20?%EhjF%s%EE8aY15u(IC za2lfHgwc;nYnES7SD&Lf5IyZvj_gCpk47H}e05)rRbfh(K$!jv69r5oI| z?){!<{InPJF6m|KOe5R6++UPlf(KUeb+*gTPCvE6! z(wMCuOX{|-p(b~)zmNcTO%FA z$-6}lkc*MKjIJ(Fyj^jkrjVPS);3Qyq~;O$p+XT+m~0$HsjB@}3}r*h(8wGbH9ktQ zbaiiMSJf`6esxC3`u@nNqvxP1nBwerm|KN)aBzu$8v_liZ0(G8}*jB zv<8J%^S2E_cu+Wp1;gT66rI$>EwubN4I(Lo$t8kzF@?r0xu8JX`tUCpaZi(Q0~_^K zs6pBkie9~06l>(Jpy*d&;ZH{HJ^Ww6>Hs!DEcD{AO42KX(rTaj)0ox`;>}SRrt)N5 zX)8L4Fg)Y6EX?He?I`oHeQiGJRmWOAboAC4Jaf;FXzspuG{+3!lUW8?IY>3%)O546 z5}G94dk)Y>d_%DcszEgADP z8%?i~Ak~GQ!s(A4eVwxPxYy3|I~3I=7jf`yCDEk_W@yfaKjGmPdM}($H#8xGbi3l3 z5#?bjI$=*qS~odY6IqL-Q{=gdr2B5FVq7!lX}#Lw**Pyk!`PHN7M3Lp2c=T4l}?kn zVNWyrIb(k&`CckYH;dcAY7-kZ^47EPY6{K(&jBj1Jm>t$FD=u9U z#LI%MnI3wPice+0WeS5FDi<>~6&jlqx=)@n=g5TZVYdL@2BW3w{Q%MkE%sx}=1ihvj(HDjpx!*qqta?R?| zZ(Ju_SsUPK(ZK*&EdAE(Fj%eABf2+T>*fZ6;TBP%$xr(qv;}N@%vd5iGbzOgyMCk* z3X|-CcAz%}GQHalIwd<-FXzA3btVs-_;!9v7QP)V$ruRAURJhMlw7IO@SNM~UD)2= zv}eqKB^kiB))Yhh%v}$ubb#HBQHg3JMpgNF+pN*QbIx(Rx1ofpVIL5Y{)0y&bMO(@ zyK1vv{8CJQidtiI?rgYVynw{knuc!EoQ5-eete(AmM`32lI7{#eS#!otMBRl21|g^SVHWljl8jU?GU@#pYMIqrt3mF|SSYI&I+Vz|%xuXv8;pHg zlzFl!CZ>X%V#KWL3+-743fzYJY)FkKz>GJ<#uKB)6O8NbufCW%8&bQ^=8fHYfE(lY z1Fl@4l%|iaTqu=g7tTVk)wxjosZf2tZ2`8xs9a$b1X29h!9QP#WaP#~hRNL>=IZO@SX4uYQR_c0pSt89qQR@8gJhL*iXBTSBDtlsiNvc_ewvY-cm%bd&sJTnd@hE zwBGvqGW$X^oD~%`b@yeLW%An*as@4QzwdrpKY9-E%5PLqvO6B+bf>ph+TWiPD?8Ju z-V}p@%LcX{e)?*0o~#!S%XU<+9j>3{1gfU=%sHXhukgH+9z!)AOH_A{H3M}wmfmU8 z&9jjfwT-@iRwCbIEwNP4zQHvX3v-d*y87LoudeB9Jh5+mf9Mnj@*ZCpwpQ*2Z9kBWdL19Od7q|Hdbwv+zP*FuY zQc4CJ6}NIz7W+&BrB5V%{4Ty$#gf#V<%|igk)b@OV`0@<)cj(tl8~lLtt^c^l4{qP z=+n&U0LtyRpmg(_8Qo|3aXCW77i#f{VB?JO3nG!IpQ0Y~m!jBRchn`u>HfQuJwNll zVAMY5XHOX8T?hO@7Vp3b$H)uEOy{AMdsymZ=q)bJ%n&1;>4%GAjnju}Osg@ac*O?$ zpu9dxg-*L(%G^LSMhdnu=K)6ySa|}fPA@*Saj}Z>2Dlk~3%K(Py3yDG7wKij!7zVp zUZ@h$V0wJ|BvKc#AMLqMleA*+$rN%#d95$I;;Iy4PO6Cih{Usrvwt2P0lh!XUx~PGNySbq#P%`8 zb~INQw3Woiu#ONp_p!vp3vDl^#ItB06tRXw88L}lJV)EruM*!ZROYtrJHj!X@K$zJ zp?Tb=Dj_x1^)&>e@yn{^$B93%dFk~$Q|0^$=qT~WaEU-|YZZzi`=>oTodWz>#%%Xk z(GpkgQEJAibV%jL#dU)#87T0HOATp~V<(hV+CcO?GWZ_tOVjaCN13VQbCQo=Dt9cG znSF9X-~WMYDd66Rg8Ktop~CyS7@Pj@Vr<#Ja4zcq1}FIoW$@3mfd;rY_Ak^gzwqqD z^4<_kC2Eyd#=i8_-iZ&g_e#$P`;4v zduoZTdyRyEZ-5WOJwG-bfw*;7L7VXUZ8aIA{S3~?()Yly@ga|-v%?@2vQ;v&BVZlo7 z49aIo^>Cv=gp)o?3qOraF_HFQ$lO9vHVJHSqq4bNNL5j%YH*ok`>ah?-yjdEqtWPo z+8i0$RW|$z)pA_vvR%IVz4r$bG2kSVM&Z;@U*{Lug-ShiC+IScOl?O&8aFYXjs!(O z^xTJ|QgnnC2!|xtW*UOI#vInXJE!ZpDob9x`$ox|(r#A<5nqbnE)i<6#(=p?C~P-7 zBJN5xp$$)g^l};@EmMIe;PnE=vmPsTRMaMK;K`YTPGP0na6iGBR8bF%;crF3>ZPoLrlQytOQrfTAhp;g){Mr$zce#CA`sg^R1AT@tki!m1V zel8#WUNZfj(Fa#lT*nT>^pY*K7LxDql_!IUB@!u?F&(tfPspwuNRvGdC@z&Jg0(-N z(oBb3QX4em;U=P5G?Y~uIw@E7vUxBF-Ti*ccU05WZ7`m=#4?_38~VZvK2{MW*3I#fXoFG3?%B;ki#l%i#$G_bwYQR-4w>y;2` zMPWDvmL6|DP1GVXY)x+z8(hqaV5RloGn$l&imhzZEZP6v^d4qAgbQ~bHZEewbU~Z2 zGt?j~7`0?3DgK+)tAiA8rEst>p#;)W=V+8m+%}E$p-x#)mZa#{c^3pgZ9Cg}R@XB) zy_l7jHpy(u;fb+!EkZs6@Z?uEK+$x3Ehc8%~#4V?0AG0l(vy{8u@Md5r!O+5t zsa{*GBn?~+l4>rChlbuT9xzEx2yO_g!ARJO&;rZcfjzxpA0Chj!9rI_ZD!j` z6P@MWdDv&;-X5X8o2+9t%0f1vJk3R~7g8qL%-MY9+NCvQb)%(uPK4;>y4tozQ2Dl* zEoR_1#S~oFrd9s%NOkoS8$>EQV|uE<9U*1uqAYWCZigiGlMK~vSUU}f5M9o{<*WW? z$kP)2nG$My*fUNX3SE!g7^r#zTT^mVa#A*5sBP8kz4se+o3y}`EIa)6)VpKmto6Ew z1J-r2$%PM4XUaASlgVNv{BBeL{CqJfFO|+QpkvsvVBdCA7|vlwzf1p$Vq50$Vy*O+ z5Eb85s^J2MMVj53l4_?&Wpd1?faYE-X1ml-FNO-|a;ZRM*Vp!(ods{DY6~yRq%{*< zgq5#k|KJ70q47aO1o{*gKrMHt)6+m(qJi#(rAUw0Uy8~z8IX)>9&PTxhLzh#Oh*vZ zPd1b$Z&R{yc&TF^x?iQCw#tV}la&8^W)B*QZ${19LlRYgu#nF7Zj`~CtO^0S#xp+r zLYwM~si$I>+L}5gLGhN=dyAKO)KqPNXUOeFm#o+3 z&#!bD%aTBT@&;CD_5MMC&_Yi+d@nfuxWSKnYh0%~{EU`K&DLx}ZNI2osu#(gOF2}2 zZG#DdQ|k0vXj|PxxXg-MYSi9gI|hxI%iP)YF2$o< zeiC8qgODpT?j!l*pj_G(zXY2Kevy~q=C-SyPV$~s#f-PW2>yL}7V+0Iu^wH;AiI$W zcZDeX<2q%!-;Ah!x_Ld;bR@`bR4<`FTXYD(%@CI#biP z5BvN;=%AmP;G0>TpInP3gjTJanln8R9CNYJ#ziKhj(+V33zZorYh0QR{=jpSSVnSt zGt9Y7Bnb#Ke$slZGDKti&^XHptgL7 zkS)+b>fuz)B8Lwv&JV*};WcE2XRS63@Vv8V5vXeNsX5JB?e|7dy$DR9*J#J= zpKL@U)Kx?Y3C?A3oNyJ5S*L+_pG4+X*-P!Er~=Tq7=?t&wwky3=!x!~wkV$Ufm(N| z1HY?`Ik8?>%rf$6&0pxq8bQl16Jk*pwP`qs~x~Trcstqe-^hztuXOG zrYfI7ZKvK$eHWi9d{C${HirZ6JU_B`f$v@SJhq?mPpC-viPMpAVwE;v|G|rqJrE5p zRVf904-q{rjQ=P*MVKXIj7PSUEzu_jFvTksQ+BsRlArK&A*=>wZPK3T{Ki-=&WWX= z7x3VMFaCV5;Z=X&(s&M^6K=+t^W=1>_FFrIjwjQtlA|-wuN7&^v1ymny{51gZf4-V zU8|NSQuz!t<`JE%Qbs||u-6T*b*>%VZRWsLPk&umJ@?Noo5#{z$8Q0oTIv00`2A`# zrWm^tAp}17z72^NDu^95q1K)6Yl`Wvi-EZA+*i&8%HeLi*^9f$W;f1VF^Y*W;$3dk|eLMVb_H{;0f*w!SZMoon+#=CStnG-7ZU8V>Iy( zmk;42e941mi7!e>J0~5`=NMs5g)WrdUo^7sqtEvwz8>H$qk=nj(pMvAb4&hxobPA~p&-L5a_pTs&-0XCm zKXZ8BkkriiwE)L2CN$O-`#b15yhuQO7f_WdmmG<-lKeTBq_LojE&)|sqf;dt;llff znf|C$@+knhV_QYVxjq*>y@pDK|DuZg^L{eIgMZnyTEoe3hCgVMd|u)>9knXeBsbP_$(guzw>eV{?5l$ z063cqIysrx82-s6k;vE?0jxzV{@`jY3|*Wp?EdNUMl0#cBP$~CHqv$~sB5%50`m(( zSfD%qnxbGNM2MCwB+KA?F>u__Ti>vD%k0#C*Unf?d)bBG6-PYM!!q;_?YWptPiHo} z8q3M~_y9M6&&0#&uatQD6?dODSU)%_rHen`ANb z{*-xROTC1f9d!8`LsF&3jf{OE8~#;>BxHnOmR}D80c2Eh zd867kq@O$I#zEm!CCZJw8S`mCx}HrCl_Rh4Hsk{Cb_vJ4VA3GK+icku z%lgw)Y@$A0kzEV^#=Zj8i6jPk&Mt_bKDD!jqY3&W(*IPbzYu$@x$|3*aP{$bz-~xE^AOxtbyWvzwaCOHv6+99llI&xT_8)qX3u|y|0rDV z(Hu*#5#cN0mw4OSdY$g_xHo-zyZ-8WW&4r%qW(=5N>0O-t{k;#G9X81F~ynLV__Kz zbW1MA>Pjg0;3V?iV+-zQsll_0jimGuD|0GNW^av|4yes(PkR1bGZwO6xvgCy}ThR7?d&$N`kA3N!Xn5uSKKCT-`{lE1ZYYy?GzL}WF+mh|sgT6K2Z*c9YB zFSpGRNgYvk&#<2@G(vUM5GB|g?gk~-w+I4C{vGu{`%fiNuZIeu@V1qt`-x$E?OR;zu866Y@2^et5GTNCpX#3D=|jD5>lT^vD$ zr}{lRL#Lh4g45Yj43Vs7rxUb*kWC?bpKE1@75OJQ=XahF z5(C0DyF;at%HtwMTyL!*vq6CLGBi^Ey}Mx39TC2$a)UmekKDs&!h>4Hp2TmSUi!xo zWYGmyG)`$|PeDuEL3C6coVtit>%peYQ6S1F4AcA*F`OA;qM+1U6UaAI(0VbW#!q9* zz82f@(t35JH!N|P4_#WKK6Rc6H&5blD6XA&qXahn{AP=oKncRgH!&=b6WDz?eexo* z9pzh}_aBc_R&dZ+OLk+2mK-5UhF`>}{KN7nOxb{-1 zd`S-o1wgCh7k0u%QY&zoZH}!<;~!)3KTs-KYRg}MKP3Vl%p$e6*MOXLKhy)<1F5L* z+!IH!RHQKdpbT8@NA+BFd=!T==lzMU95xIyJ13Z6zysYQ1&zzH!$BNU(GUm1QKqm< zTo#f%;gJ@*o;{#swM4lKC(QQ<%@;7FBskc7$5}W9Bi=0heaVvuvz$Ml$TR8@}qVn>72?6W1VAc{Mt}M zkyTBhk|?V}z`z$;hFRu8Vq;IvnChm+no@^y9C1uugsSU`0`46G#kSN9>l_ozgzyqc zZnEVj_a-?v@?JmH1&c=~>-v^*zmt`_@3J^eF4e))l>}t2u4L`rueBR=jY9gZM;`nV z>z(i<0eedu2|u-*#`SH9lRJ7hhDI=unc z?g^30aePzkL`~hdH*V7IkDGnmHzVr%Q{d7sfb7(|)F}ijXMa7qg!3eHex)_-$X;~* z>Zd8WcNqR>!`m#~Xp;r4cjvfR{i04$&f1)7sgen9i>Y|3)DCt^f)`uq@!(SG?w|tdSLS+<;ID74 zTq8FJYHJHrhSwvKL|O1ZnSbG-=l6Eg-Suv60Xc;*bq~g+LYk*Q&e)tR_h3!(y)O}$ zLi*i5ec^uHkd)fz2KWiR;{RosL%peU`TxM7w*M9m#rAiG`M)FTB>=X@|A`7x)zn5- z$MB5>0qbweFB249EI@!zL~I7JSTZbzjSMMJ=!DrzgCS!+FeaLvx~jZXwR`BFxZ~+A z=!Pifk?+2awS3DVi32fgZRaqXZq2^->izZpIa1sEog@01#TuEzq%*v359787rZoC( z9%`mDR^Hdxb%XzUt&cJN3>Cl{wmv{@(h>R38qri1jLKds0d|I?%Mmhu2pLy=< zOkKo4UdS`E9Y~z3z{5_K+j~i7Ou}q0?Qv4YebBya1%VkkWzR%+oB!c?9(Ydaka32! zTEv*zgrNWs`|~Q{h?O|8s0Clv{Kg0$&U}?VFLkGg_y=0Qx#=P${6SNQFp!tDsTAPV z0Ra{(2I7LAoynS0GgeQ6_)?rYhUy}AE^$gwmg?i!x#<9eP=0N=>ZgB#LV9|aH8q#B za|O-vu(GR|$6Ty!mKtIfqWRS-RO4M0wwcSr9*)2A5`ZyAq1`;6Yo)PmDLstI zL2%^$1ikF}0w^)h&000z8Uc7bKN6^q3NBfZETM+CmMTMU`2f^a#BqoYm>bNXDxQ z`3s6f6zi5sj70>rMV-Mp$}lP|jm6Zxg}Sa*$gNGH)c-upqOC7vdwhw}e?`MEMdyaC zP-`+83ke+stJPTsknz0~Hr8ea+iL>2CxK-%tt&NIO-BvVt0+&zsr9xbguP-{3uW#$ z<&0$qcOgS{J|qTnP;&!vWtyvEIi!+IpD2G%Zs>;k#+d|wbodASsmHX_F#z?^$)zN5 zpQSLH`x4qglYj*{_=8p>!q39x(y`B2s$&MFQ>lNXuhth=8}R}Ck;1}MI2joNIz1h| zjlW@TIPxM_7 zKBG{Thg9AP%B2^OFC~3LG$3odFn_mr-w2v**>Ub7da@>xY&kTq;IGPK5;^_bY5BP~ z2fiPzvC&osO@RL)io905e4pY3Yq2%j&)cfqk|($w`l`7Pb@407?5%zIS9rDgVFfx! zo89sD58PGBa$S$Lt?@8-AzR)V{@Q#COHi-EKAa5v!WJtJSa3-Wo`#TR%I#UUb=>j2 z7o-PYd_OrbZ~3K`pn*aw2)XKfuZnUr(9*J<%z@WgC?fexFu%UY!Yxi6-63kAk7nsM zlrr5RjxV45AM~MPIJQqKpl6QmABgL~E+pMswV+Knrn!0T)Ojw{<(yD8{S|$(#Z!xX zpH9_Q>5MoBKjG%zzD*b6-v>z&GK8Dfh-0oW4tr(AwFsR(PHw_F^k((%TdkglzWR`iWX>hT1rSX;F90?IN4&}YIMR^XF-CEM(o(W@P#n?HF z!Ey(gDD_0vl+{DDDhPsxspBcks^JCEJ$X74}9MsLt=S?s3)m zQ0cSrmU*<u;KMgi1(@Ip7nX@4Zq>yz;E<(M8-d0ksf0a2Ig8w2N-T69?f}j}ufew}LYD zxr7FF3R7yV0Gu^%pXS^49){xT(nPupa(8aB1>tfKUxn{6m@m1lD>AYVP=<)fI_1Hp zIXJW9gqOV;iY$C&d=8V)JJIv9B;Cyp7cE}gOoz47P)h)Y?HIE73gOHmotX1WKFOvk z5(t$Wh^13vl;+pnYvJGDz&_0Hd3Z4;Iwa-i3p|*RN7n?VJ(whUPdW>Z-;6)Re8n2# z-mvf6o!?>6wheB9q}v~&dvd0V`8x&pQkUuK_D?Hw^j;RM-bi_`5eQE5AOIzG0y`Hr zceFx7x-<*yfAk|XDgPyOkJ?){VGnT`7$LeSO!n|o=;?W4SaGHt4ngsy@=h-_(^qX)(0u=Duy02~Fr}XWzKB5nkU$y`$67%d^(`GrAYwJ? zN75&RKTlGC%FP27M06zzm}Y6l2(iE*T6kdZPzneMK9~m)s7J^#Q=B(Okqm1xB7wy< zNC>)8Tr$IG3Q7?bxF%$vO1Y^Qhy>ZUwUmIW5J4=ZxC|U)R+zg4OD$pnQ{cD`lp+MM zS3RitxImPC0)C|_d18Shpt$RL5iIK~H z)F39SLwX^vpz;Dcl0*WK*$h%t0FVt`Wkn<=rQ6@wht+6|3?Yh*EUe+3ISF zbbV(J6NNG?VNIXC)AE#(m$5Q?&@mjIzw_9V!g0#+F?)2LW2+_rf>O&`o;DA!O39Rg ziOyYKXbDK!{#+cj_j{g;|IF`G77qoNBMl8r@EIUBf+7M|eND2#Y#-x=N_k3a52*fi zp-8K}C~U4$$76)@;@M@6ZF*IftXfwyZ0V+6QESKslI-u!+R+?PV=#65d04(UI%}`r z{q6{Q#z~xOh}J=@ZN<07>bOdbSI(Tfcu|gZ?{YVVcOPTTVV52>&GrxwumlIek}OL? zeGFo#sd|C_=JV#Cu^l9$fSlH*?X|e?MdAj8Uw^@Dh6+eJa?A?2Z#)K zvr7I|GqB~N_NU~GZ?o1A+fc@%HlF$71Bz{jOC{B*x=?TsmF0DbFiNcnIuRENZA43a zfFR89OAhqSn|1~L4sA9nVHsFV4xdIY_Ix>v0|gdP(tJ^7ifMR_2i4McL#;94*tSY) zbwcRqCo$AnpV)qGHZ~Iw_2Q1uDS2XvFff#5BXjO!w&1C^$Pv^HwXT~vN0l}QsTFOz zp|y%Om9}{#!%cPR8d8sc4Y@BM+smy{aU#SHY>>2oh1pK+%DhPqc2)`!?wF{8(K$=~ z<4Sq&*`ThyQETvmt^NaN{Ef2FQ)*)|ywK%o-@1Q9PQ_)$nJqzHjxk4}L zJRnK{sYP4Wy(5Xiw*@M^=SUS9iCbSS(P{bKcfQ(vU?F~)j{~tD>z2I#!`eFrSHf;v zquo)*?AW$#+qP}n$%<{;wr$()*yw5N`8_rOTs^kOqyY;dIjsdw*6k_mL}v2V9C_*sK<_L8 za<3)C%4nRybn^plZ(y?erFuRVE9g%mzsJzEi5CTx?wwx@dpDFSOAubRa_#m+=AzZ~ z^0W#O2zIvWEkxf^QF660(Gy8eyS`R$N#K)`J732O1rK4YHBmh|7zZ`!+_91uj&3d} zKUqDuDQ8YCmvx-Jv*$H%{MrhM zw`g@pJYDvZp6`2zsZ(dm)<*5p3nup(AE6}i#Oh=;dhOA=V7E}98CO<1Lp3*+&0^`P zs}2;DZ15cuT($%cwznqmtTvCvzazAVu5Ub5YVn#Oo1X|&MsVvz8c5iwRi43-d3T%tMhcK#ke{i-MYad@M~0B_p`Iq){RLadp-6!peP^OYHTq~^vM zqTr5=CMAw|k3QxxiH;`*;@GOl(PXrt(y@7xo$)a3Fq4_xRM_3+44!#E zO-YL^m*@}MVI$5PM|N8Z2kt-smM>Jj@Dkg5%`lYidMIbt4v=Miqj4-sEE z)1*5VCqF1I{KZVw`U0Wa!+)|uiOM|=gM65??+k|{E6%76MqT>T+;z{*&^5Q9ikL2D zN2}U$UY)=rIyUnWo=yQ@55#sCZeAC}cQA(tg5ZhqLtu*z>4}mbfoZ>JOj-|a2fR$L zQ(7N$spJL_BHb6Bf%ieO10~pQX%@^WKmQOQNOUe4h|M}XOTRL`^QVpN$MjJ7t+UdP zDdzcK3e7_fdv)PPR>O|-`kVC1_O08_WGcQXj*W5d?}3yE?-fZ_@mE-zcq6^Mn49!; zDDcus*@4dFIyZ%_d3*MO=kk3$MQ^?zaDR1-o<<7T=;`8 zz2(w>U9IQ+pZ<*B;4dE@LnlF7YwNG>la#rQ@mC4u@@0_pf40+<&t)+9(YOgCP9(aJ z5v7SRi(y4;fWR)oHRxf2|Va=?P zXq&7GtTYd+3U{Wm5?#e7gDwz#OFbvHL4Jq{BGhNYzh|U!1$_WEJef&NKDD9)*$d+e ztXF1-rvO5OBm{g9Mo8x?^YB;J|G*~3m@2y%Fyx6eb*O^lW- z`JUL?!exvd&SL_w89KoQxw5ZZ}7$FD4s>z`!3R}6vcFf0lWNYjH$#P z<)0DiPN%ASTkjWqlBB;8?RX+X+y>z*$H@l%_-0-}UJ>9l$`=+*lIln9lMi%Q7CK-3 z;bsfk5N?k~;PrMo)_!+-PO&)y-pbaIjn;oSYMM2dWJMX6tsA5>3QNGQII^3->manx z(J+2-G~b34{1^sgxplkf>?@Me476Wwog~$mri{^`b3K0p+sxG4oKSwG zbl!m9DE87k>gd9WK#bURBx%`(=$J!4d*;!0&q;LW82;wX{}KbPAZtt86v(tum_1hN z0{g%T0|c(PaSb+NAF^JX;-?=e$Lm4PAi|v%(9uXMU>IbAlv*f{Ye3USUIkK`^A=Vn zd))fSFUex3D@nsdx6-@cfO1%yfr4+0B!uZ)cHCJdZNcsl%q9;#%k@1jh9TGHRnH2(ef0~sB(`82IC_71#zbg=NL$r=_9UD-~ z8c54_zA@jEhkJpL?U`$p&|XF}OpRvr`~}+^BYBtiFB1!;FX;a3=7jkFSET)41C@V` zxhfS)O-$jRJ|R}CL{=N{{^0~c8WuLOC?`>JKmFGi?dlfss4Y^AAtV#FoLvWoHsEeg zAAOc+PXl@WoSOOu_6Tz~K=>OK@KL#^re(1oPrhcen@+#ouGG|g(;A5(SVuE~rp$?# zR$o(46m}O~QtU{!N-s}RfYh+?*m9v#w@;=DEXI;!CEf0bHEgI<~T7&VnIvtG%o=s@3c zG1AT(J>!bph%Z1^xT_aO>@%jWnTW=8Z^2k0?aJ(8R5VA}H+mDh>$b9ua{)I5X9$%b z&O%F;3AIW&9j3=Q1#8uL%4_2mc3xX2AdzYJi%#Q#PEY3lk<#u=Pc?EJ7qt4WZX)bH481F8hwMr^9C^N8KUiWIgcVa=V` z4_7By=0Fkq>M6N?Bis+nc$YOqN4Qs@KDdQCy0TTi;SQ7^#<wi9E4T)##ZVvS(SK4#6j^QjHIUh<0_ZD2Yl+t?Z2;4zA zvI<(>jLvJae#sIA`qHl0lnkcU$>Rrkcnp{E;VZwW`cucIIWi{hftjEx-7>xXWRsa4VH(CCyuleyG8a+wOY8l*y>n@ zxZb}o=p9lR)9N^FKfkvPH-t2{qDE=hG8Z!`JO>6aJ^hKJVyIV&qGo*YSpoU(d)&OE ziv2#o`&W>(IK~sH{_5aPL;qcn{2%Gae+r5G4yMl5U)EB>ZidEo|F@f)70WN%Pxo`= zQ+U-W9}iLlF=`VeGD0*EpI!(lVJHy(%9yFZkS_GMSF?J*$bq+2vW37rwn;9?9%g(Jhwc<`lHvf6@SfnQaA&aF=los z0>hw9*P}3mWaZ|N5+NXIqz#8EtCtYf-szHPI`%!HhjmeCnZCim3$IX?5Il%muqrPr zyUS#WRB(?RNxImUZHdS&sF8%5wkd0RIb*O#0HH zeH~m^Rxe1;4d(~&pWGyPBxAr}E(wVwlmCs*uyeB2mcsCT%kwX|8&Pygda=T}x{%^7 z)5lE5jl0|DKd|4N*_!(ZLrDL5Lp&WjO7B($n9!_R3H(B$7*D zLV}bNCevduAk2pJfxjpEUCw;q$yK=X-gH^$2f}NQyl(9ymTq>xq!x0a7-EitRR3OY zOYS2Qh?{_J_zKEI!g0gz1B=_K4TABrliLu6nr-`w~g2#zb zh7qeBbkWznjeGKNgUS8^^w)uLv*jd8eH~cG-wMN+{*42Z{m(E{)>K7O{rLflN(vC~ zRcceKP!kd)80=8ttH@14>_q|L&x0K^N0Ty{9~+c>m0S<$R@e11>wu&=*Uc^^`dE9RnW+)N$re2(N@%&3A?!JdI?Vx;X=8&1+=;krE8o%t z32Gi2=|qi=F?kmSo19LqgEPC5kGeJ5+<3TpUXV3Yik_6(^;SJw=Cz`dq(LN)F9G<$ za-aTiEiE}H(a>WITnJ+qG$3eCqrKgXFRiIv=@1C4zGNV!+ z{{7_AulEPXdR+~$sJ+yHA73j_w^4>UHZFnK$xsp}YtpklHa57+9!NfhOuU7m4@WQp z5_qb`)p|6atW#^b;KIj?8mWxF(!eN<#8h=Ohzw&bagGAS4;O^;d-~#Ct0*gpp_4&( ztwlS2Jf#9i>=e5+X8QSy**-JE&6{$GlkjNzNJY;K5&h|iDT-6%4@g;*JK&oA8auCovoA0+S(t~|vpG$yI+;aKSa{{Y(Tnm{ zzWuo^wgB?@?S9oKub=|NZNEDc;5v@IL*DBqaMkgn@z+IeaE^&%fZ0ZGLFYEubRxP0WG`S| zRCRXWt+ArtBMCRqB725odpDu(qdG;jez|6*MZE_Ml<4ehK_$06#r3*=zC9q}YtZ*S zBEb2?=5|Tt;&QV^qXpaf?<;2>07JVaR^L9-|MG6y=U9k{8-^iS4-l_D(;~l=zLoq% zVw05cIVj1qTLpYcQH0wS1yQ47L4OoP;otb02V!HGZhPnzw`@TRACZZ_pfB#ez4wObPJYcc%W>L8Z*`$ZPypyFuHJRW>NAha3z?^PfHsbP*-XPPq|`h} zljm&0NB7EFFgWo%0qK`TAhp220MRLHof1zNXAP6At4n#(ts2F+B`SaIKOHzEBmCJ3 z$7Z&kYcKWH&T!=#s5C8C_UMQ4F^CFeacQ{e0bG?p5J~*mOvg>zy_C{A4sbf!JT+JK z>9kMi=5@{1To&ILA)1wwVpOJ&%@yfuRwC9cD2`0CmsURi5pr2nYb6oBY&EmL9Gd@i zj{F}h!T*#a<@6mKzogszCSUCq5pxGeCq-w2|M>ZzLft79&A-&!AH~#ER1?Z=ZavC0 z)V05~!^Nl{E5wrkBLnrxLoO|AG&hoOa6AV2{KWL#X*UItj_W`}DEbIUxa;huN0S#` zUtXHi+cPyg-=Gad`2Aw-HWO*;`_&j9B3GHLy(f^@Do@Wu*5{FANC+>M*e6(YAz4k^ zcb_n4oJgrykBM1T!VN(2`&(rNBh+UcE}oL@A~Fj}xf0|qtJK?WzUk{t=M15p!)i7k zM!`qg^o;xR*VM49 zcY_1Yv0?~;V7`h7c&Rj;yapzw2+H%~-AhagWAfI0U`2d7$SXt=@8SEV_hpyni~8B| zmy7w?04R$7leh>WYSu8)oxD`88>7l=AWWJmm9iWfRO z!Aa*kd7^Z-3sEIny|bs9?8<1f)B$Xboi69*|j5E?lMH6PhhFTepWbjvh*7 zJEKyr89j`X>+v6k1O$NS-`gI;mQ(}DQdT*FCIIppRtRJd2|J?qHPGQut66-~F>RWs=TMIYl6K=k7`n1c%*gtLMgJM2|D;Hc|HNidlC>-nKm5q2 zBXyM)6euzXE&_r%C06K*fES5`6h-_u>4PZs^`^{bxR?=s!7Ld0`}aJ?Z6)7x1^ zt3Yi`DVtZ*({C;&E-sJ1W@dK29of-B1lIm)MV4F?HkZ_3t|LrpIuG~IZdWO@(2S6& zB2jA7qiiGi%HO2fU5|yY#aC<57DNc7T%q9L>B_Qh@v#)x(?}*zr1f4C4p8>~v2JFR z8=g|BIpG$W)QEc#GV1A}_(>v&=KTqZbfm)rqdM>}3n%;mv2z*|8%@%u)nQWi>X=%m?>Thn;V**6wQEj#$rU&_?y|xoCLe4=2`e&7P16L7LluN^#&f1#Gsf<{` z>33Bc8LbllJfhhAR?d7*ej*Rty)DHwVG)3$&{XFKdG?O-C=-L9DG$*)_*hQicm`!o zib(R-F%e@mD*&V`$#MCK=$95r$}E<4%o6EHLxM0&K$=;Z#6Ag0Tcl9i+g`$Pcz&tP zgds)TewipwlXh0T)!e~d+ES8zuwFIChK+c4;{!RC4P(|E4$^#0V*HhXG80C;ZD-no z!u+uQ;GCpm^iAW&odDVeo+LJU6qc$4+CJ6b6T&Y^K3(O_bN{@A{&*c6>f6y@EJ+34 zscmnr_m{V`e8HdZ>xs*=g6DK)q2H5Xew?8h;k{)KBl;fO@c_1uRV>l#Xr+^vzgsub zMUo8k!cQ>m1BnO>TQ<)|oBHVATk|}^c&`sg>V5)u-}xK*TOg%E__w<*=|;?? z!WptKGk*fFIEE-G&d8-jh%~oau#B1T9hDK;1a*op&z+MxJbO!Bz8~+V&p-f8KYw!B zIC4g_&BzWI98tBn?!7pt4|{3tm@l+K-O>Jq08C6x(uA)nuJ22n`meK;#J`UK0b>(e z2jhQ{rY;qcOyNJR9qioLiRT51gfXchi2#J*wD3g+AeK>lm_<>4jHCC>*)lfiQzGtl zPjhB%U5c@-(o}k!hiTtqIJQXHiBc8W8yVkYFSuV_I(oJ|U2@*IxKB1*8gJCSs|PS+EIlo~NEbD+RJ^T1 z@{_k(?!kjYU~8W&!;k1=Q+R-PDVW#EYa(xBJ2s8GKOk#QR92^EQ_p-?j2lBlArQgT z0RzL+zbx-Y>6^EYF-3F8`Z*qwIi_-B5ntw#~M}Q)kE% z@aDhS7%)rc#~=3b3TW~c_O8u!RnVEE10YdEBa!5@&)?!J0B{!Sg}Qh$2`7bZR_atZ zV0Nl8TBf4BfJ*2p_Xw+h;rK@{unC5$0%X}1U?=9!fc2j_qu13bL+5_?jg+f$u%)ZbkVg2a`{ZwQCdJhq%STYsK*R*aQKU z=lOv?*JBD5wQvdQIObh!v>HG3T&>vIWiT?@cp$SwbDoV(?STo3x^DR4Yq=9@L5NnN z_C?fdf!HDWyv(?Uw={r`jtv_67bQ5WLFEsf@p!P3pKvnKh_D}X@WTX^xml)D^Sj8Er?RRo2GLWxu`-Bsc ztZ*OU?k$jdB|C6uJtJ#yFm{8!oAQj<0X}2I(9uuw#fiv5bdF$ZBOl@h<#V401H;_` zu5-9V`$k1Mk44+9|F}wIIjra8>7jLUQF|q zIi8JCWez)_hj3aHBMn6(scZd9q#I<3MZzv}Yjc^t_gtGunP?|mAs+s!nGtNlDQ?ZO zgtG2b3s#J8Wh#0z1E|n_(y*F5-s7_LM0Rj3atDhs4HqmZc|?8LDFFu}YWZ}^8D`Yi z`AgJWbQ)dK(Qn?%Z=YDi#f%pLZu_kRnLrC2Qu|V>iD=z=8Y%}YY=g8bb~&dj;h7(T zPhji+7=m2hP~Xw`%Ma7o#?jo#+{IY&YkSeg^os)9>3?ZB z|Bt1-;uj0%|M_9k;#6c+)a)0oA}8+=h^#A_o=QR@jX^|y`YIR9V8ppGX>)FS%X>eB zD&v$!{eebt&-}u8z2t`KZLno>+UPceqXzuZe2u zHYz7U9}_Sw2da@ugQjBJCp(MNp~mVSk>b9nN*8UE`)88xXr88KXWmTa;FKKrd{Zy> zqL}@fo*7-ImF(Ad!5W7Z#;QLsABck0s8aWQohc@PmX3TK#f$`734%ifVd{M!J1;%A z)qjpf=kxPgv5NpUuUyc=C%MzLufCgTEFXQawxJo)rv4xG&{TKfV;V#ggkxefi`{sS zX+NQ8yc>qcdU zUuLM~0x32S& z|NdQ-wE6O{{U-(dCn@}Ty2i=)pJeb-?bP+BGRkLHp&;`Vup!}`pJdth`04rFPy;$a zkU=wWy;P$BMzf+0DM(IbYh`Dk*60l?3LAU;z3I^tHbXtB5H$Op=VEPL8!mydG>$T@S9;?^}mmDK)+x*TCN_Z`%SG{Hv0;P*>(P@^xe2%mUldaqF9$ zG+Oq<5)pQ+V4%%R>bK|~veGY4T&ALmnT@W*I)aT~2(zk>&L9PVG9&;LdC%xAUA`gC4KOGLHiqxbxMTA^!+T*7G;rF z;7ZNc3t&xd!^{e|E(7-FHu@!VrWQ8CB=pP;#jG#yi6(!BfCV(rrY~7D)0vCp_Ra@9 zSuu)to5ArdCAYX}MU&4u6}*{oe=Ipe09Z7|z41Y&lh`olz{lmO>wZpnwx+x4!~7@37|N~@wr=Tqf*+}4H{7GE*BvptMyhTAwu?VYEaj~BiJm7 zQw98FiwJTx0`qY8Y+268mkV#!grHt3S_69w?1TRi-P^2iNv=ajmQIkoX7OkY=Cpvk zs;-Gv?R(YEAb(%@0tNz)_r8bwE zPh75RwYWr?wPZ0rkG<5WwX|fjqCBP4^etDs4{ZF9+|c#@Y60nB)I_U5Z$FYe=SLXI zn}7T@%LLA>*fWf9X?vSD3tpXSEk%H{*`ZmRik>=se}`HWHKL|HHiXovNzTS~-4e?1 zgVLCWv@)(($B*C3rGn`N#nzUyVrSw>OiD;4`i15QHhdicm}A(CP)UO>PO(3!(=v-x zrsKIUCbJMb>=IB}20b{69IdU(vQ%Ti0Zm?VLQoL++HK(G%^P{wuH;|@Cn7Ncybw%D zDhWh??1)6j5j7RbEy-{rVefvMhV|Su8n9`m>4LU^TanMzUIy>S&UbSKJW56C(K5NX z*Ypzh@KaMD=ank_G}Di5SaDTz3@Ze;5$pkK$7Pz?SBj&njRD4so5e0Msp_p}|D8aq zDvU@2s@T_?)?f5XEWS3j_%6%AK-4aXU5!Xzk{fL%mI~AYWP?q}8X}}ZV3ZzKLFvmm zOHWR3OY0l)pZ#y@qGPkjS~mGj&J8uJnU<~+n?qrBTsf>8jN~i17c~Ry=4wM6YrgqZ@h`8`?iL&$8#fYrt7MinX)gEl7Sh_TS zOW{AyVh%SzW|QYBJo8iEVrA!yL(Lm&j6GB0|c?~N{~?Qyj^qjbs>E~lpWo!q!lNwfr(DPZVe zaazh2J{{o=*AQ|Wxz*!pBwYx_9+G$12{5G3V!0F=yB=tPa zEgh47ryFGZc;E%A{m4lJoik6@^k%E0{99pIL1gE;NqT!1dl5UV>RkEWtP)3f_5hG6 zs%M}qX?DNaI+4HN*-wn`HOjlEz0}K{o0fG~_%%c8sDq)6Z2)6msormgjhmtdzv;Hy{BwHXKp&3Bf9paw+J4r-E zBoWmEr6%r3t?F`38eCyr+)`In1&qS9`gcQ|rHBP`LlCl=_x?ck0lISju@hW*d~EQ) zU2sgl#~^(ye%SeZR%gZ=&?1ZxeU1v@44;`}yi^j0*Efg1lIFcC*xEj}Y~k|(I&}7z zXXi2xe>mc_cC`K=v8&-5p%=m=z47Z6HQUzNi5=oCeJ$-Bo#B0=i}CemYbux7I~B*e z3hSneMn$KHNXf4;wr5fkuA+)IzWs8gJ%$o0Q^vfnXQLnABJW;NRN(83Dcbu9dLnvo z6mweq2@yPK%0|R9vT)B$&|S!QO6f(~J^Z+b`G(j1;HKOq_fG$-36zvBI$`hvA94i( zGPGVo&Y%nRsodWyzn0bD0VZlG?=0M23Mc2V1_7>R^3`|z_5B;}JnIp0FI}9XNKJ^o z7xYKOFdYxX?UW~4PC!hVz86aP+dsOkBA(sz3J+6$KL`SU4tRwWnnCQN z&+C92x#?WNBaxf?Q^Q}@QD5rC=@aj8SIg;(QG06k^C5bZFwmiAyFl|qPX^@e2*J%m z1Fu_Jk5oZEB&%YN54Y8;?#l#GYHr->Q>-?72QSIc+Gx^C%;!$ezH>t<=o$&#w*Y_Y7=|PH*+o57yb>b&zpTUQv)0raRzrkL=hA-Z(10vNYDiT487% zzp2zr4ujA#rQ;Hxh7moX(VldzylrhKvPnl9Fb?LCt#|==!=?2aiZ`$Wx*^Lv@5r_ySpQ_vQ{h2_>I`Wd|GjXY?!>=X8v}wmTc+Nqi-?ln zQa28}pDfvjpheaM2>AYDC2x`+&QYH(jGqHDYLi}w55O5^e9s=Ui^hQ~xG*&TU8I}Y zeH~7!$!=a+1_RZe{6G$BICI6R2PKE{gYW8_ss!VY*4uXw8`?o>p=fC>n&DGzxJ$&w zoIxdMA4I503p(>m9*FnFeEJQ5Nd^WK*>I_79(IA)e#hr2qZ8Y!RMcbS}R z(2;{C#FXUv_o-0C=w18S!7fh!MXAN-iF!Oq4^n#Q{ktGsqj0nd~}H&v#Brb}6cd=q75>E;O8p?6a;CR4FiN zxyB?rmw)!Kxrh&7DbPei$lj)r+fDY&=qH+ zKX`VtQ=2fc?BwarW+heGX&C!Qk;F;mEuPC*8 z0Tv0h2v&J#wCU_0q-Wq9SHLOvx@F!QQQN+qN^-r-OgGRYhpu%J-L~SiU7o@0&q6t( zxtimUlrTO)Zk6SnXsm8l$`GW-ZHKNo1a}<%U4Ng z(k8=jTPjoZZ%$(tdr@17t|MV8uhdF4s|HbPO)SF`++T%r=cNRx&$BkW7|$)u%Anm; zGOv)GmwW*J5DzeI8Vk_HZ4v?Mmz$vpL#M%+vyeiW;BK6w|_S0 z{pqGZxI%-~r~b@=F#^|^+pwQE*qc8+b7!b}A$8OjqA%6=i?yI;3BcDP1xU_UVYa?^ z3o-aYI`X%p!w>>cRe_3rtp}@f1d&AQZ_2eeB;1_+9(`jpC22z+w%(kh6G3}Rz&~U_ z5_LxI)7~`nP=ZdVO&`rUP8`b-t^Vqi;Yt~Ckxauk>cj@W0v=E}$00?Jq(sxBcQHKc z(W}uAA*+e%Q)ybLANOe7gb4w^eX#gI%i56{GJz6NVMA{tQ! z3-}Mdjxfy6C#;%_-{5h|d0xP0YQ!qQ^uV*Y&_F9pP!A;qx#0w*)&xPF0?%{;8t+uWA#vrZ|CBD0wz@?M=ge(^#$y< zIEBv1wmL`NKAe&)7@UC9H^t0E0$}Odd>u4cQGdKdlfCn0`goK~uQ0xrP*{VJ*TjR; za16!CM>-msM@KcxU|HsEGgn{v>uy1R?slG}XL5)*rLTNHdYowI*;qe~TZH z|1Ez0TXrc@khWdmgZJKV6+aJVlFsv5z~PhdC>=^tL5BC|3tyMuXSdsEC3L0qw60S>ecX zi&`-rZ=GqxfrH{+JvkuOY?{d?;HZmv z2@4+ep(g+yG6W%NrdJe2%miVnb8nX{yXK>?5DC#GA6IIXU-`!?8+xm(8r)Vi;=?g! zmOK)$jQv~nakv-|`0=Z`-Ir1%2q8~>T7-k=DyG^Rjk7|!y(QO&)cBEKdBrv~E$7_y z&?K!6DP;Qr_0fbbj86^W(4M{lqGx6Mb;`H;>IDqqGG@3I+oZg_)nb=k|ItMkuX2Y@ zYzDmMV~3{y43}y%IT+)nBCIzi^Cr1gEfyrjrQ7gXAmE$4Hj(&CuyWXjDrkV~uP>9T zCX5cXn!1oEjO!P#71iyGh#q+8qrD8)h#wE#x;bz+a^sQyAntO(UhxFVUqR^dux8 zOsN=Nzw5imC7U~@t^#gLo}j#vge3C6o(%0V5<0d~1qlxe4%yD~{EDGzZ40)ZIXytB zg3^NFa(98n#OwV!DJqgy;xitYp)Q(W$(J0<0Xr5DHFYO$zuUkC(4}Zv2uB`O@_TR7 zG3Ehp!K;YLl%2&*oz3`{p|hj`Bzd(@BMVVA2ruucGsD0mj`^a1Qw3WsT7_z)c_<&j zvy(u5yod#@5~XT5KRPqKKp*2Q`rN!6gd#Wdh9;806oaWGi6~pB78)SYEhIYZDo*^} z-93olUg^Vh29G^}wQ8p(BK0(<7R6(8><}Bia@h%62o%ONE`~PiaIdfy!HGUm0GZdJ z&^aK^@JP|8YL`L(zI6Y#c%Q{6*APf`DU#$22PjfSP@T4xKHW~A(vL$pvf+~p{QLdx^j4sUA;?IZ zVWID3OA_VkZ_3?~Yy1yn?4Ev^r}1~c!n9;Z7pRn*D$^J%4QyWNvPkKF5{{bMBefvT zFZu|hco!0Me-__dyLe6S!}>m?I-x%1{Zr3_Qi!(T@)hh%zBE1my2AWl^XY#v%TSX3 z;?rn8Chf+?>SQ|v8gl$*f5dpix{i;?651ezum2tQCU`9sKxuZG2A9o(M~}G`*q2m#iW# z?0fJS+j_XxOk1fb+Nx6$rZqhg!x}eO!3nMy6a@4doqY&?(c`8$^B?0InG4T&{mu*3 zpcYaf)z__Dgr%+6UFYYXSu(oRrPYGviL~FKc{0X%tnt+9slAC|W0F8l^(@8qDXks~ zOZgs?O-6e-12Q>w5d?|E$P&oyah^mqd(Cu#uNtjCpp&F}G&biuW49LGkFCDEYe0S* zo-W_}-yR$%Z^03i8{&R&oU1BbY9$ER3RR5LjocL5er=CclJwCH>M6ge$R*Wi zd3zUoE*~?a1owq&DiT2#_Q)~tr$;Q=BJrMHrG@j3^J=#U3 zmd)ubgUu(9g(qmjx~7+!$9^%~fpi9$*n=+HfX&<>a}qkD;Ky@piqolGdF>VEX?(!DuO z{=7v}0Y|$@o3c`s^K3&3uMD0T1NMMrgwn$+g{=Tr&IHH@S`Aj4zn z{Mpln$!B->uUYTFe+75e!ee*euX`W%xA&g!-%s-YJ-sJP*(~t=44RSN6K5u7}a9;40`KN#fg#N>-s?YE6*qS9zkP2*=!a%O&aJ4>)JR>{O6n)(@ z$2mBny!kLLgnPgrX&!fTVnSXLEY}ZR{fLL4Jw;uI;)DhJJ<;%5&X%lg5)mYwwyHK=W zS`3yPe&Ncy_OA!;HvQV1TI3}7jib>EhqT!PZIoDg_Wm4OraFX|nGmCsXj|{&g!(_; z;(_uG68gxxy{T#wPPuETHggw6G8nCyc`=x89;arkuB%&7rbL&VzCm|jQFg8me78tu z2l-K|IsFgX@am)(c=1IWYX5fhCjIZ&9MBs9(Qg*`U5T`@H2xqzQxj`1bK#2gmDn2=yI!n0*6A2{JuA3~uX7 zsXocdxHHMV^?dsW+s}S8j8Mq!pjB8=NytY%-MEgx+HnavDcotwYmA{J%RzlLhZ{?t-W6 zr-JA(qw%OVMtv?N?75aid-cY`ZJLFT`fh-fZ0()^P(3wyQ`wDHG$9cUmEr^~!;iGV z#ukG&nXeLHarXD$=({)#Es!?%=2*`or!FE4N6XWEo>>`}ocE?kmQb+2JP;-))sn0V zoC6&be>gf!XD#yJO`FCF(Ts|~ zUbO#y44!V-U|&SEr1#r^_fJ1Ql3isjfCVAfvNga7OBJG^YAP`r8d{))?5D{xm+FB~ z*>D&s+(Z(o*)gx|EpJAYlnk@A&=zpkYvak{W~Y}~8M_p7Uu1bY#7m{Mq-#4-xw3lH z{(8=+O+WrU)^C(;qRm%NiKnO+<0W6EF|>n#fw%OKxr!@d%dWHOmv~#M2{eIlxaRW% z;k6v=< zZ{5W}@ik?!__~T?0QX0xX^^}Isw8Ey-yXCwQkS!)xT-ZdV6A`#HdMECf78X){%6)7 znLSKwqK}!hdkVk2QjAZ?j%&Id%WY~^<$ntL2p8J;eq$VCp%Cg{)oW&%Z3vp6ihm9D zIlPC#zVE^>62fNwZqsk)mt+E#rrU@%4vWtkYK)Qv$a*}$T2ZJCtTFI`tuLb*7j`!^eR`?d9h2TjF-h2Yr+ z){T|kWBNyrA5vpZE{Ez_)pG7Zf%QXqW)R@(<_0oOP?cwg&gib`IjKTzN_R*5A)G>_ z1r#qXr5i)U$$wv(kXfodOg=h$UZk78c@50K^wOMcKCx26s{q}vdOioj1n!&if0FRY zSi@$}gn4KW;2<;+lY?&>M6GNrRtfUTEIzqih@yLMQA2(17m3)hLTa@zlj=oHqaCG5 zYg71D3e}v36DjH++<*=MXgd2q&dP^6f&^KctfDe(SQrvy5JXC@BG#|N_^XbfxhcV) z>KV$aMxcL*ISc0|0;+<2ix7U7xq8m48=~j!a`g?SzE5}(Y;hxqEHJg_+qB99$}py7 z*ZPXL?FKLA>0uVicvq3okpoLZE#OG@fv^+k0{35pf`XdVT)1< z#mV4mcikkivZcE(=0rgfv&#+yZJrAOX&VDL(}Zx8@&$yi4Y1kmEK&uL<}ZqWr05mr zcSwaqH=squnLs+UCn@yp#WNQuIv$~B*sN_NAACD>N3k_$E(j~}Uvqda!_ zZcu7UrsR_q-P2YTrg|lijt8kyqL>T@ab#-a7i>%#*eoxFfgx(FoPa(y1nDI{z#Pz^ zfF~)6RBc?#ivEF<@XVD*#9r^r-;*<^(tE%UtWw^oom83;$5d{UoUbmAP(3Z)14YTK zMXQ#mz9yw>*8D^82vL^|%lyo|ZiQPd&{<*wCZI%up=wadl~C~cRJ!=Hjc&F)FNlnd zgNI|iSIMyqh=qV(z+HbldU4}!sqMs1R?t*RV!S*WW>qW_GF4NJ&vb-{2sJjiTIpL; z{bC@V&EhO|>GuDv7`%$kO<-P@^VI+y zl0tXGm|eISy)fiY3m8_Yaz>`Q=B(Yi8EH71{wfM*8ziS3BIju?26ujw==Xh4x5rH71h?Z859IWq(i#9 zLt0wt?(QBsL(q4yCv&g4t0jJvu^@FtJJk`8YXb{{(OdTS%rGxnPR)xY#6=?AWjD5M2n z5GZ@@ulO|JN34J-2y*-Nh@6|?RkFHwSj$e}p}mbc3Y}*el{O31RU0Z_E48@5O~5n;kDJy}a$x&Lc;27DTvAd@s^9>IA@$q{m6K?eZqOJGKpgCT!Zhld>#d^DAK+MDP}|3h zZ{i!ENw;mW62Pq^|FY#w?@8U6Nvjgi(sKW}&uvgjz0YIS>%Sxk1`5 z`qk`C2*bWd|0I4L=_~s(^2F$Bv7OTjo*G+gBD=Rq-~$7t{Bo|mmck(d6ywQ*UbIjkS>qtkH~Zs(sq zEYNB4xxdYmy+G=${gOjGGfSQQLi1D*{&en*3{wyd7U3M)y^FX(+d)eFi?9oMy@64c zwL?!q#*eJ$eayb4lc!B$W%M4B$4dH>9eFXwjfk5U@}6vXOWDiiLMYP3^VYlG$yDjaC({9tyL4NxPb{x=ADdJ7Bl5EHzU6h-Cbke zwi+34LGVF=G%>d5Q7C>n!)%!LT`UZ0v^YN1WrcjC(pS!&vek-SK#kj^EL9!l?TvY% zOkz%!#5Cf^2JFrvNeU5ZL1_aI(M~e4?~kId$T!A@Z$?f40q#~5HuElkRMQV+6r0>J zK9y=%I^m-_xwRNyO<2Zq-0W6!frE$jT$C3Qi3d>0911QPc`Ky6`~Y<)?mMy*u`nz8 z={b()Z;8DqbWJ?MdOsaF6Zn)$d>DQpRHM~bD3cq=Rw_fzWpiwtJFY`BF}hTFCeh+C zs-4A}MCP}`EInNzh3hRoZ6L1a`J7}T&wh9#HItmHBCRwefpQ97*u{--QH=5>MSZud zv_%DacJS+lsxlJ0q=40vs-8P$Q$_Pt)JM=)|1dcFO&JWY8KwhiP$a&Ua*Z z$BTW#lu4QZna#vZECq#Q?Up_(@`0#(@~0?mG{qA#^rZDq^&6T=pbGL8nU?BY-TwKE zPmMqhP_w?q1B~|43T5=Hl(Bi-+{yY;Acv4i9u}oWC+@^i*}l}=dg`Y~E%dTn;rqj5 z&3pLFHjC62jcxW_a@Jj2Ce%eToCB!6OV*6I0!XF9Hq7orpm-RpizSSHx890&_kCQ% z$cKVw-`WnDvv5Lq?L!qGDcUPtgmotX=C`~Smjg&oM5V?}gAzL%WkRwLmNZyrCbKwC zcsUD3O0ruLr%s`B5W)IYjzLTXcAqinas75T_j&1_m!m!^ORvk6_bYvK||DIVE@IUjWQ z0dQ(H9=a-c`@{Q=uj?JC8g`r$a>)gR#=2%vuea5B_BAp;*QX&I;N?>jHYFR=q?8sq zatBJBYX`tr1BQxIgACJ==*ivk$UjW^Maod6-=SzI3MMUbCqu!3wVHt!Be?M@)2aK+$Rv(?iH18-}e+rDznPRv< zi!{-5NNHE)eqVEeYl>F5S{6w^8L$0p7l|M;(^c+Ei|{V7!!8;xiDx@QK4Pl8Iel7N z*9%$ISyQPK_+5tc2c9jhX%sfIOCZf-E%K9X7Z6N0Nvp!~v(KAZvWnaHK^SQSragIF zVIC_7tGTXeU(TRqj?owTmj{SXNtf7;9evoBURMB5R`8R1$@$}FCS%ugA{4igxOhRi z*q_y$&&!mHF1$S}2279&m0^nFxDV#WvV&?Pphq(craPjcBtveg0Nqdm9tXL4lN{t= z?BLepVnp$U5KskjvVX-GjEf=M3mOTZb|Z$Hp*yytey0C^{cH*v>gqF&-j?gcEj4)l)cdGBmB(^HrSe_)qzf z+TZ^Yo4|GWz=Oi3m`r(hV`iZHb_mu63g(JXPMW4p9JhL_(tg+XQnmR0&52UUA|nZI zvjwOx(fNtZ`8!#|4$7GoJPQ`;T?hKOi`^`kFOyX;C4KfC(U-(CX?Qh2!RTe!4raMP zjLaC7qL_tJ?^0!T9ibZe!m-x!u7o%2dHK{uYZ~#+vERAv-G-MQeYQ*~DILuFpu02u z(Qc)=bHqb4{fs+hdKa5etlX z3EW#vlbEZmWT>X{3WbgW)8~u=8IGuRc<=?KoDXg5V`jf%i^Ai`Cd9=&FH6d|N9uJl z>QhxtW_{}H10BF}GQNitk~V=GnB%NI1Xv-6-OeaI&Amg0s{4i4;HhP$6oc(L-}yHt zej63({`5VLSoIef7D3Z9BA5x<9$^x?PhV=6A@Nu=QiJo@*o?M@*6-UA@EdV@bQCR< z9>{N%eK;Y#U-@XDBBCT^j=?<|y|lsAWrXsf`t%4VT{)63oxQe^u_5NuOq{rsrRd}Z zOx&OldRtR4leEX#r$9`gPJtbHccH!JgZK&3x`tJ<_{kv)E?$LhZ?brv`Cc}X%cWC7<@6yqM2O&m(rB`1v-TiqcQmA5n$rbGJ4zs({=R-I%6}*^UQ)wi9WuzW%Ri%&5 zTdd%>+GvADk+4q#3s5qne99`MC)X_#=p1!d?(mcKDW=Efc31Jso)9M49O0OMeP&7~ zIm!vorpxBSbvSiczr^?WP&e&-!3GLxCIaR5?PGeLgwYT;lYu9UE8SwmXR(D?A^s`7 z^F4di(+oHh%$DZjj7F3_-Y9}k^uCKeSC?Jd7h>RZIDZ{wcbh|9w4)p$dmv7|gX1n& zkrYjSso~;~qMMzZUQ5AC+GUvuj@y{4E&&v(+OE-rS^J7iE~Yz1 zCQ9hAI&0X2_H8CKZMqo00MsxtwjvM{`AdSaZ8#Y?5zPI;a+0`JF52!uVwr@5Ufctm zm;5G%gI&utfGa~fv6!jHh9d1r3TYD zEOlrbyFnDl5J%sEO>HErK~WWE6I$_eXp!dbphDf zc;~oWDQylVa=y?q;c>SKzvZ~R(ZE2csFwf@10@zaZxFAYWaV9TFMh(QuqxNhPUav~ zzCkoe8-lM{?vh}kdM6EMCH(eLK3Rt{HsEJ+4fve=xAVq(cUc9fO9g1%zI+QfFOb@0 zePFU(&?Np9w3&xs)ZwPnQniC0%xs8(Hyx{7*Ot51*`9&2^h7@!nmzuF`3pl8ep#Ls z<)nk7ts}`9tGgaVJWC-3w;B~$juY6m+7XgfzjR4I=oV}E9LRGf4@cI>d3z%CYyURI z7lRn11g!D34zI6|26>?CELeIh?cEv_GCCMd5&g<=9-)pe8iXINQ}4IljYsQyfRz|( z<%w=HN4ZOQKJ9e7DOUhjA7A%-xcR%2`@1?U&u}rvqNc_8l9dUT_S`4TKJ;yezIdp} z?qDAfx6IHQ7YlO;EAP%d4U2O7jU`Uh(um!J`hJ_3&mmQez8AqWLQEftYJuMdCj27t zoV#b!c0d8al0j1yveY6)U#kPCh%OfL>P=%WE^LQew^k-QqZ{rjX6PqOd2K7>1^VUB z`&H@+vW=wH0UY>88nXCH@RKCY&?bR%8-53b{;@>|;uzDd5f`Z% zaSC<8OLh|b@ZnBET?My38fV9~ku2cPfcWZl7nW|pkQKfFlp@xRt+K0Tj@gdvVAQXP z?i45RNE4W#Kf0%Pp2=?hESkG}EK557cwn0r1{uWeG53_tb!9bg&R8R_d4s5N0poc- zr>1g0W~1oha&#@_irbqnL)jJ@Z=y7J3fCQ@qlr{6(%rSs2rpkS1QIU^tieJ-xq%nd ze-C=#{@E+Kzb&SJ2KM~9q^4Yk^jyXa#{;P)y`YsFvfzX?%V~r6GciP4eX~$vk{-C? zeipAYsMSp`Z~&-Jc*dt}m-A_w&cnb#~sIdbU{uCayd>nWKDxQ9!%R zTrgS~+>TqXgrN~e2&eeWdPhuHP2*#K1=f^B@UGZBjFq- z;mtKYyul9ZNuq89XEoeSg7^qld5^R}FHpbyRyk1pRPMDO$_Kqi*sp1hk&UpUKc!V! zJZpCQc!)@X+%qOQMP)CU@Qe|=IG@|DZ~o#j>TBFQxH>8rJ#0y`XO9ukvc)kJ6LY3$ zY}{(tri#32!LjVY^exC3Ky)i$NY6v^*>X5y8F65pYYjt^T^X<=zm=)Cr=>dcId>?I zR^0I?)=)|}ak7wG)&Ar#A&60BRp}&NWFPy7zt)yl3aObS?sB8fxfU9ayR{$#%S<#3 zrsbmi#bDSP)@w%iYS%&wyyIB??LJ0Q%aD^!XXYk3)tQt~x_YU?y4KVKl{MJ)KSz&f zV;tJ1smY(dLM6zZXVAWND3L|(W=q~HjA6OkjQ+kx-EuqtaaQQPaa=2_wwuW@G*1>e z_TqB;+1@yuHg}YYpEJL&Sw~jD3Xeb(Wo(-nz6`#gbP7?agYT>j_R%+^h{1>7W&cP{s8epLY9Ky6mU*u*!QBn zI7T~WL-_qj+~Hdpr}qtfjZmD;eI%H0SP~~ifqoD59-q)R9_Z zKr6OeoZT!Za#k5yo&CCmzLbGP*6ggJ@2QPhIY^aMXjVjQ@D+-E#qmAjuL{o@NCUDF zFy)B~$j`rK7Iz$L>_Jl~O?IJu2P3 zlHQ@${Jgcvp`PKu7p;6Fr=4y1?8nJ;=~jls^gx4&_O4+)C-OGc5)L0+R!&uI&qQID zhV&ZQ@+2={Z|2F%WoOu9Ljt}|0r;!e zCBx(uAViqOffibUBOVEH_IlV=57ZQSQ~Te5(wmsO+o_CCNAgCJzZ3ly84J34_Zf#SwQ9q8i41 zE>u$JuO$kQq*W6MDo$Eu?3jJAFUt&>Qy#K{lT-Vx z6=kceU^v`;vBRoFxQED5TL+=>QJ!iaxV^Z2r#%CaaEWgbs1ysT$&~sem&74AEC!;< zcGDH;CENBJ&hfI!@G5ezCK!sXzdB@m#a(q8KeX;U=yl6AujNz z{}huJlo1yL$DlAsi{12aS?CJ*{xuIIV4wf-V6E?L4E!5BWMQ0Zh4uel*xZJ}QQuPE z-u#DdD6hH6`;nVJ>O}8iuWxH>Z2vc>a;iFbm)nrbj$ps$6aa4TjfVZVZr7dK+E_E# z+S`ErJDM9i{HX815lax33Wl(;H~m|sF28cs+hB$%2pjyXgubo5p_%ay3!*?212bxX z@1{$rzY6~DK*{`5@oRm0>(9INQX61!{Ip#NymIM*g~u=D)UFH!NcfQ(AsZXVOPv5) zX?=4bI9>9;>HvTACiBNDt)x;_}tsJousTuWrG- zDUSM9|4|IRSy@PhdB$sAk4b;vRr>Nt@t3OB<#_*dl_7P>FGcFF3-DA?KBW00A<;2=*&`^P8}cEZW!GSO9(+{;-V@ zd%%C8KEDYD$pC#x%zb4bfVJ|kgWcG0-UNZT9@2=R|Wz+H2iJ2A29LV z#Dye7Qn~^KUqOIS)8EGZC9w+k*Sq|}?ze$| zKpJrq7cvL=dV^7%ejE4Cn@aE>Q}b^ELnd#EUUf703IedX{*S;n6P|BELgooxW`$lE z2;lhae}w#VCPR>N+{A=T+qyn;-Jk!Dn2`C1H{l?&Wv&mW{)_(?+|T+JGMPf)s$;=d z5J27Mw}F4!tB`@`mkAnI1_G4%{WjW<(=~4PFy#B)>ubz@;O|2J^F9yq(EB<9e9})4 z{&vv)&j^s`f|tKquM7lG$@pD_AFY;q=hx31Z;lY;$;aa>NbnT| kh{^d0>dn0}#6IV5TMroUdkH8gdhnkj_&0LYo6ArC2O!h?t^fc4 diff --git a/EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingFeignClient/17BankInCapg/mvnw b/EurekaServerUsingFeignClient/17BankInCapg/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingFeignClient/17BankInCapg/mvnw.cmd b/EurekaServerUsingFeignClient/17BankInCapg/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingFeignClient/17BankInCapg/pom.xml b/EurekaServerUsingFeignClient/17BankInCapg/pom.xml deleted file mode 100644 index 1d6136d..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - 4.0.0 - - com.bankApplication - BankInApp - 0.0.1-SNAPSHOT - jar - - BankInApp - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - 8.0.11 - runtime - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - org.springframework.cloud - spring-cloud-starter-feign - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java deleted file mode 100644 index 85a1507..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; -import org.springframework.cloud.netflix.feign.EnableFeignClients; -import org.springframework.web.bind.annotation.RequestMapping; - -@SpringBootApplication -@EnableEurekaClient -@EnableFeignClients -public class BankApplicationMain { - - - - - - - - public static void main(String[] args) { - SpringApplication.run(BankApplicationMain.class, args); - } - - - - - - - /* @RequestMapping("/greeting") - public String greeting() { - return "Hello from EurekaClient bank application!"; - }*/ -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java deleted file mode 100644 index f65ebb0..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.bank.Exception; - -public class ManagedException extends Exception { - public ManagedException(String msg) { - - - - super(msg); - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/ATMController.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/ATMController.java deleted file mode 100644 index 06ec203..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/ATMController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.ATMReq; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Bank; -import com.bank.service.IATMService; -import com.bank.service.IBankService; - -//To call Restful services -@RestController -public class ATMController { - - // Injecting properties of IATMService to use its methods - @Autowired - private IATMService atmService; - // Injecting properties of IBankService to use its methods in current class - @Autowired - private IBankService bankService; - - /* - * description : this method will return a atm instance - */ - @PostMapping("/atmCreate") - public ResponseEntity createATM(@RequestBody final ATMReq atm) { - - ATM atm1 = null; - try { - final Optional bank = bankService.getBankDetailsByID(atm.getBankId()); - ATM atm2 = atm.getAtm(); - atm2.setBankId(bank.get().getBankId()); - atm1 = atmService.createATM(atm2); - return new ResponseEntity(atm1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Atm not created", HttpStatus.OK); - } - - } - /* - * description : this method will return a - * String message if money successfully added from bank - */ - - @PostMapping("/addMoneyInAtm") - public ResponseEntity addMoneyToATM(@RequestBody final AddMoneyReq atm) { - - try { - final String str = atmService.addMoneyFromBank(atm); - return new ResponseEntity(str, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money to atm not deposited succesfully!!!", HttpStatus.OK); - } - - } - - /* - * description : this method will return - * String if amount is successfully withdraw - */ - @PostMapping("/withdrawAtm") - public ResponseEntity withdrawFromAtm(@RequestBody final WithrawMoneyReq atm) { - - try { - final Long id = atmService.withrawMoney(atm); - return new ResponseEntity(id, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money from atm not withdrawn", HttpStatus.OK); - } - - } -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/AccountController.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/AccountController.java deleted file mode 100644 index 54cb138..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/AccountController.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountRequest; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IAccountService; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -// To call RestFull services -@RestController -public class AccountController { - - // Injecting properties of IAccountService to use its methods - @Autowired - private IAccountService accountService; - // Injecting properties of ICustomerService to use its methods - @Autowired - private ICustomerService customerService; - // Injecting properties of IBankService to use its methods - @Autowired - private IBankService bankService; - - /* - * description : this method will return a created account and will give - * response in response entity. - */ - @PostMapping("/accountCreate") - public ResponseEntity createAccount(@RequestBody final AccountRequest accountRe) { - Account response = null; - Optional bank; - try { - bank = bankService.getBankDetailsByID(accountRe.getBankId()); - - if (bank.isPresent()) { - Customer cust; - try { - cust = customerService.getCustomerDetails(accountRe.getCustomerId()); - - final Account acc = accountRe.getAccount(); - acc.setBank(bank.get()); - acc.setCustomer(cust); - try { - response = accountService.createAccount(acc); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Account not created", HttpStatus.OK); - } - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bank not present", HttpStatus.OK); - } - } - - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity("id not found", HttpStatus.OK); - } - - } - - /* - * method : getAccount return type : responseEntitiy description : this method - * will return a created account of a given input id - */ - - @GetMapping("/accountDetails/{id}") - public ResponseEntity getAccount(@PathVariable Long id) { - Account acc; - try { - acc = accountService.getAccountDetails(id); - return new ResponseEntity(acc, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("account of given id not found", HttpStatus.OK); - } - - } - - /* - * description : this method will return a success String if money is deposited - * mapping : post - */ - - @PostMapping("/accountDeposit") - public ResponseEntity depositAccount(@RequestBody final AccountTransaction account) { - try { - Long custId = accountService.depositMoney(account); - return new ResponseEntity(custId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - - /* - * description : this method will return a string if amount is withdraw - */ - - @PostMapping("/accountwithdraw") - public ResponseEntity withdrawAccount(@RequestBody final AccountTransaction account) { - try { - Long customerId = accountService.withdrawlMoney(account); - return new ResponseEntity(customerId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/BankController.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/BankController.java deleted file mode 100644 index d3ef533..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.service.IBankService; - -@RestController -@RequestMapping("/bank") -public class BankController { - - @Autowired - private IBankService bankService; - - - /* - * description : this method will return a bank instance - */ - @PostMapping("/bankCreate") - public ResponseEntity createBank(@RequestBody final Bank bank) { - - Bank bank1; - try { - bank1 = bankService.createBank(bank); - return new ResponseEntity(bank1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Bank not Added ", HttpStatus.OK); - } - - } - - /* - * description : this method will return a list of banks - */ - @GetMapping("/getBankDetails") - public ResponseEntity getBankDetails() { - List list; - try { - list = bankService.getBankDetails(); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bankDetailsnotfound", HttpStatus.OK); - } - - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java deleted file mode 100644 index e0d9d2c..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -@RestController -@RequestMapping("/customer") -public class CustomerController { - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - - - /** - * @return the customerService - */ - public ICustomerService getCustomerService() { - return customerService; - } - - /** - * @param customerService the customerService to set - */ - public void setCustomerService(ICustomerService customerService) { - this.customerService = customerService; - } - - /** - * @return the bankService - */ - public IBankService getBankService() { - return bankService; - } - - /** - * @param bankService the bankService to set - */ - public void setBankService(IBankService bankService) { - this.bankService = bankService; - } - - /* description : this method will return a - * created customer - */ - @PostMapping("/customerCreate") - public ResponseEntity createCustomer(@RequestBody final CreateCustomerRequest createCustomerRequest) { - Customer response = null; - Optional bank; - - try { - bank = bankService.getBankDetailsByID(createCustomerRequest.getBankID()); - - if (bank.isPresent()) { - final Customer cust = createCustomerRequest.getCustomer(); - cust.setBank(bank.get()); - - try { - response = customerService.createCustomer(cust); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("faild to create customer", HttpStatus.OK); - } - } - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e1) { - String message = e1.getMessage(); - return new ResponseEntity("unable to fetch bank details by id", HttpStatus.OK); - } - - } - - /* description : this method will return a created customer of - * specified id - */ - @GetMapping("/getCustomerDetails/{id}") - public ResponseEntity getCustomer(@PathVariable final Long id) { - final Customer cust; - try { - cust = customerService.getCustomerDetails(id); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("id not found for customer to get details", HttpStatus.OK); - } - } - - @PutMapping("/{id}/{name}/{userId}") - public ResponseEntity updateCustomer(@PathVariable final Long id,@PathVariable final String name,@PathVariable final String userId) throws CloneNotSupportedException { - final Customer cust; - try { - cust = customerService.updateCustomer(id, name, userId); - System.out.println(">>>>>>>>>>>>>>>>>>>"+cust); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("unable to update data", HttpStatus.OK); - } - } -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java deleted file mode 100644 index f0257c3..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.bank.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateDenominationRequest; -import com.bank.service.IAtmDenoService; -import com.bank.service.IBankDenominationService; -import com.bank.service.IRefServcie; - -@RestController -public class DenominationController { - - @Autowired - private IRefServcie refService; - - @Autowired - private IBankDenominationService bankDenominations; - @Autowired - private IAtmDenoService atmDenominationService; - - - - // this will add denominations to bank and atm - @PostMapping("/addDenominations") - public void addDenomination(@RequestBody CreateDenominationRequest createDenomination) - { - - try { - refService.createDenomination(createDenomination.getList()); - } catch (ManagedException e1) { - - e1.printStackTrace(); - } - try { - bankDenominations.bankDenominationCreate(createDenomination.getList(),createDenomination.getBankId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try { - atmDenominationService.atmDenominationCreate(createDenomination.getList(), createDenomination.getAtmId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java deleted file mode 100644 index 6c017c2..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.TransactionReq; -import com.bank.model.Transaction; -import com.bank.service.ITransactionService; - -@RestController -public class TransactionController { - @Autowired - private ITransactionService transactionService; - - - - // this will return all the statements of account id - @GetMapping("/transactionDetails/{accountId}") - public ResponseEntity retriveTrans(@PathVariable final Long accountId) { - - List list; - try { - list = transactionService.generateTransactionReport( accountId); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity(message, HttpStatus.OK); - } - } - - //this will create statements instance which will be used to tract transactions made by user - - @PostMapping("/transactionCreate") - public ResponseEntity createTransaction(@RequestBody final TransactionReq trans) { - - final Transaction transact =trans.getTransaction(); - final Transaction newtrans; - try { - newtrans = transactionService.createTransaction(transact); - return new ResponseEntity(newtrans, HttpStatus.CREATED); - } catch (ManagedException e) { - // TODO Auto-generated catch block - String msg=e.getMessage(); - return new ResponseEntity(msg, HttpStatus.OK); - } - - - } -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java deleted file mode 100644 index d71f279..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bank.dto; - -import com.bank.model.ATM; - -public class ATMReq { - private Long bankId; - private ATM atm; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - /** - * @param atm the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } -public ATMReq() { - // TODO Auto-generated constructor stub -} -/** - * @param bankId - * @param atm - */ -public ATMReq(Long bankId, ATM atm) { - this.bankId = bankId; - this.atm = atm; -} - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java deleted file mode 100644 index 065159f..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Account; - -public class AccountRequest { - - private long bankId; - private long customerId; - private Account account; - /** - * @return the bankId - */ - public long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the account - */ - public Account getAccount() { - return account; - } - /** - * @param account the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountRequest [bankId=" + bankId + ", customerId=" + customerId + ", account=" + account + "]"; - } - - - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java deleted file mode 100644 index bf9f152..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AccountTransaction { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this. accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java deleted file mode 100644 index 7557450..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AddMoneyReq { - - private Long atmId; - private Long bankId; - private BigDecimal amount; - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java deleted file mode 100644 index 70ea8de..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Customer; - -public class CreateCustomerRequest { - - private Customer customer; - private Long bankID; - - /** - * @return the bankID - */ - public Long getBankID() { - return bankID; - } - /** - * @param bankID the bankID to set - */ - public void setBankID(Long bankID) { - this.bankID = bankID; - } - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - /** - * @param customer the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - /** - * @param customer - * @param bankID - */ - public CreateCustomerRequest(Customer customer, Long bankID) { - super(); - this.customer = customer; - this.bankID = bankID; - } -public CreateCustomerRequest() { - // TODO Auto-generated constructor stub -} -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java deleted file mode 100644 index 50c0153..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; -import java.util.List; - -public class CreateDenominationRequest { - - private List list; - private Long bankId; - private Long atmId; - /** - * @return the list - */ - public List getList() { - return list; - } - /** - * @param list the list to set - */ - public void setList(List list) { - this.list = list; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java deleted file mode 100644 index 427128d..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Transaction; - -public class TransactionReq { - - private Long customerId; - private Long accountId; - private Transaction transaction; - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the transaction - */ - public Transaction getTransaction() { - return transaction; - } - /** - * @param transaction the transaction to set - */ - public void setTransaction(Transaction transaction) { - this.transaction = transaction; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java deleted file mode 100644 index c5af5af..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class WithrawMoneyReq { - private Long accountId; - private BigDecimal amount; - private Long atmId; - private Long customerId; - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/ATM.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/ATM.java deleted file mode 100644 index 419e543..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/ATM.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "atm_info") -@Entity -public class ATM extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "atm_id") - private Long aTMId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "id") - private Long bankId; - - /** - * @return the aTMId - */ - public Long getATMId() { - return aTMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(final Long aTMId) { - this.aTMId = aTMId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - public ATM() { - // TODO Auto-generated constructor stub - } - - - @Override - public String toString() { - return "ATM [ATMId=" + aTMId + ", amount=" + amount + ", bankId=" + bankId + "]"; - } - - /** - * @param aTMId - * @param amount - * @param bankId - */ - public ATM(Long aTMId, BigDecimal amount, Long bankId) { - aTMId = aTMId; - this.amount = amount; - this.bankId = bankId; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java deleted file mode 100644 index d7d7e63..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Ref_ATM_Denm") -@Entity -public class ATMDenomination extends BaseEntity { - @Column(name = "atm_id") - private Long ATMId; - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noofdenomination") - private int noofDenomination; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noofDenomination - */ - public int getNoofDenomination() { - return noofDenomination; - } - - /** - * @param noofDenomination - * the noofDenomination to set - */ - public void setNoofDenomination(int noofDenomination) { - this.noofDenomination = noofDenomination; - } - - public ATMDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param aTMId - * @param denomination - * @param noofDenomination - */ - public ATMDenomination(Long aTMId, BigDecimal denomination, int noofDenomination) { - ATMId = aTMId; - this.denomination = denomination; - this.noofDenomination = noofDenomination; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Account.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Account.java deleted file mode 100644 index 4188d6a..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Account.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Table(name = "account_details") -@Entity -public class Account extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "account_id") - private Long accountId; - @Column(name = "amount") - private BigDecimal amount; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - - public Account() { - - } - - @Override - public String toString() { - return "Account [accountId=" + accountId + ", amount=" + amount + ", customer=" + customer + ", bank=" + bank - + "]"; - } - - /** - * @param accountId - * @param amount - * @param customer - * @param bank - */ - public Account(Long accountId, BigDecimal amount, Customer customer, Bank bank) { - this.accountId = accountId; - this.amount = amount; - this.customer = customer; - this.bank = bank; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/AuditLog.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/AuditLog.java deleted file mode 100644 index 7493632..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/AuditLog.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.model; - -import java.sql.Timestamp; -import java.util.Date; - -public class AuditLog { - - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" + eventDate - + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - /** - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(String eventName, String eventType,Date eventDate, String userId, Object oldValue, - Object newValue) { - super(); - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Bank.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Bank.java deleted file mode 100644 index 495ed86..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -/** - * author Ram Dafale - */ - -@Table(name = "bank_details") -@Entity -public class Bank extends BaseEntity { - - @Id - // @SequenceGenerator(name = "bank_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.AUTO /* , generator = "bank_seq" */) - @Column(name = "id") - private Long bankId; - - @Column(name = "amount") - private BigDecimal amount; - @OneToMany - @JoinColumn(name = "id", referencedColumnName = "id") - List atmList = new ArrayList(); - - public Bank() { - } - - /** - * method name : getBankId() return type : Long decription : it we get all bank - * id - */ - public Long getBankId() { - return bankId; - } - - /** - * method name : setBankId(final Long bankId) method description : it will set - * the bank id - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - /** - * method name : getAmount method description : it will get the total bank - * amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * method name : setAmount method parameters : BigDecimal method description : - * it will set bank amount - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } - - /** - * @param bankId - * @param amount - */ - public Bank(Long bankId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.amount = amount; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java deleted file mode 100644 index a1a0938..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Bank_Denm") -@Entity -public class BankDenomination extends BaseEntity { - - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noOfDenomination") - private int noOfDenomination; - @Column(name = "bank_id") - private Long bankId; - - - - /** - * @return the bankId - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noOfDenomination - */ - public int getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(int noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - public BankDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param bankId - * @param denomination - * @param noOfDenomination - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination) { - - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "BankDenomination [denomination=" + denomination + ", noOfDenomination=" + noOfDenomination + ", bankId=" - + bankId + "]"; - } - - /** - * @param denomination - * @param noOfDenomination - * @param bankId - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination, Long bankId) { - super(); - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((denomination == null) ? 0 : denomination.hashCode()); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BankDenomination other = (BankDenomination) obj; - if (denomination == null) { - if (other.denomination != null) - return false; - } else if (!denomination.equals(other.denomination)) - return false; - return true; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java deleted file mode 100644 index 2b31305..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.model; - -import javax.persistence.MappedSuperclass; - -@MappedSuperclass -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId - * the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Customer.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Customer.java deleted file mode 100644 index 8b08ed4..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Customer.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.bank.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -/** - * author Ram - */ -@Table(name = "customer_details") -@Entity -public class Customer extends BaseEntity implements Cloneable { - - @Id - //@SequenceGenerator(name = "customer_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.AUTO/*, generator = "customer_seq"*/) - @Column(name = "id") - private Long customerId; - @Column(name = "customer_name") - private String customerName; - @Column(name = "pin") - private Long pin; - - // relational mapping of bank to customer - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Customer() { - // TODO Auto-generated constructor stub - } - - /** - * method name : getCustomerId method returnTypr : Long method description : to - * get customer id - */ - public Long getCustomerId() { - return customerId; - } - - /** - * method name : setCustomerId method parameter : Long method description : it - * will set customerId - */ - public void setCustomerId(final Long customerId) { - this.customerId = customerId; - } - - /** - * method Name : getCustomerName method return type : String method description - * : it will get he customer name - */ - public String getCustomerName() { - return customerName; - } - - /** - * method name : setCustomerName method parameter : String method description : - * it will set customerName - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * method Name : getPin method return type : Long method description : it will - * get he pin - */ - public Long getPin() { - return pin; - } - - /** - * method name : setPin method parameter : Long method description : it will set - * pin - */ - public void setPin(final Long pin) { - this.pin = pin; - } - - /** - * method name : setBank method parameter : Bank method description : it will - * set Bank - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", pin=" + pin + ", bank=" - + bank + "]"; - } - - /** - * @param customerId - * @param customerName - * @param pin - */ - public Customer(Long customerId, String customerName, Long pin) { - super(); - this.customerId = customerId; - this.customerName = customerName; - this.pin = pin; - } - - public Customer(String string, long l) { - - } - @Override - public Customer clone()throws CloneNotSupportedException{ - return (Customer)super.clone(); - } - public Customer( String customerName) { - super(); - - this.customerName = customerName; - - } - - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/RefMoney.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/RefMoney.java deleted file mode 100644 index 3d5d6d2..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/RefMoney.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -@Table(name="ref_money") -@Entity -public class RefMoney extends BaseEntity { - @Id - private BigDecimal denomination; - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } -public RefMoney() { - // TODO Auto-generated constructor stub -} -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Transaction.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Transaction.java deleted file mode 100644 index 66e7bd9..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/model/Transaction.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.springframework.stereotype.Component; - -@Table(name = "transaction_details") -@Entity -@Component -public class Transaction extends BaseEntity{ - @Id - - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "transaction_id") - private Long transactionId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "transaction_type") - private String transactionType; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - @ManyToOne(targetEntity = Account.class) - private Account account; - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(final Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customerId - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(final String transactionType) { - this.transactionType = transactionType; - } - - public Transaction() { - // TODO Auto-generated constructor stub - } - - /** - * @param customerId - * @param accountId - * @param amount - * @param transactionType - */ - public Transaction(BigDecimal amount, String transactionType) { - super(); - /* - * this.customerId = customerId; this.accountId = accountId; - */ - this.amount = amount; - this.transactionType = transactionType; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java deleted file mode 100644 index c3c75f0..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Account; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMDenoRepository extends JpaRepository { - - - Optional findBydenomination(BigDecimal myValue); - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java deleted file mode 100644 index 6801567..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATM; -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMRepository extends JpaRepository{ - - Optional findByaTMId(Long aTMId); - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java deleted file mode 100644 index 927e0be..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface AccountRepository extends JpaRepository{ - - - - Optional findByaccountId(Long accountId); - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java deleted file mode 100644 index 68dc6ea..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import org.springframework.stereotype.Repository; - -import com.bank.model.ATM; -import com.bank.model.Bank; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -@Repository -public interface BankRepository extends JpaRepository { - - - Optional findBybankId(Long bankId); -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java deleted file mode 100644 index 7e47033..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Customer; -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface CustomerRepository extends JpaRepository { - - Optional findOneBycustomerName(String CustomerName); - - Optional findBycustomerId(Long customerId); -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java deleted file mode 100644 index 8ae3342..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.BankDenomination; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface DenominationRepository extends JpaRepository{ - - - Optional findBydenomination(BigDecimal myValue); - - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java deleted file mode 100644 index 9a71ec7..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.RefMoney; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface RefMoneyRepository extends JpaRepository { - - - - Optional findBydenomination(BigDecimal denomination); - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java deleted file mode 100644 index ed3ce90..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Account; -import com.bank.model.Transaction; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface TransactionRepository extends JpaRepository{ - - - /* - * this query will find trasanction where account id is associated - */ - @Query(value="select * from transaction_details where account_account_id=?1",nativeQuery=true) - List findAllByAccountId(Long accountId); - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java deleted file mode 100644 index 2862798..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("atmService") -public class ATMServiceImpl implements IATMService { - - final Logger LOGGER = LoggerFactory.getLogger(ATMServiceImpl.class); - -//injectiong all required properties - @Autowired - private ATMRepository atmRepo; - @Autowired - private IBankService bankService; - @Autowired - private IAccountService accountService; - @Autowired - private ICustomerService customerService; - @Autowired - private TransactionRepository trans; - @Autowired - private IAtmDenoService atmDeno; - - - //will create new instance for atm - @Override - public ATM createATM(final ATM atm) throws ManagedException { - // TODO Auto-generated method stub - final ATM atm1 = atmRepo.save(atm); - if (atm1 != null) { - LOGGER.info("atm is added"); - return atm1; - } else { - LOGGER.error("no atm is added"); - throw new ManagedException("No such atm is created!!"); - } - } - - // will add money from bank to atm - @Transactional - @Override - public String addMoneyFromBank(final AddMoneyReq atmreq) throws ManagedException { - //method needs to be change - final Optional atm = atmRepo.findByaTMId(atmreq.getAtmId()); - if (atm.isPresent()) { - ATM atm1 = atm.get(); - final Long bankID = atmreq.getBankId(); - final Long bankId = atm1.getBankId(); - if (bankID.equals(bankId)) { - final BigDecimal amount = atmreq.getAmount(); - final Optional bankopt=bankService.getBankDetailsByID(atmreq.getBankId()); - final Bank bank=bankopt.get(); - BigDecimal bankAmount = bank.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(bankAmount) == -1) { - BigDecimal atmAmount = atm1.getAmount(); - atmAmount = atmAmount.add(amount); - atm1.setAmount(atmAmount); - bankAmount = bankAmount.subtract(amount); - bank.setAmount(bankAmount); - bankService.createBank(bank); - atmRepo.save(atm1); - atmDeno.atmDenominationDeposit(atmreq.getAmount(), atmreq.getAtmId()); - LOGGER.info("amount is added to your account"); - return "amount added"; - - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less than you want"); - } - } - else - { - LOGGER.error("amount is negative"); - throw new ManagedException("amount connot be negative"); - } - - } - else - { - LOGGER.error("no bank id exist"); - throw new ManagedException("no such bank id exist"); - } - } - else - { - LOGGER.error("no atm id exist"); - throw new ManagedException("no such atm id exist"); - } - - } - - // will withdraws monet atm - - @Transactional - @Override - public Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException { - final Optional atm = atmRepo.findByaTMId(withdraw.getAtmId()); - if (atm.isPresent()) { - final ATM atm1 = atm.get(); - BigDecimal amount = atm1.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(withdraw.getAmount()) == 1) { - final Account account =accountService.getAccountDetails(withdraw.getAccountId()); - BigDecimal accountAmount = account.getAmount(); - if (accountAmount.compareTo(withdraw.getAmount()) == 1) { - amount = amount.subtract(withdraw.getAmount()); - atm1.setAmount(amount); - accountAmount = accountAmount.subtract(withdraw.getAmount()); - account.setAmount(accountAmount); - accountService.createAccount(account); - atmRepo.save(atm1); - Transaction transaction = new Transaction(); - transaction.setAccount(account); - transaction.setAmount(account.getAmount()); - final Customer customer = customerService.getCustomerDetails(withdraw.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.save(transaction); - LOGGER.info("amount is deducted"); - return withdraw.getAccountId(); - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less thsn amount you want to withdraw"); - } - } - else - { LOGGER.error("atm amount is less"); - throw new ManagedException("atm does not have this much of amount"); - } - } - else - { LOGGER.error("-ve amount not possible "); - throw new ManagedException("negative amount cannot possible"); - } - } - else - { LOGGER.error("no atm id exist"); - throw new ManagedException("no such id of atm exist"); - } - } -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java deleted file mode 100644 index 232f9c2..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("accountService") -public class AccountServiceImpl implements IAccountService { - final Logger LOGGER = LoggerFactory.getLogger(AccountServiceImpl.class); - @Autowired - private AccountRepository accountRepository; - @Autowired - private ITransactionService trans; - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - @Autowired - private IBankDenominationService bankDenoService; - private BigDecimal balance; - - - // this will create account instance for customer - @Override - public Account createAccount(final Account account) throws ManagedException { - final Account acc = accountRepository.save(account); - if (acc != null) { - LOGGER.info("account created"); - return acc; - } else { - LOGGER.error("no account is created"); - throw new ManagedException("No account is created"); - } - } - //this will credit money to account - @Transactional - @Override - public Long depositMoney(final AccountTransaction account) throws ManagedException { - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - final Optional acc1 = accountRepository.findByaccountId(account.getAccountId()); - if (acc1.isPresent()) { - - final Account acc = acc1.get(); - balance = acc.getAmount(); - balance = balance.add(account.getAmount()); - acc.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - bankDenoService.bankDenominationDeposit(account.getAmount(),account.getBankId()); - - }else - { LOGGER.error("no bank id present"); - throw new ManagedException("no bank is present of given id"); - } - Transaction transaction = new Transaction(); - transaction.setAccount(acc); - transaction.setAmount(acc.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("credit"); - trans.createTransaction(transaction); - LOGGER.info("AMOUNT IS ADDED"); - return account.getCustomerId(); - } else { - LOGGER.error("no amount is deposited"); - throw new ManagedException("zero amount deposited"); - } - } - else - { - LOGGER.error("-ve amount is not possible"); - throw new ManagedException("negative amount is not possible"); - } - } - - //this will debit money from account - @Transactional - @Override - public Long withdrawlMoney(final AccountTransaction account) throws ManagedException { - // TODO Auto-generated method stub - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - Optional acc1 = accountRepository.findByaccountId(account.getAccountId()); - if (acc1.isPresent()) { - final Account account1 = acc1.get(); ; - balance = account1.getAmount(); - balance = balance.subtract(account.getAmount()); - account1.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - bankDenoService.bankDenominationWithdraw(account.getAmount(), account.getBankId()); - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - - Transaction transaction=new Transaction(); - transaction.setAccount(account1); - transaction.setAmount(account1.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - if(customer!=null) - { - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.createTransaction(transaction); - LOGGER.info("amount is deducted"); - return account.getCustomerId(); - } - else - { LOGGER.error("no customer exist"); - throw new ManagedException("No customer of such occunct exsit"); - } - }else - {LOGGER.error("no account exist"); - throw new ManagedException("No such account exist"); - } - - } else { - LOGGER.error("not enough amount to withdraw"); - throw new ManagedException("No amount withdraw"); - } - } - else - { - LOGGER.error("-ve value is not posssible"); - throw new ManagedException("negative amount is not possible"); - } - } - - - //It will give account details of perticular Id - @Override - public Account getAccountDetails(final Long id) throws ManagedException { - // TODO Auto-generated method stub - Account account = accountRepository.findByaccountId(id).get(); - if (account != null) { - LOGGER.info("account retrived"); - return account; - } else { - LOGGER.error("no such id exist"); - throw new ManagedException("no such element found"); - } - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java deleted file mode 100644 index ed877ef..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.ATMDenoRepository; -import com.bank.repository.ATMRepository; -import com.bank.repository.DenominationRepository; - -@Service -public class AtmDenoServiceImpl implements IAtmDenoService{ - - - @Autowired - private IRefServcie refService; - - @Autowired - private DenominationHelper denominationHelper; - - @Autowired - private ATMDenoRepository atmdenoRepository; - @Autowired - private ATMRepository atmRepo; - @Autowired - private DenominationRepository bankDeno; - @Autowired - IBankService bankService; - - - // this will create denominations for atm - @Override - public void atmDenominationCreate(List list, Long atmId) throws ManagedException { - - for(BigDecimal denom: list ) - { - final ATMDenomination first = new ATMDenomination(atmId,new BigDecimal(denom.intValue()), 0); - atmdenoRepository.save(first); - - } - } - - //this method provide logic (when you add money to atm ) for denominations adjustments - @Override - public void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException { - // TODO Auto-generated method stub - - List newList=refService.returnAll(); - - List list = new ArrayList<>(); - for(RefMoney deno:newList) - { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - ATMDenomination atmDeno=new ATMDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count=pair.getValue(); - System.out.println("key value"+myValue); - - //changes made to findById - Optional deno=atmdenoRepository.findBydenomination(myValue); - ATMDenomination denomination=deno.get(); - System.out.println("denomination"+denomination); - System.out.println("count value"+count); - ATM atm=atmRepo.findByaTMId(atmId).get(); - //changes made to findById - BankDenomination bank=bankDeno.findBydenomination(myValue).get(); - int newNum=bank.getNoOfDenomination()-count; - bank.setNoOfDenomination(newNum); - bankDeno.save(bank); - denomination.setATMId(atmId); - denomination.setNoofDenomination(denomination.getNoofDenomination()+count); - - atmdenoRepository.save(denomination); - } - } - } - - - - diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java deleted file mode 100644 index 0301a57..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -/*package com.bank.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.bank.model.AuditLog; - -@Service -public class AuditServiceImpl { - - @Autowired - RestTemplate restTemplate; - - @Bean - @LoadBalanced - RestTemplate restTemplate() { - return new RestTemplate(); - } - - // generate audit log - public AuditLog generateAudit(final AuditLog audit) { - - final String uri = "http://mongo-client/createAudit"; - System.out.println("audit obnject " + audit); - final AuditLog audii = restTemplate.postForObject(uri, audit, AuditLog.class); - return audii; - - } - - - * @Autowired private DiscoveryClient discoveryClient; - * - * - * public AuditLog generateAudit(AuditLog auditData) { List - * instance=discoveryClient.getInstances("MONGO-CLIENT"); ServiceInstance - * serviceInstance=instance.get(0); RestTemplate restTemplate = new - * RestTemplate(); - * - * String url =serviceInstance.getUri().toString(); url=url+"/create"; AuditLog - * audit = auditData; System.out.println(audit);; AuditLog resultOfOperation = - * restTemplate.postForObject(url, audit, AuditLog.class); return - * resultOfOperation; } - - -} -*/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index a77ef1a..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.DenominationRepository; - -@Service -public class BankDenominationServiceImpl implements IBankDenominationService { - @Autowired - private DenominationRepository denominationRepo; - @Autowired - private IBankService bankServcie; - @Autowired - private DenominationHelper denominationHelper; - @Autowired - private IRefServcie refService; - - - //create denomination for bank - @Override - public void bankDenominationCreate(List list, Long bankId) throws ManagedException { - - // to get values from database - for (BigDecimal denom : list) { - final BankDenomination first = new BankDenomination(new BigDecimal(denom.intValue()), 0, bankId); - denominationRepo.save(first); - - } - - } - - - //this will provide logic: when you withdraws money denominations will get adjusted accordingly - - @Override - public void bankDenominationWithdraw(BigDecimal amount, Long bankId) throws ManagedException { - List newList = refService.returnAll(); - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getcountDenomination(amount, list); - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - System.out.println("key value" + myValue); - //chnages to be made after downgrading spring boot version - Optional deno = denominationRepo.findBydenomination(myValue); - BankDenomination denomination = deno.get(); - System.out.println("denomination" + denomination); - System.out.println("count value" + count); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() - count); - denominationRepo.save(denomination); - - } - - } - - @Override - public void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException { - - List newList = refService.returnAll(); - - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - BankDenomination bankDeno = new BankDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - - Optional deno = denominationRepo.findBydenomination(myValue); - BankDenomination denomination = deno.get(); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() + count); - denominationRepo.save(denomination); - } - - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java deleted file mode 100644 index ae1f2fe..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.repository.BankRepository; - -@Service("bankService") -public class BankServiceImpl implements IBankService { - - final Logger LOGGER = LoggerFactory.getLogger(BankServiceImpl.class); - @Autowired - private BankRepository bankRepository; - @Autowired - private IBankDenominationService bankDenoService; - - - // create new bank instance - @Override - public Bank createBank(final Bank bank) throws ManagedException { - final Bank bank1 = bankRepository.save(bank); - if (bank1 != null) { - - return bank1; - } else { - LOGGER.error("No bank is added"); - throw new ManagedException("No Bank is Added"); - } - } - - - @Override - public List getBankDetails() throws ManagedException { - final List list = bankRepository.findAll(); - if (list.isEmpty()) { - LOGGER.error("No banks found"); - throw new ManagedException("No bank found"); - } else { - return list; - } - } - - @Override - public Optional getBankDetailsByID(final long ID) throws ManagedException { - // changes made in repo - final Optional bank = bankRepository.findBybankId(ID); - if (bank.isPresent()) { - return bank; - } else { - LOGGER.error("no bank of such id exist"); - throw new ManagedException("No such bank found"); - } - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java deleted file mode 100644 index b38547f..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.service; - - - -import java.util.Calendar; -import java.util.Date; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.AuditLog; -import com.bank.model.Customer; -import com.bank.repository.CustomerRepository; - -enum EventName { - CUSTOMER, ACCOUNT, ATM, BANK -} - -enum EventType { - CREATED, UPDATED -} - -@Service("customerService") -public class CustomerServiceImpl implements ICustomerService, Cloneable { - final static Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class); - @Autowired - private CustomerRepository customerRepository; - /*@Autowired - AuditServiceImpl auditService;*/ - @Autowired - IFeignClient fclient; - - @Override - public Customer createCustomer(final Customer customer) throws ManagedException { - final Customer custom = customerRepository.save(customer); - if (custom != null) { - return custom; - } else { - LOGGER.error("No customer is added"); - throw new ManagedException("no customer is created"); - } - } - - - @Override - public Customer getCustomerDetails(final Long id) throws ManagedException { - - final Customer customer = customerRepository.findBycustomerId(id).get(); - if (customer != null) { - return customer; - } else { - LOGGER.info("No customer of given id is exist"); - throw new ManagedException("no customer of such id exist"); - } - - } - - @Override - public Customer updateCustomer(final Long id, final String name, final String userId) - throws ManagedException, CloneNotSupportedException { - - final Customer customer = customerRepository.findBycustomerId(id).get(); - - Customer oldcustmer = customer.clone(); - - if (customer != null) { - customer.setCustomerName(name); - customer.setUserId(userId); - Customer cust = customerRepository.save(customer); - Calendar cal=Calendar.getInstance(); - Date time=cal.getTime(); - AuditLog audit = new AuditLog(EventName.CUSTOMER.toString(), EventType.UPDATED.toString(), time, - cust.getUserId(), oldcustmer, cust); - - //AuditLog ob = auditService.generateAudit(audit); - - AuditLog ob = fclient.create(audit); - - - return cust; - } else { - LOGGER.info("Customer not present as Id not present"); - throw new ManagedException("customer data not updated"); - } - - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java deleted file mode 100644 index 8621dc3..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -@Component -public class DenominationHelper { - - public Map getDenominatioValues(final BigDecimal amount , final List list) throws ManagedException { - final Map newMap=new HashMap(); - Random random = new Random(); - BigDecimal remainder = amount; - if(amount.intValue()>=0) - { - for(int i=0;i<=list.size();i++) - { - Integer randomIndex = random.nextInt(list.size()); - BigDecimal randomElement = list.get(randomIndex); - if ( !(randomElement.compareTo(remainder) >0) ) { - Integer count=remainder.divide(randomElement).intValue(); - remainder= remainder.remainder( randomElement); - - newMap.put(randomElement,count); - - if (remainder.compareTo(BigDecimal.ZERO) ==0) { - break; - } - } - list.remove(randomIndex); - - } - if (remainder.compareTo(BigDecimal.ZERO) !=0) { - System.out.println("cant Proceed "); - return null ; - } - - } - return newMap; - } - - - - public Map getcountDenomination(BigDecimal amount, List list) throws ManagedException - { - Map newMap = new HashMap(); - - List selectedList = new ArrayList(); - for (BigDecimal denom : list) { - if (denom.compareTo(amount) <= 0) { - selectedList.add(denom); - } else { - throw new ManagedException("selected list is empty"); - } - } - for (int i = 0; i <= selectedList.size(); i++) { - BigDecimal maxDen = Collections.max(selectedList); - Integer count = amount.divide(maxDen).intValue(); - amount = amount.remainder(maxDen); - newMap.put(maxDen, count); - - if (amount.compareTo(BigDecimal.ZERO) == 0) { - break; - } - selectedList.remove(maxDen); - } - // get index of particular element - if (amount.compareTo(BigDecimal.ZERO) != 0) { - throw new ManagedException("amount cannot be withdrawn"); - } - return newMap; - } -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IATMService.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IATMService.java deleted file mode 100644 index 91f56b9..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IATMService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; - -/** - * @author ram - */ -public interface IATMService { - /** - * method name : createATM return type : ATM object parameter :object of ATM - * description : this method will return a atm which is created - */ - ATM createATM(final ATM atm) throws ManagedException; - - /** - * method name : addMoneyFromBank return type : String parameter :object of - * ATMMoneyReq description : this method will return a string if money is added - * to atm - */ - String addMoneyFromBank(final AddMoneyReq atm) throws ManagedException; - - /** - * method name : withrawMoney return type : String parameter :object of - * WithdrawMoneyReq description : this method will return a string if - * successfully money withraw - */ - Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IAccountService.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IAccountService.java deleted file mode 100644 index d207310..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IAccountService.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; - -public interface IAccountService { - /** - * method name : createAccount return type : Account object parameter :object of - * Account class description : this method will return a account which is - * created - */ - Account createAccount(final Account account) throws ManagedException; - - /** - * method name : depositMoney return type : String parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully amount is added and add to transaction list - */ - Long depositMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : withdrawlMoney return type : String object parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully withdraw and add to transaction list - */ - Long withdrawlMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : getAccountDetails return type : Account object parameter :Long - * id description : this method will return a account which is created of given - * id - */ - Account getAccountDetails(final Long id) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java deleted file mode 100644 index 47657d8..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java +++ /dev/null @@ -1,15 +0,0 @@ - package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; - -public interface IAtmDenoService { - - - - - void atmDenominationCreate(List list,Long atmId)throws ManagedException; - void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException; -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java deleted file mode 100644 index 124f9c5..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -import com.bank.Exception.ManagedException; - -public interface IBankDenominationService { - - - void bankDenominationWithdraw(BigDecimal amount,Long bankId) throws ManagedException; - void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException ; - void bankDenominationCreate(List list,Long bankId)throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IBankService.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IBankService.java deleted file mode 100644 index a464c98..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IBankService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; - -public interface IBankService { - /* - * description : this method will return a bank which is created - */ - Bank createBank(final Bank bank) throws ManagedException; - - /* description : this method will return a list of all banks - */ - List getBankDetails() throws ManagedException; - - /* - * description : this method will return a bank of given id - */ - Optional getBankDetailsByID(final long Id) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java deleted file mode 100644 index 8256c10..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Customer; - -/** - * @author ram - * - */ -public interface ICustomerService { - /** - * description : this method will return a customer which is - * created - */ - Customer createCustomer(final Customer customer) throws ManagedException; - - /** - * description : this method will return a customer of specified id - */ - Customer getCustomerDetails(final Long id) throws ManagedException; - /* - * description : this method will return a customer of specified id with updation - * @throws CloneNotSupportedException ,ManagedException - */ - Customer updateCustomer(final Long id,final String name, final String userId ) throws ManagedException, CloneNotSupportedException; -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java deleted file mode 100644 index 98f4558..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.bank.service; - -import org.springframework.cloud.netflix.feign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import com.bank.model.AuditLog; - -/** - * @author trainee - * - */ -@FeignClient("mongo-client") -public interface IFeignClient { - - @PostMapping(path = "createAudit") - AuditLog create(final AuditLog audit); - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java deleted file mode 100644 index 85867ad..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -/** - * @author ram - * - */ -public interface IRefServcie { - - /** - * - * @param denomination - * @return - * @throws BankException - */ - - /** - * - * @return - * @throws ManagedException - */ - List returnAll() throws ManagedException; - void createDenomination(List list) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java deleted file mode 100644 index 9e8c997..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; - -/** - * @author ram - * - */ -public interface ITransactionService { - /** - * method name : createTransaction return type : Transaction object parameter - * :Transaction description : this method will return a transaction which is - * created - */ - Transaction createTransaction(final Transaction trans) throws ManagedException; - - /** - * method name : generateTransactionReport return type : List - * Object description : this method will return a list which of transactions - */ - List generateTransactionReport(Long accountId) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java deleted file mode 100644 index bc21cee..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; -import com.bank.repository.RefMoneyRepository; -@Service -public class RefServcieImpl implements IRefServcie { - -@Autowired -private RefMoneyRepository refRepo; - @Override - public void createDenomination(List list) throws ManagedException{ - for(BigDecimal denomination: list ) - { - //changes to be made after version chnage - if(!refRepo.findBydenomination(denomination).isPresent()) - { - RefMoney refMoney=new RefMoney(); - refMoney.setDenomination(denomination); - refRepo.save(refMoney); - //return true; - } - else - { - throw new ManagedException("Denomination already exist!!!!"); - } - } - } - - @Override - public List returnAll() throws ManagedException { - - List list=refRepo.findAll(); - if(list.isEmpty()) - { - throw new ManagedException("no denomination found"); - } - else - { - return list; - } - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java b/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 213e1ea..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.bank.service; - -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; -import com.bank.repository.TransactionRepository; -@Service -public class TransactionServiceImpl implements ITransactionService{ - final Logger LOGGER = LoggerFactory.getLogger(TransactionServiceImpl.class); - @Autowired - private TransactionRepository transact; - - @Override - public Transaction createTransaction(final Transaction trans) throws ManagedException { - - final Transaction newtransaction =transact.save(trans); - if(newtransaction!=null) - { - return newtransaction; - } - else - { - throw new ManagedException("no transaction has been created"); - } - } - - @Override - public List generateTransactionReport(Long accountId) throws ManagedException { - // TODO Auto-generated method stub - System.out.println(">>>>>>>>"+accountId); - List transopt=transact.findAllByAccountId(accountId); - System.out.println(">>>>>>>>"+transopt); - - return transopt; - } - -} diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/resources/application.properties b/EurekaServerUsingFeignClient/17BankInCapg/src/main/resources/application.properties deleted file mode 100644 index b8e2a66..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/resources/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/bankapp?useSSL=false -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true - -#Mongo -eureka.client.service-url.defaultZone=http://localhost:8762/eureka - - - - diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/main/resources/bootstrap.properties b/EurekaServerUsingFeignClient/17BankInCapg/src/main/resources/bootstrap.properties deleted file mode 100644 index 39ea1a9..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/main/resources/bootstrap.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=bank-client \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java b/EurekaServerUsingFeignClient/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java deleted file mode 100644 index c0e0570..0000000 --- a/EurekaServerUsingFeignClient/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java +++ /dev/null @@ -1,227 +0,0 @@ -/*package com.bank.testcases; - - - - - - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Optional; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -import com.bank.Exception.ManagedException; -import com.bank.controller.CustomerController; -import com.bank.dto.ATMReq; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.service.ATMServiceImpl; -import com.bank.service.AccountServiceImpl; -import com.bank.service.BankServiceImpl; -import com.bank.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -@SpringBootConfiguration -@ComponentScan("application.properties") -public class AllTestCases { - - @Autowired - CustomerRepository customerRepository; - - @Autowired - CustomerServiceImpl customerServiceImpl; - - @Autowired - BankRepository bankRepository; - - @Autowired - BankServiceImpl bankServiceImpl; - - @Autowired - AccountRepository accountRepository; - - @Autowired - AccountServiceImpl accountServiceImpl; - - @Autowired - ATMRepository atmRepository; - - @Autowired - ATMServiceImpl atmServiceImpl; - - - @Test - public void createBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - when(bankRepository.save(bank)).thenReturn(bank); - // System.out.println(bank); - assertThat(bankServiceImpl.createBank(bank), is(notNullValue())); - } - - @Test - public void testAddBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - bankServiceImpl.createBank(bank); - - List departments = bankServiceImpl.getBankDetails(); - Assert.assertEquals(1, departments.size()); - } - - @Test - public void testAddCustomer() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - List employees = (List) customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(1, employees.size()); - } - - - @Test - public void testAddCustomerName() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getCustomerName(), employees.getCustomerName()); - } - RestTemplate restTemplate = new RestTemplate(); - @Autowired - CustomerController customerController; - - - - @Test - public void customerCreateRestTemplateTest() { - Customer customer = new Customer(); - customer.setCustomerName("Lokesh"); - customer.setPin(442001L); - - final String uri = "http://localhost:8080/customer/createCustomer"; - Optional ob = bankRepository.findById(1L); - Bank obj = ob.get(); - - CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest(customer,1L); - String result = restTemplate.postForObject(uri, createCustomerRequest, String.class); - - //System.out.println(result); - assertEquals(result, customerController.createCustomer(createCustomerRequest)); - } - - - - @Test - public void viewCustByRestTemplateTest() { - - final String uri = "http://localhost:8080/getCustomer"; - - RestTemplate restTemplate = new RestTemplate(); - String result = restTemplate.getForObject(uri, String.class); - System.out.println(result); - assertEquals(result, customerController.getCustomer(1L)); - } - - - - @Test - public void testAddCustomerpin() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getPin(), employees.getPin()); - } - - - @Test - public void testAddAccount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - List information = (List) accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(1, information.size()); - } - - @Test - public void testAddAccountAmount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAmount(), information.getAmount()); - } - - @Test - public void testAddAccountId() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAccountId(), information.getAccountId()); - } - - - @Test - public void createAtm() throws ManagedException { - Bank bank = new Bank(1L,new BigDecimal(1200)); - - Optional bnk = Optional.of(bank); - - ATM atm = new ATM(1L,new BigDecimal(5000), 1L); - - //ATMReq req = new ATMReq(1L,atm); - - - when(bankRepository.findById(Mockito.any(Long.class))).thenReturn(bnk); - when(atmRepository.save(atm)).thenReturn(atm); - assertThat(atmServiceImpl.createATM(atm), is(notNullValue())); - - } - - -}*/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/eurekaserver/.gitignore b/EurekaServerUsingFeignClient/eurekaserver/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingFeignClient/eurekaserver/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/eurekaserver/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingFeignClient/eurekaserver/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingFeignClient/eurekaserver/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingFeignClient/eurekaserver/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingFeignClient/eurekaserver/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingFeignClient/eurekaserver/mvnw b/EurekaServerUsingFeignClient/eurekaserver/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingFeignClient/eurekaserver/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingFeignClient/eurekaserver/mvnw.cmd b/EurekaServerUsingFeignClient/eurekaserver/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingFeignClient/eurekaserver/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingFeignClient/eurekaserver/pom.xml b/EurekaServerUsingFeignClient/eurekaserver/pom.xml deleted file mode 100644 index 7d38d40..0000000 --- a/EurekaServerUsingFeignClient/eurekaserver/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - 4.0.0 - - com.github.rawsanj - eureka-server - 0.0.1-SNAPSHOT - jar - - eureka-server - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java b/EurekaServerUsingFeignClient/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java deleted file mode 100644 index 1b2a6ba..0000000 --- a/EurekaServerUsingFeignClient/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.eurekaserver; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; - -@SpringBootApplication -@EnableEurekaServer -public class EurekaserverApplication { - - public static void main(String[] args) { - SpringApplication.run(EurekaserverApplication.class, args); - } -} diff --git a/EurekaServerUsingFeignClient/eurekaserver/src/main/resources/application.properties b/EurekaServerUsingFeignClient/eurekaserver/src/main/resources/application.properties deleted file mode 100644 index 90efd1c..0000000 --- a/EurekaServerUsingFeignClient/eurekaserver/src/main/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -server.port=8762 - - - - - -spring.application.name=application-service - -eureka.client.register-with-eureka=false -eureka.client.fetch-registry=false -eureka.client.serviceUrl.defaultZone= http://localhost:8762/eureka \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java b/EurekaServerUsingFeignClient/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java deleted file mode 100644 index a20f6a0..0000000 --- a/EurekaServerUsingFeignClient/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.eurekaserver; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class EurekaserverApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/.gitignore b/EurekaServerUsingFeignClient/mongodbClient2/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/mongodbClient2/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingFeignClient/mongodbClient2/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingFeignClient/mongodbClient2/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingFeignClient/mongodbClient2/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingFeignClient/mongodbClient2/mvnw b/EurekaServerUsingFeignClient/mongodbClient2/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingFeignClient/mongodbClient2/mvnw.cmd b/EurekaServerUsingFeignClient/mongodbClient2/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingFeignClient/mongodbClient2/pom.xml b/EurekaServerUsingFeignClient/mongodbClient2/pom.xml deleted file mode 100644 index 5ae6d0a..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - 4.0.0 - - com.mongoDb - mongodbExample - 0.0.1-SNAPSHOT - jar - - mongodbExample - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - org.springframework.boot - spring-boot-starter-web - - - org.projectlombok - lombok - 1.16.20 - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java deleted file mode 100644 index 134b650..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; -@SpringBootApplication -@EnableEurekaClient -public class MongoMain { - - public static void main(String[] args) { - SpringApplication.run(MongoMain.class, args); - } - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java deleted file mode 100644 index a830375..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.mongo.db.controller; - -import java.util.List; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.service.IAuditService; -import com.mongo.db.vo.updateAuditRequest; - -/** - * @author trainee - * - */ -//@RequestMapping("/audit") -@RestController -public class AuditController { - - @Autowired - private IAuditService auditService; -/** - * - * @param audit - * @return - */ - @PostMapping - public ResponseEntitycreate(@RequestBody final AuditLog audit) - { - try { - auditService.createAudit(audit); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException exep) { - return new ResponseEntity(exep.getMessage(),HttpStatus.OK); - } - } - /** - * - * @param eventName - * @return - */ - @GetMapping("/{eventName}") - public ResponseEntitygetAudit(@PathVariable @NotNull final String eventName) - { - - try { - List list=auditService.getDetails(eventName); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @return - */ - @GetMapping - public ResponseEntitygetAllAudit() - { - - try { - List list=auditService.findall(); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param update - * @return - */ - @PutMapping - public ResponseEntityupdateAudit(@RequestBody final updateAuditRequest update) - { - - try { - AuditLog audit=auditService.update(update.getEventId(), update.getEventType()); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param eventId - * @return - */ - @DeleteMapping("{eventId}") - public ResponseEntitydeleteAudit(@PathVariable final UUID eventId) - { - - try { - - String audit=auditService.deleteAudit(eventId); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java deleted file mode 100644 index 1b55caa..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.mongo.db.document; - -import java.util.Date; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -@Document -public class AuditLog { - - @Id - @NotNull - private UUID eventID=UUID.randomUUID(); - @NotNull - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * - * @return the eventID - */ - public UUID getEventID() { - return eventID; - } - /** - * @param eventID the eventID to set - */ - public void setEventID(UUID eventID) { - this.eventID = eventID; - } - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /** - * @param eventID - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(UUID eventID, String eventName, String eventType, Date eventDate, String userId, - Object oldValue, Object newValue) { - super(); - this.eventID = eventID; - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventID=" + eventID + ", eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" - + eventDate + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - - - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java deleted file mode 100644 index 6479eb2..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.mongo.db.document; - -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java deleted file mode 100644 index c61912a..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db.exception; - -public class AuditException extends Exception{ - String msg; - - /** - * @param msg - */ - public AuditException(String msg) { - super(); - this.msg = msg; - } - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java deleted file mode 100644 index b7d4db1..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.mongo.db.repo; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.data.mongodb.repository.MongoRepository; - -import com.mongo.db.document.AuditLog; - -/** - * @author trainee - * - */ -public interface AuditMongoRepository extends MongoRepository{ - - /** - * @param eventName - * @return - */ - List findByEventName(String eventName); - /** - * @param eventType - * @return - */ - AuditLog findByEventType(String eventType); - - - Optional findByeventID(UUID eventID); -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java deleted file mode 100644 index cd8286f..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; - -@Service("auditService") -public class AuditServiceImpl implements IAuditService{ - - @Autowired - private AuditMongoRepository auditRepo; - @Override - public AuditLog createAudit(AuditLog audit)throws AuditException { - AuditLog audi= auditRepo.save(audit); - if(audi!=null) - { - return audi; - } - else - { - throw new AuditException("audit not added"); - } - } - - - - @Override - public String deleteAudit(UUID id) throws AuditException { - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - {AuditLog aud=audit.get(); - auditRepo.delete(aud);; - return "deleted"; - } - else - { - throw new AuditException("not deleted"); - } - } - - @Override - public AuditLog update(UUID id,String eventType) throws AuditException { - //changes made after downgrading application - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - { - AuditLog auditLog=audit.get(); - auditLog.setEventType(eventType); - AuditLog auu=auditRepo.save(auditLog); - return auu; - } - else - { - throw new AuditException("id not found!!!!"); - } - } - - - - @Override - public List getDetails(String eventName) throws AuditException { - // TODO Auto-generated method stub - List list=auditRepo.findByEventName(eventName); - if(list.isEmpty()) - { - throw new AuditException("List is empty"); - } - else - { - return list; - } - - } - - - - @Override - public List findall() throws AuditException { - // TODO Auto-generated method stub - return auditRepo.findAll(); - } - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java deleted file mode 100644 index db121ae..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.UUID; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; - -public interface IAuditService { - - /** - * @method createAudit - * @param audit - * @return AuditLog object - * @throws AuditException - */ - AuditLog createAudit(AuditLog audit) throws AuditException; - /** - * @method getDetails - * @param eventName - * @return List - * @throws AuditException - */ - List getDetails(String eventName) throws AuditException; - /** - * @method deleteaudit - * @param id - * @return String - * @throws AuditException - */ - String deleteAudit(UUID id) throws AuditException; - /** - * @method update - * @param id - * @param eventType - * @return AuditLog - * @throws AuditException - */ - AuditLog update(UUID id,String eventType) throws AuditException; - /** - * @method findall - * @return List - * @throws AuditException - */ - List findall() throws AuditException; - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java b/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java deleted file mode 100644 index ac2a51a..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mongo.db.vo; - -import java.util.UUID; - -public class updateAuditRequest { - - private UUID eventId; - private String eventType; - /** - * @return the eventId - */ - public UUID getEventId() { - return eventId; - } - /** - * @param eventId the eventId to set - */ - public void setEventId(UUID eventId) { - this.eventId = eventId; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - -} diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/main/resources/application.properties b/EurekaServerUsingFeignClient/mongodbClient2/src/main/resources/application.properties deleted file mode 100644 index a672323..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/main/resources/application.properties +++ /dev/null @@ -1,12 +0,0 @@ -#Mongo -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27017 -spring.data.mongodb.database=mongodb -server.port=8082 -#Mongo -eureka.client.service-url.defaultZone=http://din16002842:9090/eureka -spring.application.name=mongo-client - - -#appproperty client-spring.application.name=mongo-service - diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java b/EurekaServerUsingFeignClient/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java deleted file mode 100644 index 86f4145..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/*package com.mongoDb.mongodbExample; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.document.BaseEntity; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; -import com.mongo.db.service.AuditServiceImpl; -import com.mongo.db.service.IAuditService; - -@RunWith(MockitoJUnitRunner.class) -public class MongoTest { - - @Mock - private AuditMongoRepository auditRepo; - - - @InjectMocks IAuditService auditServcie=new AuditServiceImpl(); - Date date=new Date(); - UUID id; - Timestamp time; - BaseEntity base1; - BaseEntity bsae2; - AuditLog audit; - AuditLog audit1; - AuditLog audit2; - @Before - public void init() - { - date=new Date(); - id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - time=new Timestamp(date.getTime()); - base1=new BaseEntity("1"); - bsae2=new BaseEntity("2"); - audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - audit1 =new AuditLog(UUID.fromString("38400000-8cf0-11cd-b23e-10b96e4ef00d"),"createnew","creation",time,"3",base1,bsae2); - } - @Test - public void auditcreateTest()throws AuditException - { Date date=new Date(); - UUID id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - Timestamp time=new Timestamp(date.getTime()); - BaseEntity base1=new BaseEntity("1"); - BaseEntity bsae2=new BaseEntity("2"); - AuditLog audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - Mockito.when(auditRepo.save(audit)).thenReturn(audit); - AuditLog audi; - - audi = auditServcie.createAudit(audit); - assertEquals("created",audi,audit); - } - @Test(expected=AuditException.class) - public void falsecreateTest() throws AuditException - { - AuditLog audit1=null; - Mockito.when(auditRepo.save(audit1)).thenReturn(audit1); - AuditLog audi; - audi = auditServcie.createAudit(audit1); - } - -@Test -public void auditgetDetails()throws AuditException -{ - - - List list=new ArrayList(); - - list.add(audit); - list.add(audit1); - Mockito.when(auditRepo.findByEventName("create")).thenReturn(list); - List newList=auditServcie.getDetails("create"); - assertEquals(list, newList); - -} -@Test(expected=AuditException.class) -public void auditgetDetailsfalse()throws AuditException -{ - - - List list=new ArrayList<>(); - Mockito.when(auditRepo.findByEventName("mongo")).thenReturn(list); - List newList=auditServcie.getDetails("mongo"); - - -} - -@Test -public void auditupdatetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - assertEquals(auditt,newAudit); -} - -@Test(expected=AuditException.class) -public void auditupdatefalsecase() throws AuditException -{ - Optional opt=Optional.empty(); - when(auditRepo.findById(id)).thenReturn(opt); - //AuditLog auditt=opt.get(); - //when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - -} - -@Test -public void auditdeletetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - - String newAudit=auditServcie.deleteAudit(id); - - assertEquals("deleted",newAudit); -} - -} -*/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClient/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java b/EurekaServerUsingFeignClient/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java deleted file mode 100644 index 05b8eae..0000000 --- a/EurekaServerUsingFeignClient/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mongoDb.mongodbExample; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MongodbExampleApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.eclipse-pmd b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.gitignore b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/mvnw b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/mvnw.cmd b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/pom.xml b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/pom.xml deleted file mode 100644 index 1d6136d..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - 4.0.0 - - com.bankApplication - BankInApp - 0.0.1-SNAPSHOT - jar - - BankInApp - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - 8.0.11 - runtime - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - org.springframework.cloud - spring-cloud-starter-feign - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java deleted file mode 100644 index 85a1507..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; -import org.springframework.cloud.netflix.feign.EnableFeignClients; -import org.springframework.web.bind.annotation.RequestMapping; - -@SpringBootApplication -@EnableEurekaClient -@EnableFeignClients -public class BankApplicationMain { - - - - - - - - public static void main(String[] args) { - SpringApplication.run(BankApplicationMain.class, args); - } - - - - - - - /* @RequestMapping("/greeting") - public String greeting() { - return "Hello from EurekaClient bank application!"; - }*/ -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java deleted file mode 100644 index f65ebb0..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.bank.Exception; - -public class ManagedException extends Exception { - public ManagedException(String msg) { - - - - super(msg); - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/ATMController.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/ATMController.java deleted file mode 100644 index 06ec203..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/ATMController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.ATMReq; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Bank; -import com.bank.service.IATMService; -import com.bank.service.IBankService; - -//To call Restful services -@RestController -public class ATMController { - - // Injecting properties of IATMService to use its methods - @Autowired - private IATMService atmService; - // Injecting properties of IBankService to use its methods in current class - @Autowired - private IBankService bankService; - - /* - * description : this method will return a atm instance - */ - @PostMapping("/atmCreate") - public ResponseEntity createATM(@RequestBody final ATMReq atm) { - - ATM atm1 = null; - try { - final Optional bank = bankService.getBankDetailsByID(atm.getBankId()); - ATM atm2 = atm.getAtm(); - atm2.setBankId(bank.get().getBankId()); - atm1 = atmService.createATM(atm2); - return new ResponseEntity(atm1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Atm not created", HttpStatus.OK); - } - - } - /* - * description : this method will return a - * String message if money successfully added from bank - */ - - @PostMapping("/addMoneyInAtm") - public ResponseEntity addMoneyToATM(@RequestBody final AddMoneyReq atm) { - - try { - final String str = atmService.addMoneyFromBank(atm); - return new ResponseEntity(str, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money to atm not deposited succesfully!!!", HttpStatus.OK); - } - - } - - /* - * description : this method will return - * String if amount is successfully withdraw - */ - @PostMapping("/withdrawAtm") - public ResponseEntity withdrawFromAtm(@RequestBody final WithrawMoneyReq atm) { - - try { - final Long id = atmService.withrawMoney(atm); - return new ResponseEntity(id, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money from atm not withdrawn", HttpStatus.OK); - } - - } -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/AccountController.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/AccountController.java deleted file mode 100644 index 54cb138..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/AccountController.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountRequest; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IAccountService; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -// To call RestFull services -@RestController -public class AccountController { - - // Injecting properties of IAccountService to use its methods - @Autowired - private IAccountService accountService; - // Injecting properties of ICustomerService to use its methods - @Autowired - private ICustomerService customerService; - // Injecting properties of IBankService to use its methods - @Autowired - private IBankService bankService; - - /* - * description : this method will return a created account and will give - * response in response entity. - */ - @PostMapping("/accountCreate") - public ResponseEntity createAccount(@RequestBody final AccountRequest accountRe) { - Account response = null; - Optional bank; - try { - bank = bankService.getBankDetailsByID(accountRe.getBankId()); - - if (bank.isPresent()) { - Customer cust; - try { - cust = customerService.getCustomerDetails(accountRe.getCustomerId()); - - final Account acc = accountRe.getAccount(); - acc.setBank(bank.get()); - acc.setCustomer(cust); - try { - response = accountService.createAccount(acc); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Account not created", HttpStatus.OK); - } - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bank not present", HttpStatus.OK); - } - } - - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity("id not found", HttpStatus.OK); - } - - } - - /* - * method : getAccount return type : responseEntitiy description : this method - * will return a created account of a given input id - */ - - @GetMapping("/accountDetails/{id}") - public ResponseEntity getAccount(@PathVariable Long id) { - Account acc; - try { - acc = accountService.getAccountDetails(id); - return new ResponseEntity(acc, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("account of given id not found", HttpStatus.OK); - } - - } - - /* - * description : this method will return a success String if money is deposited - * mapping : post - */ - - @PostMapping("/accountDeposit") - public ResponseEntity depositAccount(@RequestBody final AccountTransaction account) { - try { - Long custId = accountService.depositMoney(account); - return new ResponseEntity(custId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - - /* - * description : this method will return a string if amount is withdraw - */ - - @PostMapping("/accountwithdraw") - public ResponseEntity withdrawAccount(@RequestBody final AccountTransaction account) { - try { - Long customerId = accountService.withdrawlMoney(account); - return new ResponseEntity(customerId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/BankController.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/BankController.java deleted file mode 100644 index d3ef533..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.service.IBankService; - -@RestController -@RequestMapping("/bank") -public class BankController { - - @Autowired - private IBankService bankService; - - - /* - * description : this method will return a bank instance - */ - @PostMapping("/bankCreate") - public ResponseEntity createBank(@RequestBody final Bank bank) { - - Bank bank1; - try { - bank1 = bankService.createBank(bank); - return new ResponseEntity(bank1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Bank not Added ", HttpStatus.OK); - } - - } - - /* - * description : this method will return a list of banks - */ - @GetMapping("/getBankDetails") - public ResponseEntity getBankDetails() { - List list; - try { - list = bankService.getBankDetails(); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bankDetailsnotfound", HttpStatus.OK); - } - - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java deleted file mode 100644 index e0d9d2c..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -@RestController -@RequestMapping("/customer") -public class CustomerController { - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - - - /** - * @return the customerService - */ - public ICustomerService getCustomerService() { - return customerService; - } - - /** - * @param customerService the customerService to set - */ - public void setCustomerService(ICustomerService customerService) { - this.customerService = customerService; - } - - /** - * @return the bankService - */ - public IBankService getBankService() { - return bankService; - } - - /** - * @param bankService the bankService to set - */ - public void setBankService(IBankService bankService) { - this.bankService = bankService; - } - - /* description : this method will return a - * created customer - */ - @PostMapping("/customerCreate") - public ResponseEntity createCustomer(@RequestBody final CreateCustomerRequest createCustomerRequest) { - Customer response = null; - Optional bank; - - try { - bank = bankService.getBankDetailsByID(createCustomerRequest.getBankID()); - - if (bank.isPresent()) { - final Customer cust = createCustomerRequest.getCustomer(); - cust.setBank(bank.get()); - - try { - response = customerService.createCustomer(cust); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("faild to create customer", HttpStatus.OK); - } - } - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e1) { - String message = e1.getMessage(); - return new ResponseEntity("unable to fetch bank details by id", HttpStatus.OK); - } - - } - - /* description : this method will return a created customer of - * specified id - */ - @GetMapping("/getCustomerDetails/{id}") - public ResponseEntity getCustomer(@PathVariable final Long id) { - final Customer cust; - try { - cust = customerService.getCustomerDetails(id); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("id not found for customer to get details", HttpStatus.OK); - } - } - - @PutMapping("/{id}/{name}/{userId}") - public ResponseEntity updateCustomer(@PathVariable final Long id,@PathVariable final String name,@PathVariable final String userId) throws CloneNotSupportedException { - final Customer cust; - try { - cust = customerService.updateCustomer(id, name, userId); - System.out.println(">>>>>>>>>>>>>>>>>>>"+cust); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("unable to update data", HttpStatus.OK); - } - } -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java deleted file mode 100644 index f0257c3..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.bank.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateDenominationRequest; -import com.bank.service.IAtmDenoService; -import com.bank.service.IBankDenominationService; -import com.bank.service.IRefServcie; - -@RestController -public class DenominationController { - - @Autowired - private IRefServcie refService; - - @Autowired - private IBankDenominationService bankDenominations; - @Autowired - private IAtmDenoService atmDenominationService; - - - - // this will add denominations to bank and atm - @PostMapping("/addDenominations") - public void addDenomination(@RequestBody CreateDenominationRequest createDenomination) - { - - try { - refService.createDenomination(createDenomination.getList()); - } catch (ManagedException e1) { - - e1.printStackTrace(); - } - try { - bankDenominations.bankDenominationCreate(createDenomination.getList(),createDenomination.getBankId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try { - atmDenominationService.atmDenominationCreate(createDenomination.getList(), createDenomination.getAtmId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java deleted file mode 100644 index 6c017c2..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.TransactionReq; -import com.bank.model.Transaction; -import com.bank.service.ITransactionService; - -@RestController -public class TransactionController { - @Autowired - private ITransactionService transactionService; - - - - // this will return all the statements of account id - @GetMapping("/transactionDetails/{accountId}") - public ResponseEntity retriveTrans(@PathVariable final Long accountId) { - - List list; - try { - list = transactionService.generateTransactionReport( accountId); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity(message, HttpStatus.OK); - } - } - - //this will create statements instance which will be used to tract transactions made by user - - @PostMapping("/transactionCreate") - public ResponseEntity createTransaction(@RequestBody final TransactionReq trans) { - - final Transaction transact =trans.getTransaction(); - final Transaction newtrans; - try { - newtrans = transactionService.createTransaction(transact); - return new ResponseEntity(newtrans, HttpStatus.CREATED); - } catch (ManagedException e) { - // TODO Auto-generated catch block - String msg=e.getMessage(); - return new ResponseEntity(msg, HttpStatus.OK); - } - - - } -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java deleted file mode 100644 index d71f279..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bank.dto; - -import com.bank.model.ATM; - -public class ATMReq { - private Long bankId; - private ATM atm; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - /** - * @param atm the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } -public ATMReq() { - // TODO Auto-generated constructor stub -} -/** - * @param bankId - * @param atm - */ -public ATMReq(Long bankId, ATM atm) { - this.bankId = bankId; - this.atm = atm; -} - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java deleted file mode 100644 index 065159f..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Account; - -public class AccountRequest { - - private long bankId; - private long customerId; - private Account account; - /** - * @return the bankId - */ - public long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the account - */ - public Account getAccount() { - return account; - } - /** - * @param account the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountRequest [bankId=" + bankId + ", customerId=" + customerId + ", account=" + account + "]"; - } - - - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java deleted file mode 100644 index bf9f152..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AccountTransaction { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this. accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java deleted file mode 100644 index 7557450..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AddMoneyReq { - - private Long atmId; - private Long bankId; - private BigDecimal amount; - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java deleted file mode 100644 index 70ea8de..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Customer; - -public class CreateCustomerRequest { - - private Customer customer; - private Long bankID; - - /** - * @return the bankID - */ - public Long getBankID() { - return bankID; - } - /** - * @param bankID the bankID to set - */ - public void setBankID(Long bankID) { - this.bankID = bankID; - } - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - /** - * @param customer the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - /** - * @param customer - * @param bankID - */ - public CreateCustomerRequest(Customer customer, Long bankID) { - super(); - this.customer = customer; - this.bankID = bankID; - } -public CreateCustomerRequest() { - // TODO Auto-generated constructor stub -} -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java deleted file mode 100644 index 50c0153..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; -import java.util.List; - -public class CreateDenominationRequest { - - private List list; - private Long bankId; - private Long atmId; - /** - * @return the list - */ - public List getList() { - return list; - } - /** - * @param list the list to set - */ - public void setList(List list) { - this.list = list; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java deleted file mode 100644 index 427128d..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Transaction; - -public class TransactionReq { - - private Long customerId; - private Long accountId; - private Transaction transaction; - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the transaction - */ - public Transaction getTransaction() { - return transaction; - } - /** - * @param transaction the transaction to set - */ - public void setTransaction(Transaction transaction) { - this.transaction = transaction; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java deleted file mode 100644 index c5af5af..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class WithrawMoneyReq { - private Long accountId; - private BigDecimal amount; - private Long atmId; - private Long customerId; - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/ATM.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/ATM.java deleted file mode 100644 index 419e543..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/ATM.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "atm_info") -@Entity -public class ATM extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "atm_id") - private Long aTMId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "id") - private Long bankId; - - /** - * @return the aTMId - */ - public Long getATMId() { - return aTMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(final Long aTMId) { - this.aTMId = aTMId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - public ATM() { - // TODO Auto-generated constructor stub - } - - - @Override - public String toString() { - return "ATM [ATMId=" + aTMId + ", amount=" + amount + ", bankId=" + bankId + "]"; - } - - /** - * @param aTMId - * @param amount - * @param bankId - */ - public ATM(Long aTMId, BigDecimal amount, Long bankId) { - aTMId = aTMId; - this.amount = amount; - this.bankId = bankId; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java deleted file mode 100644 index d7d7e63..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Ref_ATM_Denm") -@Entity -public class ATMDenomination extends BaseEntity { - @Column(name = "atm_id") - private Long ATMId; - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noofdenomination") - private int noofDenomination; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noofDenomination - */ - public int getNoofDenomination() { - return noofDenomination; - } - - /** - * @param noofDenomination - * the noofDenomination to set - */ - public void setNoofDenomination(int noofDenomination) { - this.noofDenomination = noofDenomination; - } - - public ATMDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param aTMId - * @param denomination - * @param noofDenomination - */ - public ATMDenomination(Long aTMId, BigDecimal denomination, int noofDenomination) { - ATMId = aTMId; - this.denomination = denomination; - this.noofDenomination = noofDenomination; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Account.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Account.java deleted file mode 100644 index 4188d6a..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Account.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Table(name = "account_details") -@Entity -public class Account extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "account_id") - private Long accountId; - @Column(name = "amount") - private BigDecimal amount; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - - public Account() { - - } - - @Override - public String toString() { - return "Account [accountId=" + accountId + ", amount=" + amount + ", customer=" + customer + ", bank=" + bank - + "]"; - } - - /** - * @param accountId - * @param amount - * @param customer - * @param bank - */ - public Account(Long accountId, BigDecimal amount, Customer customer, Bank bank) { - this.accountId = accountId; - this.amount = amount; - this.customer = customer; - this.bank = bank; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/AuditLog.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/AuditLog.java deleted file mode 100644 index 7493632..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/AuditLog.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.model; - -import java.sql.Timestamp; -import java.util.Date; - -public class AuditLog { - - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" + eventDate - + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - /** - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(String eventName, String eventType,Date eventDate, String userId, Object oldValue, - Object newValue) { - super(); - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Bank.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Bank.java deleted file mode 100644 index 495ed86..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -/** - * author Ram Dafale - */ - -@Table(name = "bank_details") -@Entity -public class Bank extends BaseEntity { - - @Id - // @SequenceGenerator(name = "bank_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.AUTO /* , generator = "bank_seq" */) - @Column(name = "id") - private Long bankId; - - @Column(name = "amount") - private BigDecimal amount; - @OneToMany - @JoinColumn(name = "id", referencedColumnName = "id") - List atmList = new ArrayList(); - - public Bank() { - } - - /** - * method name : getBankId() return type : Long decription : it we get all bank - * id - */ - public Long getBankId() { - return bankId; - } - - /** - * method name : setBankId(final Long bankId) method description : it will set - * the bank id - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - /** - * method name : getAmount method description : it will get the total bank - * amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * method name : setAmount method parameters : BigDecimal method description : - * it will set bank amount - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } - - /** - * @param bankId - * @param amount - */ - public Bank(Long bankId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.amount = amount; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java deleted file mode 100644 index a1a0938..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Bank_Denm") -@Entity -public class BankDenomination extends BaseEntity { - - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noOfDenomination") - private int noOfDenomination; - @Column(name = "bank_id") - private Long bankId; - - - - /** - * @return the bankId - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noOfDenomination - */ - public int getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(int noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - public BankDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param bankId - * @param denomination - * @param noOfDenomination - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination) { - - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "BankDenomination [denomination=" + denomination + ", noOfDenomination=" + noOfDenomination + ", bankId=" - + bankId + "]"; - } - - /** - * @param denomination - * @param noOfDenomination - * @param bankId - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination, Long bankId) { - super(); - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((denomination == null) ? 0 : denomination.hashCode()); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BankDenomination other = (BankDenomination) obj; - if (denomination == null) { - if (other.denomination != null) - return false; - } else if (!denomination.equals(other.denomination)) - return false; - return true; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java deleted file mode 100644 index 2b31305..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.model; - -import javax.persistence.MappedSuperclass; - -@MappedSuperclass -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId - * the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Customer.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Customer.java deleted file mode 100644 index 8b08ed4..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Customer.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.bank.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -/** - * author Ram - */ -@Table(name = "customer_details") -@Entity -public class Customer extends BaseEntity implements Cloneable { - - @Id - //@SequenceGenerator(name = "customer_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.AUTO/*, generator = "customer_seq"*/) - @Column(name = "id") - private Long customerId; - @Column(name = "customer_name") - private String customerName; - @Column(name = "pin") - private Long pin; - - // relational mapping of bank to customer - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Customer() { - // TODO Auto-generated constructor stub - } - - /** - * method name : getCustomerId method returnTypr : Long method description : to - * get customer id - */ - public Long getCustomerId() { - return customerId; - } - - /** - * method name : setCustomerId method parameter : Long method description : it - * will set customerId - */ - public void setCustomerId(final Long customerId) { - this.customerId = customerId; - } - - /** - * method Name : getCustomerName method return type : String method description - * : it will get he customer name - */ - public String getCustomerName() { - return customerName; - } - - /** - * method name : setCustomerName method parameter : String method description : - * it will set customerName - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * method Name : getPin method return type : Long method description : it will - * get he pin - */ - public Long getPin() { - return pin; - } - - /** - * method name : setPin method parameter : Long method description : it will set - * pin - */ - public void setPin(final Long pin) { - this.pin = pin; - } - - /** - * method name : setBank method parameter : Bank method description : it will - * set Bank - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", pin=" + pin + ", bank=" - + bank + "]"; - } - - /** - * @param customerId - * @param customerName - * @param pin - */ - public Customer(Long customerId, String customerName, Long pin) { - super(); - this.customerId = customerId; - this.customerName = customerName; - this.pin = pin; - } - - public Customer(String string, long l) { - - } - @Override - public Customer clone()throws CloneNotSupportedException{ - return (Customer)super.clone(); - } - public Customer( String customerName) { - super(); - - this.customerName = customerName; - - } - - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/RefMoney.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/RefMoney.java deleted file mode 100644 index 3d5d6d2..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/RefMoney.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -@Table(name="ref_money") -@Entity -public class RefMoney extends BaseEntity { - @Id - private BigDecimal denomination; - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } -public RefMoney() { - // TODO Auto-generated constructor stub -} -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Transaction.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Transaction.java deleted file mode 100644 index 66e7bd9..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/model/Transaction.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.springframework.stereotype.Component; - -@Table(name = "transaction_details") -@Entity -@Component -public class Transaction extends BaseEntity{ - @Id - - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "transaction_id") - private Long transactionId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "transaction_type") - private String transactionType; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - @ManyToOne(targetEntity = Account.class) - private Account account; - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(final Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customerId - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(final String transactionType) { - this.transactionType = transactionType; - } - - public Transaction() { - // TODO Auto-generated constructor stub - } - - /** - * @param customerId - * @param accountId - * @param amount - * @param transactionType - */ - public Transaction(BigDecimal amount, String transactionType) { - super(); - /* - * this.customerId = customerId; this.accountId = accountId; - */ - this.amount = amount; - this.transactionType = transactionType; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java deleted file mode 100644 index c3c75f0..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Account; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMDenoRepository extends JpaRepository { - - - Optional findBydenomination(BigDecimal myValue); - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java deleted file mode 100644 index 6801567..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATM; -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMRepository extends JpaRepository{ - - Optional findByaTMId(Long aTMId); - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java deleted file mode 100644 index 927e0be..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface AccountRepository extends JpaRepository{ - - - - Optional findByaccountId(Long accountId); - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java deleted file mode 100644 index 68dc6ea..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import org.springframework.stereotype.Repository; - -import com.bank.model.ATM; -import com.bank.model.Bank; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -@Repository -public interface BankRepository extends JpaRepository { - - - Optional findBybankId(Long bankId); -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java deleted file mode 100644 index 7e47033..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Customer; -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface CustomerRepository extends JpaRepository { - - Optional findOneBycustomerName(String CustomerName); - - Optional findBycustomerId(Long customerId); -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java deleted file mode 100644 index 8ae3342..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.BankDenomination; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface DenominationRepository extends JpaRepository{ - - - Optional findBydenomination(BigDecimal myValue); - - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java deleted file mode 100644 index 9a71ec7..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.RefMoney; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface RefMoneyRepository extends JpaRepository { - - - - Optional findBydenomination(BigDecimal denomination); - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java deleted file mode 100644 index ed3ce90..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Account; -import com.bank.model.Transaction; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface TransactionRepository extends JpaRepository{ - - - /* - * this query will find trasanction where account id is associated - */ - @Query(value="select * from transaction_details where account_account_id=?1",nativeQuery=true) - List findAllByAccountId(Long accountId); - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java deleted file mode 100644 index 2862798..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("atmService") -public class ATMServiceImpl implements IATMService { - - final Logger LOGGER = LoggerFactory.getLogger(ATMServiceImpl.class); - -//injectiong all required properties - @Autowired - private ATMRepository atmRepo; - @Autowired - private IBankService bankService; - @Autowired - private IAccountService accountService; - @Autowired - private ICustomerService customerService; - @Autowired - private TransactionRepository trans; - @Autowired - private IAtmDenoService atmDeno; - - - //will create new instance for atm - @Override - public ATM createATM(final ATM atm) throws ManagedException { - // TODO Auto-generated method stub - final ATM atm1 = atmRepo.save(atm); - if (atm1 != null) { - LOGGER.info("atm is added"); - return atm1; - } else { - LOGGER.error("no atm is added"); - throw new ManagedException("No such atm is created!!"); - } - } - - // will add money from bank to atm - @Transactional - @Override - public String addMoneyFromBank(final AddMoneyReq atmreq) throws ManagedException { - //method needs to be change - final Optional atm = atmRepo.findByaTMId(atmreq.getAtmId()); - if (atm.isPresent()) { - ATM atm1 = atm.get(); - final Long bankID = atmreq.getBankId(); - final Long bankId = atm1.getBankId(); - if (bankID.equals(bankId)) { - final BigDecimal amount = atmreq.getAmount(); - final Optional bankopt=bankService.getBankDetailsByID(atmreq.getBankId()); - final Bank bank=bankopt.get(); - BigDecimal bankAmount = bank.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(bankAmount) == -1) { - BigDecimal atmAmount = atm1.getAmount(); - atmAmount = atmAmount.add(amount); - atm1.setAmount(atmAmount); - bankAmount = bankAmount.subtract(amount); - bank.setAmount(bankAmount); - bankService.createBank(bank); - atmRepo.save(atm1); - atmDeno.atmDenominationDeposit(atmreq.getAmount(), atmreq.getAtmId()); - LOGGER.info("amount is added to your account"); - return "amount added"; - - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less than you want"); - } - } - else - { - LOGGER.error("amount is negative"); - throw new ManagedException("amount connot be negative"); - } - - } - else - { - LOGGER.error("no bank id exist"); - throw new ManagedException("no such bank id exist"); - } - } - else - { - LOGGER.error("no atm id exist"); - throw new ManagedException("no such atm id exist"); - } - - } - - // will withdraws monet atm - - @Transactional - @Override - public Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException { - final Optional atm = atmRepo.findByaTMId(withdraw.getAtmId()); - if (atm.isPresent()) { - final ATM atm1 = atm.get(); - BigDecimal amount = atm1.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(withdraw.getAmount()) == 1) { - final Account account =accountService.getAccountDetails(withdraw.getAccountId()); - BigDecimal accountAmount = account.getAmount(); - if (accountAmount.compareTo(withdraw.getAmount()) == 1) { - amount = amount.subtract(withdraw.getAmount()); - atm1.setAmount(amount); - accountAmount = accountAmount.subtract(withdraw.getAmount()); - account.setAmount(accountAmount); - accountService.createAccount(account); - atmRepo.save(atm1); - Transaction transaction = new Transaction(); - transaction.setAccount(account); - transaction.setAmount(account.getAmount()); - final Customer customer = customerService.getCustomerDetails(withdraw.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.save(transaction); - LOGGER.info("amount is deducted"); - return withdraw.getAccountId(); - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less thsn amount you want to withdraw"); - } - } - else - { LOGGER.error("atm amount is less"); - throw new ManagedException("atm does not have this much of amount"); - } - } - else - { LOGGER.error("-ve amount not possible "); - throw new ManagedException("negative amount cannot possible"); - } - } - else - { LOGGER.error("no atm id exist"); - throw new ManagedException("no such id of atm exist"); - } - } -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java deleted file mode 100644 index 232f9c2..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("accountService") -public class AccountServiceImpl implements IAccountService { - final Logger LOGGER = LoggerFactory.getLogger(AccountServiceImpl.class); - @Autowired - private AccountRepository accountRepository; - @Autowired - private ITransactionService trans; - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - @Autowired - private IBankDenominationService bankDenoService; - private BigDecimal balance; - - - // this will create account instance for customer - @Override - public Account createAccount(final Account account) throws ManagedException { - final Account acc = accountRepository.save(account); - if (acc != null) { - LOGGER.info("account created"); - return acc; - } else { - LOGGER.error("no account is created"); - throw new ManagedException("No account is created"); - } - } - //this will credit money to account - @Transactional - @Override - public Long depositMoney(final AccountTransaction account) throws ManagedException { - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - final Optional acc1 = accountRepository.findByaccountId(account.getAccountId()); - if (acc1.isPresent()) { - - final Account acc = acc1.get(); - balance = acc.getAmount(); - balance = balance.add(account.getAmount()); - acc.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - bankDenoService.bankDenominationDeposit(account.getAmount(),account.getBankId()); - - }else - { LOGGER.error("no bank id present"); - throw new ManagedException("no bank is present of given id"); - } - Transaction transaction = new Transaction(); - transaction.setAccount(acc); - transaction.setAmount(acc.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("credit"); - trans.createTransaction(transaction); - LOGGER.info("AMOUNT IS ADDED"); - return account.getCustomerId(); - } else { - LOGGER.error("no amount is deposited"); - throw new ManagedException("zero amount deposited"); - } - } - else - { - LOGGER.error("-ve amount is not possible"); - throw new ManagedException("negative amount is not possible"); - } - } - - //this will debit money from account - @Transactional - @Override - public Long withdrawlMoney(final AccountTransaction account) throws ManagedException { - // TODO Auto-generated method stub - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - Optional acc1 = accountRepository.findByaccountId(account.getAccountId()); - if (acc1.isPresent()) { - final Account account1 = acc1.get(); ; - balance = account1.getAmount(); - balance = balance.subtract(account.getAmount()); - account1.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - bankDenoService.bankDenominationWithdraw(account.getAmount(), account.getBankId()); - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - - Transaction transaction=new Transaction(); - transaction.setAccount(account1); - transaction.setAmount(account1.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - if(customer!=null) - { - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.createTransaction(transaction); - LOGGER.info("amount is deducted"); - return account.getCustomerId(); - } - else - { LOGGER.error("no customer exist"); - throw new ManagedException("No customer of such occunct exsit"); - } - }else - {LOGGER.error("no account exist"); - throw new ManagedException("No such account exist"); - } - - } else { - LOGGER.error("not enough amount to withdraw"); - throw new ManagedException("No amount withdraw"); - } - } - else - { - LOGGER.error("-ve value is not posssible"); - throw new ManagedException("negative amount is not possible"); - } - } - - - //It will give account details of perticular Id - @Override - public Account getAccountDetails(final Long id) throws ManagedException { - // TODO Auto-generated method stub - Account account = accountRepository.findByaccountId(id).get(); - if (account != null) { - LOGGER.info("account retrived"); - return account; - } else { - LOGGER.error("no such id exist"); - throw new ManagedException("no such element found"); - } - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java deleted file mode 100644 index ed877ef..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.ATMDenoRepository; -import com.bank.repository.ATMRepository; -import com.bank.repository.DenominationRepository; - -@Service -public class AtmDenoServiceImpl implements IAtmDenoService{ - - - @Autowired - private IRefServcie refService; - - @Autowired - private DenominationHelper denominationHelper; - - @Autowired - private ATMDenoRepository atmdenoRepository; - @Autowired - private ATMRepository atmRepo; - @Autowired - private DenominationRepository bankDeno; - @Autowired - IBankService bankService; - - - // this will create denominations for atm - @Override - public void atmDenominationCreate(List list, Long atmId) throws ManagedException { - - for(BigDecimal denom: list ) - { - final ATMDenomination first = new ATMDenomination(atmId,new BigDecimal(denom.intValue()), 0); - atmdenoRepository.save(first); - - } - } - - //this method provide logic (when you add money to atm ) for denominations adjustments - @Override - public void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException { - // TODO Auto-generated method stub - - List newList=refService.returnAll(); - - List list = new ArrayList<>(); - for(RefMoney deno:newList) - { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - ATMDenomination atmDeno=new ATMDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count=pair.getValue(); - System.out.println("key value"+myValue); - - //changes made to findById - Optional deno=atmdenoRepository.findBydenomination(myValue); - ATMDenomination denomination=deno.get(); - System.out.println("denomination"+denomination); - System.out.println("count value"+count); - ATM atm=atmRepo.findByaTMId(atmId).get(); - //changes made to findById - BankDenomination bank=bankDeno.findBydenomination(myValue).get(); - int newNum=bank.getNoOfDenomination()-count; - bank.setNoOfDenomination(newNum); - bankDeno.save(bank); - denomination.setATMId(atmId); - denomination.setNoofDenomination(denomination.getNoofDenomination()+count); - - atmdenoRepository.save(denomination); - } - } - } - - - - diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java deleted file mode 100644 index 0301a57..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -/*package com.bank.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.bank.model.AuditLog; - -@Service -public class AuditServiceImpl { - - @Autowired - RestTemplate restTemplate; - - @Bean - @LoadBalanced - RestTemplate restTemplate() { - return new RestTemplate(); - } - - // generate audit log - public AuditLog generateAudit(final AuditLog audit) { - - final String uri = "http://mongo-client/createAudit"; - System.out.println("audit obnject " + audit); - final AuditLog audii = restTemplate.postForObject(uri, audit, AuditLog.class); - return audii; - - } - - - * @Autowired private DiscoveryClient discoveryClient; - * - * - * public AuditLog generateAudit(AuditLog auditData) { List - * instance=discoveryClient.getInstances("MONGO-CLIENT"); ServiceInstance - * serviceInstance=instance.get(0); RestTemplate restTemplate = new - * RestTemplate(); - * - * String url =serviceInstance.getUri().toString(); url=url+"/create"; AuditLog - * audit = auditData; System.out.println(audit);; AuditLog resultOfOperation = - * restTemplate.postForObject(url, audit, AuditLog.class); return - * resultOfOperation; } - - -} -*/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index a77ef1a..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.DenominationRepository; - -@Service -public class BankDenominationServiceImpl implements IBankDenominationService { - @Autowired - private DenominationRepository denominationRepo; - @Autowired - private IBankService bankServcie; - @Autowired - private DenominationHelper denominationHelper; - @Autowired - private IRefServcie refService; - - - //create denomination for bank - @Override - public void bankDenominationCreate(List list, Long bankId) throws ManagedException { - - // to get values from database - for (BigDecimal denom : list) { - final BankDenomination first = new BankDenomination(new BigDecimal(denom.intValue()), 0, bankId); - denominationRepo.save(first); - - } - - } - - - //this will provide logic: when you withdraws money denominations will get adjusted accordingly - - @Override - public void bankDenominationWithdraw(BigDecimal amount, Long bankId) throws ManagedException { - List newList = refService.returnAll(); - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getcountDenomination(amount, list); - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - System.out.println("key value" + myValue); - //chnages to be made after downgrading spring boot version - Optional deno = denominationRepo.findBydenomination(myValue); - BankDenomination denomination = deno.get(); - System.out.println("denomination" + denomination); - System.out.println("count value" + count); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() - count); - denominationRepo.save(denomination); - - } - - } - - @Override - public void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException { - - List newList = refService.returnAll(); - - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - BankDenomination bankDeno = new BankDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - - Optional deno = denominationRepo.findBydenomination(myValue); - BankDenomination denomination = deno.get(); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() + count); - denominationRepo.save(denomination); - } - - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java deleted file mode 100644 index ae1f2fe..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.repository.BankRepository; - -@Service("bankService") -public class BankServiceImpl implements IBankService { - - final Logger LOGGER = LoggerFactory.getLogger(BankServiceImpl.class); - @Autowired - private BankRepository bankRepository; - @Autowired - private IBankDenominationService bankDenoService; - - - // create new bank instance - @Override - public Bank createBank(final Bank bank) throws ManagedException { - final Bank bank1 = bankRepository.save(bank); - if (bank1 != null) { - - return bank1; - } else { - LOGGER.error("No bank is added"); - throw new ManagedException("No Bank is Added"); - } - } - - - @Override - public List getBankDetails() throws ManagedException { - final List list = bankRepository.findAll(); - if (list.isEmpty()) { - LOGGER.error("No banks found"); - throw new ManagedException("No bank found"); - } else { - return list; - } - } - - @Override - public Optional getBankDetailsByID(final long ID) throws ManagedException { - // changes made in repo - final Optional bank = bankRepository.findBybankId(ID); - if (bank.isPresent()) { - return bank; - } else { - LOGGER.error("no bank of such id exist"); - throw new ManagedException("No such bank found"); - } - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java deleted file mode 100644 index b38547f..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.service; - - - -import java.util.Calendar; -import java.util.Date; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.AuditLog; -import com.bank.model.Customer; -import com.bank.repository.CustomerRepository; - -enum EventName { - CUSTOMER, ACCOUNT, ATM, BANK -} - -enum EventType { - CREATED, UPDATED -} - -@Service("customerService") -public class CustomerServiceImpl implements ICustomerService, Cloneable { - final static Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class); - @Autowired - private CustomerRepository customerRepository; - /*@Autowired - AuditServiceImpl auditService;*/ - @Autowired - IFeignClient fclient; - - @Override - public Customer createCustomer(final Customer customer) throws ManagedException { - final Customer custom = customerRepository.save(customer); - if (custom != null) { - return custom; - } else { - LOGGER.error("No customer is added"); - throw new ManagedException("no customer is created"); - } - } - - - @Override - public Customer getCustomerDetails(final Long id) throws ManagedException { - - final Customer customer = customerRepository.findBycustomerId(id).get(); - if (customer != null) { - return customer; - } else { - LOGGER.info("No customer of given id is exist"); - throw new ManagedException("no customer of such id exist"); - } - - } - - @Override - public Customer updateCustomer(final Long id, final String name, final String userId) - throws ManagedException, CloneNotSupportedException { - - final Customer customer = customerRepository.findBycustomerId(id).get(); - - Customer oldcustmer = customer.clone(); - - if (customer != null) { - customer.setCustomerName(name); - customer.setUserId(userId); - Customer cust = customerRepository.save(customer); - Calendar cal=Calendar.getInstance(); - Date time=cal.getTime(); - AuditLog audit = new AuditLog(EventName.CUSTOMER.toString(), EventType.UPDATED.toString(), time, - cust.getUserId(), oldcustmer, cust); - - //AuditLog ob = auditService.generateAudit(audit); - - AuditLog ob = fclient.create(audit); - - - return cust; - } else { - LOGGER.info("Customer not present as Id not present"); - throw new ManagedException("customer data not updated"); - } - - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java deleted file mode 100644 index 8621dc3..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -@Component -public class DenominationHelper { - - public Map getDenominatioValues(final BigDecimal amount , final List list) throws ManagedException { - final Map newMap=new HashMap(); - Random random = new Random(); - BigDecimal remainder = amount; - if(amount.intValue()>=0) - { - for(int i=0;i<=list.size();i++) - { - Integer randomIndex = random.nextInt(list.size()); - BigDecimal randomElement = list.get(randomIndex); - if ( !(randomElement.compareTo(remainder) >0) ) { - Integer count=remainder.divide(randomElement).intValue(); - remainder= remainder.remainder( randomElement); - - newMap.put(randomElement,count); - - if (remainder.compareTo(BigDecimal.ZERO) ==0) { - break; - } - } - list.remove(randomIndex); - - } - if (remainder.compareTo(BigDecimal.ZERO) !=0) { - System.out.println("cant Proceed "); - return null ; - } - - } - return newMap; - } - - - - public Map getcountDenomination(BigDecimal amount, List list) throws ManagedException - { - Map newMap = new HashMap(); - - List selectedList = new ArrayList(); - for (BigDecimal denom : list) { - if (denom.compareTo(amount) <= 0) { - selectedList.add(denom); - } else { - throw new ManagedException("selected list is empty"); - } - } - for (int i = 0; i <= selectedList.size(); i++) { - BigDecimal maxDen = Collections.max(selectedList); - Integer count = amount.divide(maxDen).intValue(); - amount = amount.remainder(maxDen); - newMap.put(maxDen, count); - - if (amount.compareTo(BigDecimal.ZERO) == 0) { - break; - } - selectedList.remove(maxDen); - } - // get index of particular element - if (amount.compareTo(BigDecimal.ZERO) != 0) { - throw new ManagedException("amount cannot be withdrawn"); - } - return newMap; - } -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IATMService.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IATMService.java deleted file mode 100644 index 91f56b9..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IATMService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; - -/** - * @author ram - */ -public interface IATMService { - /** - * method name : createATM return type : ATM object parameter :object of ATM - * description : this method will return a atm which is created - */ - ATM createATM(final ATM atm) throws ManagedException; - - /** - * method name : addMoneyFromBank return type : String parameter :object of - * ATMMoneyReq description : this method will return a string if money is added - * to atm - */ - String addMoneyFromBank(final AddMoneyReq atm) throws ManagedException; - - /** - * method name : withrawMoney return type : String parameter :object of - * WithdrawMoneyReq description : this method will return a string if - * successfully money withraw - */ - Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IAccountService.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IAccountService.java deleted file mode 100644 index d207310..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IAccountService.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; - -public interface IAccountService { - /** - * method name : createAccount return type : Account object parameter :object of - * Account class description : this method will return a account which is - * created - */ - Account createAccount(final Account account) throws ManagedException; - - /** - * method name : depositMoney return type : String parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully amount is added and add to transaction list - */ - Long depositMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : withdrawlMoney return type : String object parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully withdraw and add to transaction list - */ - Long withdrawlMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : getAccountDetails return type : Account object parameter :Long - * id description : this method will return a account which is created of given - * id - */ - Account getAccountDetails(final Long id) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java deleted file mode 100644 index 47657d8..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java +++ /dev/null @@ -1,15 +0,0 @@ - package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; - -public interface IAtmDenoService { - - - - - void atmDenominationCreate(List list,Long atmId)throws ManagedException; - void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException; -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java deleted file mode 100644 index 124f9c5..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -import com.bank.Exception.ManagedException; - -public interface IBankDenominationService { - - - void bankDenominationWithdraw(BigDecimal amount,Long bankId) throws ManagedException; - void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException ; - void bankDenominationCreate(List list,Long bankId)throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IBankService.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IBankService.java deleted file mode 100644 index a464c98..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IBankService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; - -public interface IBankService { - /* - * description : this method will return a bank which is created - */ - Bank createBank(final Bank bank) throws ManagedException; - - /* description : this method will return a list of all banks - */ - List getBankDetails() throws ManagedException; - - /* - * description : this method will return a bank of given id - */ - Optional getBankDetailsByID(final long Id) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java deleted file mode 100644 index 8256c10..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Customer; - -/** - * @author ram - * - */ -public interface ICustomerService { - /** - * description : this method will return a customer which is - * created - */ - Customer createCustomer(final Customer customer) throws ManagedException; - - /** - * description : this method will return a customer of specified id - */ - Customer getCustomerDetails(final Long id) throws ManagedException; - /* - * description : this method will return a customer of specified id with updation - * @throws CloneNotSupportedException ,ManagedException - */ - Customer updateCustomer(final Long id,final String name, final String userId ) throws ManagedException, CloneNotSupportedException; -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java deleted file mode 100644 index ba06a96..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IFeignClient.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.bank.service; - -import org.springframework.cloud.netflix.feign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import com.bank.model.AuditLog; - -/** - * @author trainee - * - */ -@FeignClient("bank-zuul-service") -public interface IFeignClient { - - @PostMapping(path = "/auditLog") - AuditLog create(final AuditLog audit); - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java deleted file mode 100644 index 85867ad..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -/** - * @author ram - * - */ -public interface IRefServcie { - - /** - * - * @param denomination - * @return - * @throws BankException - */ - - /** - * - * @return - * @throws ManagedException - */ - List returnAll() throws ManagedException; - void createDenomination(List list) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java deleted file mode 100644 index 9e8c997..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; - -/** - * @author ram - * - */ -public interface ITransactionService { - /** - * method name : createTransaction return type : Transaction object parameter - * :Transaction description : this method will return a transaction which is - * created - */ - Transaction createTransaction(final Transaction trans) throws ManagedException; - - /** - * method name : generateTransactionReport return type : List - * Object description : this method will return a list which of transactions - */ - List generateTransactionReport(Long accountId) throws ManagedException; - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java deleted file mode 100644 index bc21cee..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; -import com.bank.repository.RefMoneyRepository; -@Service -public class RefServcieImpl implements IRefServcie { - -@Autowired -private RefMoneyRepository refRepo; - @Override - public void createDenomination(List list) throws ManagedException{ - for(BigDecimal denomination: list ) - { - //changes to be made after version chnage - if(!refRepo.findBydenomination(denomination).isPresent()) - { - RefMoney refMoney=new RefMoney(); - refMoney.setDenomination(denomination); - refRepo.save(refMoney); - //return true; - } - else - { - throw new ManagedException("Denomination already exist!!!!"); - } - } - } - - @Override - public List returnAll() throws ManagedException { - - List list=refRepo.findAll(); - if(list.isEmpty()) - { - throw new ManagedException("no denomination found"); - } - else - { - return list; - } - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 213e1ea..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.bank.service; - -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; -import com.bank.repository.TransactionRepository; -@Service -public class TransactionServiceImpl implements ITransactionService{ - final Logger LOGGER = LoggerFactory.getLogger(TransactionServiceImpl.class); - @Autowired - private TransactionRepository transact; - - @Override - public Transaction createTransaction(final Transaction trans) throws ManagedException { - - final Transaction newtransaction =transact.save(trans); - if(newtransaction!=null) - { - return newtransaction; - } - else - { - throw new ManagedException("no transaction has been created"); - } - } - - @Override - public List generateTransactionReport(Long accountId) throws ManagedException { - // TODO Auto-generated method stub - System.out.println(">>>>>>>>"+accountId); - List transopt=transact.findAllByAccountId(accountId); - System.out.println(">>>>>>>>"+transopt); - - return transopt; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/resources/application.properties b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/resources/application.properties deleted file mode 100644 index 10d6c4c..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/resources/application.properties +++ /dev/null @@ -1,14 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/bankapp?useSSL=false -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true - -#Mongo -eureka.client.service-url.defaultZone=http://localhost:8762/eureka - - - - - diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/resources/bootstrap.properties b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/resources/bootstrap.properties deleted file mode 100644 index 39ea1a9..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/main/resources/bootstrap.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=bank-client \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java deleted file mode 100644 index c0e0570..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java +++ /dev/null @@ -1,227 +0,0 @@ -/*package com.bank.testcases; - - - - - - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Optional; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -import com.bank.Exception.ManagedException; -import com.bank.controller.CustomerController; -import com.bank.dto.ATMReq; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.service.ATMServiceImpl; -import com.bank.service.AccountServiceImpl; -import com.bank.service.BankServiceImpl; -import com.bank.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -@SpringBootConfiguration -@ComponentScan("application.properties") -public class AllTestCases { - - @Autowired - CustomerRepository customerRepository; - - @Autowired - CustomerServiceImpl customerServiceImpl; - - @Autowired - BankRepository bankRepository; - - @Autowired - BankServiceImpl bankServiceImpl; - - @Autowired - AccountRepository accountRepository; - - @Autowired - AccountServiceImpl accountServiceImpl; - - @Autowired - ATMRepository atmRepository; - - @Autowired - ATMServiceImpl atmServiceImpl; - - - @Test - public void createBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - when(bankRepository.save(bank)).thenReturn(bank); - // System.out.println(bank); - assertThat(bankServiceImpl.createBank(bank), is(notNullValue())); - } - - @Test - public void testAddBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - bankServiceImpl.createBank(bank); - - List departments = bankServiceImpl.getBankDetails(); - Assert.assertEquals(1, departments.size()); - } - - @Test - public void testAddCustomer() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - List employees = (List) customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(1, employees.size()); - } - - - @Test - public void testAddCustomerName() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getCustomerName(), employees.getCustomerName()); - } - RestTemplate restTemplate = new RestTemplate(); - @Autowired - CustomerController customerController; - - - - @Test - public void customerCreateRestTemplateTest() { - Customer customer = new Customer(); - customer.setCustomerName("Lokesh"); - customer.setPin(442001L); - - final String uri = "http://localhost:8080/customer/createCustomer"; - Optional ob = bankRepository.findById(1L); - Bank obj = ob.get(); - - CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest(customer,1L); - String result = restTemplate.postForObject(uri, createCustomerRequest, String.class); - - //System.out.println(result); - assertEquals(result, customerController.createCustomer(createCustomerRequest)); - } - - - - @Test - public void viewCustByRestTemplateTest() { - - final String uri = "http://localhost:8080/getCustomer"; - - RestTemplate restTemplate = new RestTemplate(); - String result = restTemplate.getForObject(uri, String.class); - System.out.println(result); - assertEquals(result, customerController.getCustomer(1L)); - } - - - - @Test - public void testAddCustomerpin() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getPin(), employees.getPin()); - } - - - @Test - public void testAddAccount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - List information = (List) accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(1, information.size()); - } - - @Test - public void testAddAccountAmount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAmount(), information.getAmount()); - } - - @Test - public void testAddAccountId() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAccountId(), information.getAccountId()); - } - - - @Test - public void createAtm() throws ManagedException { - Bank bank = new Bank(1L,new BigDecimal(1200)); - - Optional bnk = Optional.of(bank); - - ATM atm = new ATM(1L,new BigDecimal(5000), 1L); - - //ATMReq req = new ATMReq(1L,atm); - - - when(bankRepository.findById(Mockito.any(Long.class))).thenReturn(bnk); - when(atmRepository.save(atm)).thenReturn(atm); - assertThat(atmServiceImpl.createATM(atm), is(notNullValue())); - - } - - -}*/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.classpath b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.classpath deleted file mode 100644 index 9fc2de7..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.classpath +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.project b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.project deleted file mode 100644 index 4b7efff..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - zuul-service - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - org.springframework.ide.eclipse.boot.validation.springbootbuilder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.eclipse.jdt.core.prefs b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 13b3428..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,13 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.eclipse.m2e.core.prefs b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.springframework.ide.eclipse.prefs b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.springframework.ide.eclipse.prefs deleted file mode 100644 index a12794d..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/.settings/org.springframework.ide.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -boot.validation.initialized=true -eclipse.preferences.version=1 diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/pom.xml b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/pom.xml deleted file mode 100644 index 509de3f..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 4.0.0 - - com.javainuse - employee-zuul-service - 0.0.1-SNAPSHOT - jar - - SpringBootHelloWorld - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.cloud - spring-cloud-starter-zuul - - - - org.springframework.cloud - spring-cloud-starter-eureka - - - - - - - - org.springframework.cloud - spring-cloud-dependencies - Camden.SR6 - pom - import - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/SpringBootHelloWorldApplication.java b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/SpringBootHelloWorldApplication.java deleted file mode 100644 index 5e3b8f9..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/SpringBootHelloWorldApplication.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.javainuse; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; -import org.springframework.cloud.netflix.zuul.EnableZuulProxy; -import org.springframework.context.annotation.Bean; - -import com.javainuse.filter.ErrorFilter; -import com.javainuse.filter.PostFilter; -import com.javainuse.filter.PreFilter; -import com.javainuse.filter.RouteFilter; - -@SpringBootApplication -@EnableDiscoveryClient -@EnableZuulProxy -public class SpringBootHelloWorldApplication { - - public static void main(String[] args) { - SpringApplication.run(SpringBootHelloWorldApplication.class, args); - } - - @Bean - public PreFilter preFilter() { - return new PreFilter(); - } - - @Bean - public PostFilter postFilter() { - return new PostFilter(); - } - - @Bean - public ErrorFilter errorFilter() { - return new ErrorFilter(); - } - - @Bean - public RouteFilter routeFilter() { - return new RouteFilter(); - } -} \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/ErrorFilter.java b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/ErrorFilter.java deleted file mode 100644 index afd9438..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/ErrorFilter.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.javainuse.filter; - -import com.netflix.zuul.ZuulFilter; - -public class ErrorFilter extends ZuulFilter { - - @Override - public String filterType() { - return "error"; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - System.out.println("Using Route Filter"); - - return null; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/PostFilter.java b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/PostFilter.java deleted file mode 100644 index f796421..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/PostFilter.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.javainuse.filter; - -import com.netflix.zuul.ZuulFilter; - -public class PostFilter extends ZuulFilter { - - @Override - public String filterType() { - return "post"; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - System.out.println("Using Post Filter"); - - return null; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/PreFilter.java b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/PreFilter.java deleted file mode 100644 index 234a788..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/PreFilter.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.javainuse.filter; - -import javax.servlet.http.HttpServletRequest; - -import com.netflix.zuul.ZuulFilter; -import com.netflix.zuul.context.RequestContext; - -public class PreFilter extends ZuulFilter { - - @Override - public String filterType() { - return "pre"; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - RequestContext ctx = RequestContext.getCurrentContext(); - HttpServletRequest request = ctx.getRequest(); - - System.out.println( - "Request Method : " + request.getMethod() + " Request URL : " + request.getRequestURL().toString()); - - return null; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/RouteFilter.java b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/RouteFilter.java deleted file mode 100644 index a10114e..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/java/com/javainuse/filter/RouteFilter.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.javainuse.filter; - -import com.netflix.zuul.ZuulFilter; - -public class RouteFilter extends ZuulFilter { - - @Override - public String filterType() { - return "route"; - } - - @Override - public int filterOrder() { - return 0; - } - - @Override - public boolean shouldFilter() { - return true; - } - - @Override - public Object run() { - System.out.println("Using Route Filter"); - - return null; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/resources/application.properties b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/resources/application.properties deleted file mode 100644 index 1186439..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -#zuul.routes.producer.url=http://localhost:8082 -#zuul.routes.auditLog.service-id=mongo-client - - -#zuul.routes.auditLog.url=http://localhost:8082 - - -zuul.routes.auditLog.serviceId :mongo-client - -eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka -server.port=8079 \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/resources/bootstrap.properties b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/resources/bootstrap.properties deleted file mode 100644 index 0d4a877..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/src/main/resources/bootstrap.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=bank-zuul-service \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/MANIFEST.MF b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index 356f13a..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Implementation-Title: SpringBootHelloWorld -Implementation-Version: 0.0.1-SNAPSHOT -Built-By: trainee -Implementation-Vendor-Id: com.javainuse -Build-Jdk: 1.8.0_171 -Implementation-URL: http://projects.spring.io/spring-boot/employee-zuu - l-service/ -Created-By: Maven Integration for Eclipse -Implementation-Vendor: Pivotal Software, Inc. - diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/employee-zuul-service/pom.properties b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/employee-zuul-service/pom.properties deleted file mode 100644 index 8b93bad..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/employee-zuul-service/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Tue May 29 14:50:55 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.javainuse -m2e.projectName=zuul-service -m2e.projectLocation=D\:\\training\\employee-zuul-service -artifactId=employee-zuul-service diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/employee-zuul-service/pom.xml b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/employee-zuul-service/pom.xml deleted file mode 100644 index 509de3f..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/META-INF/maven/com.javainuse/employee-zuul-service/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 4.0.0 - - com.javainuse - employee-zuul-service - 0.0.1-SNAPSHOT - jar - - SpringBootHelloWorld - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.cloud - spring-cloud-starter-zuul - - - - org.springframework.cloud - spring-cloud-starter-eureka - - - - - - - - org.springframework.cloud - spring-cloud-dependencies - Camden.SR6 - pom - import - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/application.properties b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/application.properties deleted file mode 100644 index 1186439..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -#zuul.routes.producer.url=http://localhost:8082 -#zuul.routes.auditLog.service-id=mongo-client - - -#zuul.routes.auditLog.url=http://localhost:8082 - - -zuul.routes.auditLog.serviceId :mongo-client - -eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka -server.port=8079 \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/bootstrap.properties b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/bootstrap.properties deleted file mode 100644 index 0d4a877..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/bootstrap.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=bank-zuul-service \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/SpringBootHelloWorldApplication.class b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/SpringBootHelloWorldApplication.class deleted file mode 100644 index 1c93ae2cc234f6cd1e29e32ebff8b875b0888efb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1609 zcmb7^TTc@~6vzL=t#m;^5EMn^CbmTwZ!sn{B!U_r8YN&#)TixsS_ii?&2$#QPo+;7 zP5c0UDC60sm!;X(__A~R&+lC3oc;ah$1ebn@Gyk|hD}e`_>p_;N)dln9RX?#5X#y?Iic)?{`$hzuSu+lR4Ok zl5?N~H;^L0?>o-c*6yeu1@ zJ{IPbzffUuK5wmeqjQ2h=>t*1R(yHFzXXBb1iYu|p3x_#d3reNA^P6{BQ&F*0ew@n z;xsZEhjV8b{YH}kI870#UB_rXelDQ#60Ophz-06CV^W8gN2gitJEjgh_Z>O`b#4l? zF~%t7aFzBMu3?@O*J&O)a)ZXunFlT2Pb|DU!{S%ki~BQwfpzW=RV|kKvzCdq+Ra)_ vWUb+Lf7Uv>p4zL{=8L{;UmRZFaLV39JEZMVa7H#wO??@6q~xlrj7TiOQ4l diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/ErrorFilter.class b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/ErrorFilter.class deleted file mode 100644 index aef35f877a6d98463aa1c34945d778732c6eb6fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmaixT~8B16o%i^E!}omp|%tdR0@6-1I~>XCN=Dl}4y zH(JN~?Rf8^Ojx#6ku(RP`YgVrX(;wNWCeuEOBE^eir{qC_Xy?J@lbkjQ1dZ`3SqXV zBKbZY^`+hk`k^E=dhs9#_X4eKo*$OYkxB?_z5iM261>dl&gluO&2`p$b_5Xy(V^Hj zT1AK5DsB^|q#cAXot1Ctq2!Ehz9aa_QJjXuUqkTWK40lHniSmXAIpL1)^G>QE|v)O zLbKDv$dQk`xW{mu8bT}cqGIuZjTp8ggAvY_ox@X@0nHQ9_)^P9sD8uDyVRDITO5+J$-tC z>Q~;B;BmCqwse}KpYMI#;*2nZS&kOobXwz@k9^V0rsA8$0;@$LrJa+ly8fmne AumAu6 diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/PostFilter.class b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/PostFilter.class deleted file mode 100644 index cb402b033c19869d837359d0006130dd6ad04bc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 823 zcmaixO;6iE5Qg8015S)fAR&|jh0sD9P}{w5s1(#orAn0|K;q-T%}Ewm#`(RAD1hetL!NVXk5RNvV1g~UnH-4h@jW-22 z9L=*yo#5zZdl%36M3_W{qY=O7)#O>#sT*GM(sE8}u|+DaqLxYDWzvFmJ))eiXci5g(!jsumGu&w~$Q8Qk&hlnWch%;J^5w zKEzv_UtYY6H0jL*_r9nefo6I{{Hjh7l3JOCcsK{o`q zwbwRZcE1#a82Y7;$wk4?tJ-_VF|=JWo&&?>dEL~-0z)v7++hf%tvrt+h=__yxXjR& z(M`VYl=is2o!v7yLo8$Evc^u<*5%$m42hy%VTfn`PbkF@^+;|Xl_^$NBAJo&H6v^8 zYg@wB&HYpu9Ym*W(|wEQykY0L?NVH2P%A~tG4jU+5bs^OvK_NA+{WGk&xuqN*U+z^ zk72Y)iJWB$UKQFVf9LRuNPAlq1Gvu6vCl=?v2AW1Uoeaj;R{A_6A!6~W0QFwdn~K6+C6=X_iWQs92H(goWh|sN}yG#dEw+u*}fu zqW+a$#flVADa&pcG?~Gis8ZuEJUfK7y_ux3b!9kLXZg0aEXU5t$4_tP%E@nFQZmFa zhz9*TK+R?Hag$YOr_svf>7B0#f2NNBqGaVY5Jn4G)pMY=m39;wZDb{Qf>!AljJ1EF zr5>u*L4zmI7&?9ExDO2kKQX3mGWEZ*{k)cLp&zZ;`^!msT2)P=}e#6zwSPg?~ zUvT3m5^rNv{P_5HXbd$>#~zZQ-JIMl(02{#8lJJ!68lIWpr67GAc8?6IfN-%XGmtL dSlmnFlMm4oSj9^s5y2#0Awxnjthr^c{{_6ITRQ*% diff --git a/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/RouteFilter.class b/EurekaServerUsingFeignClientAndZuulServer/employee-zuul-service/target/classes/com/javainuse/filter/RouteFilter.class deleted file mode 100644 index faef82179641ed6361a69a6ffe1a40648c4c146d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 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 diff --git a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/mvnw b/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/mvnw.cmd b/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/pom.xml b/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/pom.xml deleted file mode 100644 index 7d38d40..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - 4.0.0 - - com.github.rawsanj - eureka-server - 0.0.1-SNAPSHOT - jar - - eureka-server - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java b/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java deleted file mode 100644 index 1b2a6ba..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.eurekaserver; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; - -@SpringBootApplication -@EnableEurekaServer -public class EurekaserverApplication { - - public static void main(String[] args) { - SpringApplication.run(EurekaserverApplication.class, args); - } -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/main/resources/application.properties b/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/main/resources/application.properties deleted file mode 100644 index 90efd1c..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/main/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -server.port=8762 - - - - - -spring.application.name=application-service - -eureka.client.register-with-eureka=false -eureka.client.fetch-registry=false -eureka.client.serviceUrl.defaultZone= http://localhost:8762/eureka \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java b/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java deleted file mode 100644 index a20f6a0..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.eurekaserver; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class EurekaserverApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.gitignore b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/mvnw b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/mvnw.cmd b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/pom.xml b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/pom.xml deleted file mode 100644 index 5ae6d0a..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - 4.0.0 - - com.mongoDb - mongodbExample - 0.0.1-SNAPSHOT - jar - - mongodbExample - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - org.springframework.boot - spring-boot-starter-web - - - org.projectlombok - lombok - 1.16.20 - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java deleted file mode 100644 index 134b650..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; -@SpringBootApplication -@EnableEurekaClient -public class MongoMain { - - public static void main(String[] args) { - SpringApplication.run(MongoMain.class, args); - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java deleted file mode 100644 index a830375..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.mongo.db.controller; - -import java.util.List; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.service.IAuditService; -import com.mongo.db.vo.updateAuditRequest; - -/** - * @author trainee - * - */ -//@RequestMapping("/audit") -@RestController -public class AuditController { - - @Autowired - private IAuditService auditService; -/** - * - * @param audit - * @return - */ - @PostMapping - public ResponseEntitycreate(@RequestBody final AuditLog audit) - { - try { - auditService.createAudit(audit); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException exep) { - return new ResponseEntity(exep.getMessage(),HttpStatus.OK); - } - } - /** - * - * @param eventName - * @return - */ - @GetMapping("/{eventName}") - public ResponseEntitygetAudit(@PathVariable @NotNull final String eventName) - { - - try { - List list=auditService.getDetails(eventName); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @return - */ - @GetMapping - public ResponseEntitygetAllAudit() - { - - try { - List list=auditService.findall(); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param update - * @return - */ - @PutMapping - public ResponseEntityupdateAudit(@RequestBody final updateAuditRequest update) - { - - try { - AuditLog audit=auditService.update(update.getEventId(), update.getEventType()); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param eventId - * @return - */ - @DeleteMapping("{eventId}") - public ResponseEntitydeleteAudit(@PathVariable final UUID eventId) - { - - try { - - String audit=auditService.deleteAudit(eventId); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java deleted file mode 100644 index 1b55caa..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.mongo.db.document; - -import java.util.Date; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -@Document -public class AuditLog { - - @Id - @NotNull - private UUID eventID=UUID.randomUUID(); - @NotNull - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * - * @return the eventID - */ - public UUID getEventID() { - return eventID; - } - /** - * @param eventID the eventID to set - */ - public void setEventID(UUID eventID) { - this.eventID = eventID; - } - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /** - * @param eventID - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(UUID eventID, String eventName, String eventType, Date eventDate, String userId, - Object oldValue, Object newValue) { - super(); - this.eventID = eventID; - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventID=" + eventID + ", eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" - + eventDate + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - - - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java deleted file mode 100644 index 6479eb2..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.mongo.db.document; - -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java deleted file mode 100644 index c61912a..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db.exception; - -public class AuditException extends Exception{ - String msg; - - /** - * @param msg - */ - public AuditException(String msg) { - super(); - this.msg = msg; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java deleted file mode 100644 index b7d4db1..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.mongo.db.repo; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.data.mongodb.repository.MongoRepository; - -import com.mongo.db.document.AuditLog; - -/** - * @author trainee - * - */ -public interface AuditMongoRepository extends MongoRepository{ - - /** - * @param eventName - * @return - */ - List findByEventName(String eventName); - /** - * @param eventType - * @return - */ - AuditLog findByEventType(String eventType); - - - Optional findByeventID(UUID eventID); -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java deleted file mode 100644 index cd8286f..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; - -@Service("auditService") -public class AuditServiceImpl implements IAuditService{ - - @Autowired - private AuditMongoRepository auditRepo; - @Override - public AuditLog createAudit(AuditLog audit)throws AuditException { - AuditLog audi= auditRepo.save(audit); - if(audi!=null) - { - return audi; - } - else - { - throw new AuditException("audit not added"); - } - } - - - - @Override - public String deleteAudit(UUID id) throws AuditException { - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - {AuditLog aud=audit.get(); - auditRepo.delete(aud);; - return "deleted"; - } - else - { - throw new AuditException("not deleted"); - } - } - - @Override - public AuditLog update(UUID id,String eventType) throws AuditException { - //changes made after downgrading application - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - { - AuditLog auditLog=audit.get(); - auditLog.setEventType(eventType); - AuditLog auu=auditRepo.save(auditLog); - return auu; - } - else - { - throw new AuditException("id not found!!!!"); - } - } - - - - @Override - public List getDetails(String eventName) throws AuditException { - // TODO Auto-generated method stub - List list=auditRepo.findByEventName(eventName); - if(list.isEmpty()) - { - throw new AuditException("List is empty"); - } - else - { - return list; - } - - } - - - - @Override - public List findall() throws AuditException { - // TODO Auto-generated method stub - return auditRepo.findAll(); - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java deleted file mode 100644 index db121ae..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.UUID; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; - -public interface IAuditService { - - /** - * @method createAudit - * @param audit - * @return AuditLog object - * @throws AuditException - */ - AuditLog createAudit(AuditLog audit) throws AuditException; - /** - * @method getDetails - * @param eventName - * @return List - * @throws AuditException - */ - List getDetails(String eventName) throws AuditException; - /** - * @method deleteaudit - * @param id - * @return String - * @throws AuditException - */ - String deleteAudit(UUID id) throws AuditException; - /** - * @method update - * @param id - * @param eventType - * @return AuditLog - * @throws AuditException - */ - AuditLog update(UUID id,String eventType) throws AuditException; - /** - * @method findall - * @return List - * @throws AuditException - */ - List findall() throws AuditException; - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java deleted file mode 100644 index ac2a51a..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mongo.db.vo; - -import java.util.UUID; - -public class updateAuditRequest { - - private UUID eventId; - private String eventType; - /** - * @return the eventId - */ - public UUID getEventId() { - return eventId; - } - /** - * @param eventId the eventId to set - */ - public void setEventId(UUID eventId) { - this.eventId = eventId; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - -} diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/resources/application.properties b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/resources/application.properties deleted file mode 100644 index 96948b9..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/main/resources/application.properties +++ /dev/null @@ -1,12 +0,0 @@ -#Mongo -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27017 -spring.data.mongodb.database=mongodb -server.port=8082 -#Mongo -eureka.client.service-url.defaultZone=http://localhost:8762/eureka -spring.application.name=mongo-client - - -#appproperty client-spring.application.name=mongo-service - diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java deleted file mode 100644 index 86f4145..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/*package com.mongoDb.mongodbExample; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.document.BaseEntity; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; -import com.mongo.db.service.AuditServiceImpl; -import com.mongo.db.service.IAuditService; - -@RunWith(MockitoJUnitRunner.class) -public class MongoTest { - - @Mock - private AuditMongoRepository auditRepo; - - - @InjectMocks IAuditService auditServcie=new AuditServiceImpl(); - Date date=new Date(); - UUID id; - Timestamp time; - BaseEntity base1; - BaseEntity bsae2; - AuditLog audit; - AuditLog audit1; - AuditLog audit2; - @Before - public void init() - { - date=new Date(); - id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - time=new Timestamp(date.getTime()); - base1=new BaseEntity("1"); - bsae2=new BaseEntity("2"); - audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - audit1 =new AuditLog(UUID.fromString("38400000-8cf0-11cd-b23e-10b96e4ef00d"),"createnew","creation",time,"3",base1,bsae2); - } - @Test - public void auditcreateTest()throws AuditException - { Date date=new Date(); - UUID id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - Timestamp time=new Timestamp(date.getTime()); - BaseEntity base1=new BaseEntity("1"); - BaseEntity bsae2=new BaseEntity("2"); - AuditLog audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - Mockito.when(auditRepo.save(audit)).thenReturn(audit); - AuditLog audi; - - audi = auditServcie.createAudit(audit); - assertEquals("created",audi,audit); - } - @Test(expected=AuditException.class) - public void falsecreateTest() throws AuditException - { - AuditLog audit1=null; - Mockito.when(auditRepo.save(audit1)).thenReturn(audit1); - AuditLog audi; - audi = auditServcie.createAudit(audit1); - } - -@Test -public void auditgetDetails()throws AuditException -{ - - - List list=new ArrayList(); - - list.add(audit); - list.add(audit1); - Mockito.when(auditRepo.findByEventName("create")).thenReturn(list); - List newList=auditServcie.getDetails("create"); - assertEquals(list, newList); - -} -@Test(expected=AuditException.class) -public void auditgetDetailsfalse()throws AuditException -{ - - - List list=new ArrayList<>(); - Mockito.when(auditRepo.findByEventName("mongo")).thenReturn(list); - List newList=auditServcie.getDetails("mongo"); - - -} - -@Test -public void auditupdatetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - assertEquals(auditt,newAudit); -} - -@Test(expected=AuditException.class) -public void auditupdatefalsecase() throws AuditException -{ - Optional opt=Optional.empty(); - when(auditRepo.findById(id)).thenReturn(opt); - //AuditLog auditt=opt.get(); - //when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - -} - -@Test -public void auditdeletetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - - String newAudit=auditServcie.deleteAudit(id); - - assertEquals("deleted",newAudit); -} - -} -*/ \ No newline at end of file diff --git a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java b/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java deleted file mode 100644 index 05b8eae..0000000 --- a/EurekaServerUsingFeignClientAndZuulServer/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mongoDb.mongodbExample; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MongodbExampleApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/.eclipse-pmd b/EurekaServerUsingRestTemplate/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/.gitignore b/EurekaServerUsingRestTemplate/17BankInCapg/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingRestTemplate/17BankInCapg/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingRestTemplate/17BankInCapg/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/mvnw b/EurekaServerUsingRestTemplate/17BankInCapg/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/mvnw.cmd b/EurekaServerUsingRestTemplate/17BankInCapg/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/pom.xml b/EurekaServerUsingRestTemplate/17BankInCapg/pom.xml deleted file mode 100644 index b84a2e3..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/pom.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - 4.0.0 - - com.bankApplication - BankInApp - 0.0.1-SNAPSHOT - jar - - BankInApp - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - 8.0.11 - runtime - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - org.springframework.cloud - spring-cloud-starter-feign - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java deleted file mode 100644 index 0dd944c..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/BankApplicationMain.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; -import org.springframework.web.bind.annotation.RequestMapping; - -@SpringBootApplication -@EnableEurekaClient -public class BankApplicationMain { - - - - - - - - public static void main(String[] args) { - SpringApplication.run(BankApplicationMain.class, args); - } - - - - - - - /* @RequestMapping("/greeting") - public String greeting() { - return "Hello from EurekaClient bank application!"; - }*/ -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java deleted file mode 100644 index f65ebb0..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.bank.Exception; - -public class ManagedException extends Exception { - public ManagedException(String msg) { - - - - super(msg); - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/ATMController.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/ATMController.java deleted file mode 100644 index 06ec203..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/ATMController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.ATMReq; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Bank; -import com.bank.service.IATMService; -import com.bank.service.IBankService; - -//To call Restful services -@RestController -public class ATMController { - - // Injecting properties of IATMService to use its methods - @Autowired - private IATMService atmService; - // Injecting properties of IBankService to use its methods in current class - @Autowired - private IBankService bankService; - - /* - * description : this method will return a atm instance - */ - @PostMapping("/atmCreate") - public ResponseEntity createATM(@RequestBody final ATMReq atm) { - - ATM atm1 = null; - try { - final Optional bank = bankService.getBankDetailsByID(atm.getBankId()); - ATM atm2 = atm.getAtm(); - atm2.setBankId(bank.get().getBankId()); - atm1 = atmService.createATM(atm2); - return new ResponseEntity(atm1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Atm not created", HttpStatus.OK); - } - - } - /* - * description : this method will return a - * String message if money successfully added from bank - */ - - @PostMapping("/addMoneyInAtm") - public ResponseEntity addMoneyToATM(@RequestBody final AddMoneyReq atm) { - - try { - final String str = atmService.addMoneyFromBank(atm); - return new ResponseEntity(str, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money to atm not deposited succesfully!!!", HttpStatus.OK); - } - - } - - /* - * description : this method will return - * String if amount is successfully withdraw - */ - @PostMapping("/withdrawAtm") - public ResponseEntity withdrawFromAtm(@RequestBody final WithrawMoneyReq atm) { - - try { - final Long id = atmService.withrawMoney(atm); - return new ResponseEntity(id, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money from atm not withdrawn", HttpStatus.OK); - } - - } -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/AccountController.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/AccountController.java deleted file mode 100644 index 54cb138..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/AccountController.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountRequest; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IAccountService; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -// To call RestFull services -@RestController -public class AccountController { - - // Injecting properties of IAccountService to use its methods - @Autowired - private IAccountService accountService; - // Injecting properties of ICustomerService to use its methods - @Autowired - private ICustomerService customerService; - // Injecting properties of IBankService to use its methods - @Autowired - private IBankService bankService; - - /* - * description : this method will return a created account and will give - * response in response entity. - */ - @PostMapping("/accountCreate") - public ResponseEntity createAccount(@RequestBody final AccountRequest accountRe) { - Account response = null; - Optional bank; - try { - bank = bankService.getBankDetailsByID(accountRe.getBankId()); - - if (bank.isPresent()) { - Customer cust; - try { - cust = customerService.getCustomerDetails(accountRe.getCustomerId()); - - final Account acc = accountRe.getAccount(); - acc.setBank(bank.get()); - acc.setCustomer(cust); - try { - response = accountService.createAccount(acc); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Account not created", HttpStatus.OK); - } - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bank not present", HttpStatus.OK); - } - } - - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity("id not found", HttpStatus.OK); - } - - } - - /* - * method : getAccount return type : responseEntitiy description : this method - * will return a created account of a given input id - */ - - @GetMapping("/accountDetails/{id}") - public ResponseEntity getAccount(@PathVariable Long id) { - Account acc; - try { - acc = accountService.getAccountDetails(id); - return new ResponseEntity(acc, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("account of given id not found", HttpStatus.OK); - } - - } - - /* - * description : this method will return a success String if money is deposited - * mapping : post - */ - - @PostMapping("/accountDeposit") - public ResponseEntity depositAccount(@RequestBody final AccountTransaction account) { - try { - Long custId = accountService.depositMoney(account); - return new ResponseEntity(custId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - - /* - * description : this method will return a string if amount is withdraw - */ - - @PostMapping("/accountwithdraw") - public ResponseEntity withdrawAccount(@RequestBody final AccountTransaction account) { - try { - Long customerId = accountService.withdrawlMoney(account); - return new ResponseEntity(customerId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/BankController.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/BankController.java deleted file mode 100644 index d3ef533..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.service.IBankService; - -@RestController -@RequestMapping("/bank") -public class BankController { - - @Autowired - private IBankService bankService; - - - /* - * description : this method will return a bank instance - */ - @PostMapping("/bankCreate") - public ResponseEntity createBank(@RequestBody final Bank bank) { - - Bank bank1; - try { - bank1 = bankService.createBank(bank); - return new ResponseEntity(bank1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Bank not Added ", HttpStatus.OK); - } - - } - - /* - * description : this method will return a list of banks - */ - @GetMapping("/getBankDetails") - public ResponseEntity getBankDetails() { - List list; - try { - list = bankService.getBankDetails(); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bankDetailsnotfound", HttpStatus.OK); - } - - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java deleted file mode 100644 index e0d9d2c..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -@RestController -@RequestMapping("/customer") -public class CustomerController { - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - - - /** - * @return the customerService - */ - public ICustomerService getCustomerService() { - return customerService; - } - - /** - * @param customerService the customerService to set - */ - public void setCustomerService(ICustomerService customerService) { - this.customerService = customerService; - } - - /** - * @return the bankService - */ - public IBankService getBankService() { - return bankService; - } - - /** - * @param bankService the bankService to set - */ - public void setBankService(IBankService bankService) { - this.bankService = bankService; - } - - /* description : this method will return a - * created customer - */ - @PostMapping("/customerCreate") - public ResponseEntity createCustomer(@RequestBody final CreateCustomerRequest createCustomerRequest) { - Customer response = null; - Optional bank; - - try { - bank = bankService.getBankDetailsByID(createCustomerRequest.getBankID()); - - if (bank.isPresent()) { - final Customer cust = createCustomerRequest.getCustomer(); - cust.setBank(bank.get()); - - try { - response = customerService.createCustomer(cust); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("faild to create customer", HttpStatus.OK); - } - } - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e1) { - String message = e1.getMessage(); - return new ResponseEntity("unable to fetch bank details by id", HttpStatus.OK); - } - - } - - /* description : this method will return a created customer of - * specified id - */ - @GetMapping("/getCustomerDetails/{id}") - public ResponseEntity getCustomer(@PathVariable final Long id) { - final Customer cust; - try { - cust = customerService.getCustomerDetails(id); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("id not found for customer to get details", HttpStatus.OK); - } - } - - @PutMapping("/{id}/{name}/{userId}") - public ResponseEntity updateCustomer(@PathVariable final Long id,@PathVariable final String name,@PathVariable final String userId) throws CloneNotSupportedException { - final Customer cust; - try { - cust = customerService.updateCustomer(id, name, userId); - System.out.println(">>>>>>>>>>>>>>>>>>>"+cust); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("unable to update data", HttpStatus.OK); - } - } -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java deleted file mode 100644 index f0257c3..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.bank.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateDenominationRequest; -import com.bank.service.IAtmDenoService; -import com.bank.service.IBankDenominationService; -import com.bank.service.IRefServcie; - -@RestController -public class DenominationController { - - @Autowired - private IRefServcie refService; - - @Autowired - private IBankDenominationService bankDenominations; - @Autowired - private IAtmDenoService atmDenominationService; - - - - // this will add denominations to bank and atm - @PostMapping("/addDenominations") - public void addDenomination(@RequestBody CreateDenominationRequest createDenomination) - { - - try { - refService.createDenomination(createDenomination.getList()); - } catch (ManagedException e1) { - - e1.printStackTrace(); - } - try { - bankDenominations.bankDenominationCreate(createDenomination.getList(),createDenomination.getBankId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try { - atmDenominationService.atmDenominationCreate(createDenomination.getList(), createDenomination.getAtmId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java deleted file mode 100644 index 6c017c2..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.TransactionReq; -import com.bank.model.Transaction; -import com.bank.service.ITransactionService; - -@RestController -public class TransactionController { - @Autowired - private ITransactionService transactionService; - - - - // this will return all the statements of account id - @GetMapping("/transactionDetails/{accountId}") - public ResponseEntity retriveTrans(@PathVariable final Long accountId) { - - List list; - try { - list = transactionService.generateTransactionReport( accountId); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity(message, HttpStatus.OK); - } - } - - //this will create statements instance which will be used to tract transactions made by user - - @PostMapping("/transactionCreate") - public ResponseEntity createTransaction(@RequestBody final TransactionReq trans) { - - final Transaction transact =trans.getTransaction(); - final Transaction newtrans; - try { - newtrans = transactionService.createTransaction(transact); - return new ResponseEntity(newtrans, HttpStatus.CREATED); - } catch (ManagedException e) { - // TODO Auto-generated catch block - String msg=e.getMessage(); - return new ResponseEntity(msg, HttpStatus.OK); - } - - - } -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java deleted file mode 100644 index d71f279..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bank.dto; - -import com.bank.model.ATM; - -public class ATMReq { - private Long bankId; - private ATM atm; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - /** - * @param atm the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } -public ATMReq() { - // TODO Auto-generated constructor stub -} -/** - * @param bankId - * @param atm - */ -public ATMReq(Long bankId, ATM atm) { - this.bankId = bankId; - this.atm = atm; -} - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java deleted file mode 100644 index 065159f..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Account; - -public class AccountRequest { - - private long bankId; - private long customerId; - private Account account; - /** - * @return the bankId - */ - public long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the account - */ - public Account getAccount() { - return account; - } - /** - * @param account the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountRequest [bankId=" + bankId + ", customerId=" + customerId + ", account=" + account + "]"; - } - - - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java deleted file mode 100644 index bf9f152..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AccountTransaction { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this. accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java deleted file mode 100644 index 7557450..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AddMoneyReq { - - private Long atmId; - private Long bankId; - private BigDecimal amount; - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java deleted file mode 100644 index 70ea8de..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Customer; - -public class CreateCustomerRequest { - - private Customer customer; - private Long bankID; - - /** - * @return the bankID - */ - public Long getBankID() { - return bankID; - } - /** - * @param bankID the bankID to set - */ - public void setBankID(Long bankID) { - this.bankID = bankID; - } - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - /** - * @param customer the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - /** - * @param customer - * @param bankID - */ - public CreateCustomerRequest(Customer customer, Long bankID) { - super(); - this.customer = customer; - this.bankID = bankID; - } -public CreateCustomerRequest() { - // TODO Auto-generated constructor stub -} -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java deleted file mode 100644 index 50c0153..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; -import java.util.List; - -public class CreateDenominationRequest { - - private List list; - private Long bankId; - private Long atmId; - /** - * @return the list - */ - public List getList() { - return list; - } - /** - * @param list the list to set - */ - public void setList(List list) { - this.list = list; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java deleted file mode 100644 index 427128d..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Transaction; - -public class TransactionReq { - - private Long customerId; - private Long accountId; - private Transaction transaction; - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the transaction - */ - public Transaction getTransaction() { - return transaction; - } - /** - * @param transaction the transaction to set - */ - public void setTransaction(Transaction transaction) { - this.transaction = transaction; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java deleted file mode 100644 index c5af5af..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class WithrawMoneyReq { - private Long accountId; - private BigDecimal amount; - private Long atmId; - private Long customerId; - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/ATM.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/ATM.java deleted file mode 100644 index 419e543..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/ATM.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "atm_info") -@Entity -public class ATM extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "atm_id") - private Long aTMId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "id") - private Long bankId; - - /** - * @return the aTMId - */ - public Long getATMId() { - return aTMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(final Long aTMId) { - this.aTMId = aTMId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - public ATM() { - // TODO Auto-generated constructor stub - } - - - @Override - public String toString() { - return "ATM [ATMId=" + aTMId + ", amount=" + amount + ", bankId=" + bankId + "]"; - } - - /** - * @param aTMId - * @param amount - * @param bankId - */ - public ATM(Long aTMId, BigDecimal amount, Long bankId) { - aTMId = aTMId; - this.amount = amount; - this.bankId = bankId; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java deleted file mode 100644 index d7d7e63..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Ref_ATM_Denm") -@Entity -public class ATMDenomination extends BaseEntity { - @Column(name = "atm_id") - private Long ATMId; - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noofdenomination") - private int noofDenomination; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noofDenomination - */ - public int getNoofDenomination() { - return noofDenomination; - } - - /** - * @param noofDenomination - * the noofDenomination to set - */ - public void setNoofDenomination(int noofDenomination) { - this.noofDenomination = noofDenomination; - } - - public ATMDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param aTMId - * @param denomination - * @param noofDenomination - */ - public ATMDenomination(Long aTMId, BigDecimal denomination, int noofDenomination) { - ATMId = aTMId; - this.denomination = denomination; - this.noofDenomination = noofDenomination; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Account.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Account.java deleted file mode 100644 index 4188d6a..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Account.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Table(name = "account_details") -@Entity -public class Account extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "account_id") - private Long accountId; - @Column(name = "amount") - private BigDecimal amount; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - - public Account() { - - } - - @Override - public String toString() { - return "Account [accountId=" + accountId + ", amount=" + amount + ", customer=" + customer + ", bank=" + bank - + "]"; - } - - /** - * @param accountId - * @param amount - * @param customer - * @param bank - */ - public Account(Long accountId, BigDecimal amount, Customer customer, Bank bank) { - this.accountId = accountId; - this.amount = amount; - this.customer = customer; - this.bank = bank; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/AuditLog.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/AuditLog.java deleted file mode 100644 index 7493632..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/AuditLog.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.model; - -import java.sql.Timestamp; -import java.util.Date; - -public class AuditLog { - - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" + eventDate - + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - /** - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(String eventName, String eventType,Date eventDate, String userId, Object oldValue, - Object newValue) { - super(); - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Bank.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Bank.java deleted file mode 100644 index 495ed86..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -/** - * author Ram Dafale - */ - -@Table(name = "bank_details") -@Entity -public class Bank extends BaseEntity { - - @Id - // @SequenceGenerator(name = "bank_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.AUTO /* , generator = "bank_seq" */) - @Column(name = "id") - private Long bankId; - - @Column(name = "amount") - private BigDecimal amount; - @OneToMany - @JoinColumn(name = "id", referencedColumnName = "id") - List atmList = new ArrayList(); - - public Bank() { - } - - /** - * method name : getBankId() return type : Long decription : it we get all bank - * id - */ - public Long getBankId() { - return bankId; - } - - /** - * method name : setBankId(final Long bankId) method description : it will set - * the bank id - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - /** - * method name : getAmount method description : it will get the total bank - * amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * method name : setAmount method parameters : BigDecimal method description : - * it will set bank amount - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } - - /** - * @param bankId - * @param amount - */ - public Bank(Long bankId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.amount = amount; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java deleted file mode 100644 index a1a0938..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Bank_Denm") -@Entity -public class BankDenomination extends BaseEntity { - - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noOfDenomination") - private int noOfDenomination; - @Column(name = "bank_id") - private Long bankId; - - - - /** - * @return the bankId - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noOfDenomination - */ - public int getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(int noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - public BankDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param bankId - * @param denomination - * @param noOfDenomination - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination) { - - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "BankDenomination [denomination=" + denomination + ", noOfDenomination=" + noOfDenomination + ", bankId=" - + bankId + "]"; - } - - /** - * @param denomination - * @param noOfDenomination - * @param bankId - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination, Long bankId) { - super(); - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((denomination == null) ? 0 : denomination.hashCode()); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BankDenomination other = (BankDenomination) obj; - if (denomination == null) { - if (other.denomination != null) - return false; - } else if (!denomination.equals(other.denomination)) - return false; - return true; - } - -} \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java deleted file mode 100644 index 2b31305..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.model; - -import javax.persistence.MappedSuperclass; - -@MappedSuperclass -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId - * the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Customer.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Customer.java deleted file mode 100644 index 8b08ed4..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Customer.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.bank.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -/** - * author Ram - */ -@Table(name = "customer_details") -@Entity -public class Customer extends BaseEntity implements Cloneable { - - @Id - //@SequenceGenerator(name = "customer_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.AUTO/*, generator = "customer_seq"*/) - @Column(name = "id") - private Long customerId; - @Column(name = "customer_name") - private String customerName; - @Column(name = "pin") - private Long pin; - - // relational mapping of bank to customer - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Customer() { - // TODO Auto-generated constructor stub - } - - /** - * method name : getCustomerId method returnTypr : Long method description : to - * get customer id - */ - public Long getCustomerId() { - return customerId; - } - - /** - * method name : setCustomerId method parameter : Long method description : it - * will set customerId - */ - public void setCustomerId(final Long customerId) { - this.customerId = customerId; - } - - /** - * method Name : getCustomerName method return type : String method description - * : it will get he customer name - */ - public String getCustomerName() { - return customerName; - } - - /** - * method name : setCustomerName method parameter : String method description : - * it will set customerName - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * method Name : getPin method return type : Long method description : it will - * get he pin - */ - public Long getPin() { - return pin; - } - - /** - * method name : setPin method parameter : Long method description : it will set - * pin - */ - public void setPin(final Long pin) { - this.pin = pin; - } - - /** - * method name : setBank method parameter : Bank method description : it will - * set Bank - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", pin=" + pin + ", bank=" - + bank + "]"; - } - - /** - * @param customerId - * @param customerName - * @param pin - */ - public Customer(Long customerId, String customerName, Long pin) { - super(); - this.customerId = customerId; - this.customerName = customerName; - this.pin = pin; - } - - public Customer(String string, long l) { - - } - @Override - public Customer clone()throws CloneNotSupportedException{ - return (Customer)super.clone(); - } - public Customer( String customerName) { - super(); - - this.customerName = customerName; - - } - - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/RefMoney.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/RefMoney.java deleted file mode 100644 index 3d5d6d2..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/RefMoney.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -@Table(name="ref_money") -@Entity -public class RefMoney extends BaseEntity { - @Id - private BigDecimal denomination; - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } -public RefMoney() { - // TODO Auto-generated constructor stub -} -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Transaction.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Transaction.java deleted file mode 100644 index 66e7bd9..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/model/Transaction.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.springframework.stereotype.Component; - -@Table(name = "transaction_details") -@Entity -@Component -public class Transaction extends BaseEntity{ - @Id - - @GeneratedValue(strategy = GenerationType.AUTO) - @Column(name = "transaction_id") - private Long transactionId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "transaction_type") - private String transactionType; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - @ManyToOne(targetEntity = Account.class) - private Account account; - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(final Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customerId - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(final String transactionType) { - this.transactionType = transactionType; - } - - public Transaction() { - // TODO Auto-generated constructor stub - } - - /** - * @param customerId - * @param accountId - * @param amount - * @param transactionType - */ - public Transaction(BigDecimal amount, String transactionType) { - super(); - /* - * this.customerId = customerId; this.accountId = accountId; - */ - this.amount = amount; - this.transactionType = transactionType; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java deleted file mode 100644 index c3c75f0..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Account; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMDenoRepository extends JpaRepository { - - - Optional findBydenomination(BigDecimal myValue); - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java deleted file mode 100644 index 6801567..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATM; -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMRepository extends JpaRepository{ - - Optional findByaTMId(Long aTMId); - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java deleted file mode 100644 index 927e0be..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface AccountRepository extends JpaRepository{ - - - - Optional findByaccountId(Long accountId); - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java deleted file mode 100644 index 68dc6ea..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import org.springframework.stereotype.Repository; - -import com.bank.model.ATM; -import com.bank.model.Bank; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -@Repository -public interface BankRepository extends JpaRepository { - - - Optional findBybankId(Long bankId); -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java deleted file mode 100644 index 7e47033..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Customer; -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface CustomerRepository extends JpaRepository { - - Optional findOneBycustomerName(String CustomerName); - - Optional findBycustomerId(Long customerId); -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java deleted file mode 100644 index 8ae3342..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.BankDenomination; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface DenominationRepository extends JpaRepository{ - - - Optional findBydenomination(BigDecimal myValue); - - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java deleted file mode 100644 index 9a71ec7..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.RefMoney; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface RefMoneyRepository extends JpaRepository { - - - - Optional findBydenomination(BigDecimal denomination); - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java deleted file mode 100644 index ed3ce90..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Account; -import com.bank.model.Transaction; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface TransactionRepository extends JpaRepository{ - - - /* - * this query will find trasanction where account id is associated - */ - @Query(value="select * from transaction_details where account_account_id=?1",nativeQuery=true) - List findAllByAccountId(Long accountId); - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java deleted file mode 100644 index 2862798..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("atmService") -public class ATMServiceImpl implements IATMService { - - final Logger LOGGER = LoggerFactory.getLogger(ATMServiceImpl.class); - -//injectiong all required properties - @Autowired - private ATMRepository atmRepo; - @Autowired - private IBankService bankService; - @Autowired - private IAccountService accountService; - @Autowired - private ICustomerService customerService; - @Autowired - private TransactionRepository trans; - @Autowired - private IAtmDenoService atmDeno; - - - //will create new instance for atm - @Override - public ATM createATM(final ATM atm) throws ManagedException { - // TODO Auto-generated method stub - final ATM atm1 = atmRepo.save(atm); - if (atm1 != null) { - LOGGER.info("atm is added"); - return atm1; - } else { - LOGGER.error("no atm is added"); - throw new ManagedException("No such atm is created!!"); - } - } - - // will add money from bank to atm - @Transactional - @Override - public String addMoneyFromBank(final AddMoneyReq atmreq) throws ManagedException { - //method needs to be change - final Optional atm = atmRepo.findByaTMId(atmreq.getAtmId()); - if (atm.isPresent()) { - ATM atm1 = atm.get(); - final Long bankID = atmreq.getBankId(); - final Long bankId = atm1.getBankId(); - if (bankID.equals(bankId)) { - final BigDecimal amount = atmreq.getAmount(); - final Optional bankopt=bankService.getBankDetailsByID(atmreq.getBankId()); - final Bank bank=bankopt.get(); - BigDecimal bankAmount = bank.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(bankAmount) == -1) { - BigDecimal atmAmount = atm1.getAmount(); - atmAmount = atmAmount.add(amount); - atm1.setAmount(atmAmount); - bankAmount = bankAmount.subtract(amount); - bank.setAmount(bankAmount); - bankService.createBank(bank); - atmRepo.save(atm1); - atmDeno.atmDenominationDeposit(atmreq.getAmount(), atmreq.getAtmId()); - LOGGER.info("amount is added to your account"); - return "amount added"; - - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less than you want"); - } - } - else - { - LOGGER.error("amount is negative"); - throw new ManagedException("amount connot be negative"); - } - - } - else - { - LOGGER.error("no bank id exist"); - throw new ManagedException("no such bank id exist"); - } - } - else - { - LOGGER.error("no atm id exist"); - throw new ManagedException("no such atm id exist"); - } - - } - - // will withdraws monet atm - - @Transactional - @Override - public Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException { - final Optional atm = atmRepo.findByaTMId(withdraw.getAtmId()); - if (atm.isPresent()) { - final ATM atm1 = atm.get(); - BigDecimal amount = atm1.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(withdraw.getAmount()) == 1) { - final Account account =accountService.getAccountDetails(withdraw.getAccountId()); - BigDecimal accountAmount = account.getAmount(); - if (accountAmount.compareTo(withdraw.getAmount()) == 1) { - amount = amount.subtract(withdraw.getAmount()); - atm1.setAmount(amount); - accountAmount = accountAmount.subtract(withdraw.getAmount()); - account.setAmount(accountAmount); - accountService.createAccount(account); - atmRepo.save(atm1); - Transaction transaction = new Transaction(); - transaction.setAccount(account); - transaction.setAmount(account.getAmount()); - final Customer customer = customerService.getCustomerDetails(withdraw.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.save(transaction); - LOGGER.info("amount is deducted"); - return withdraw.getAccountId(); - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less thsn amount you want to withdraw"); - } - } - else - { LOGGER.error("atm amount is less"); - throw new ManagedException("atm does not have this much of amount"); - } - } - else - { LOGGER.error("-ve amount not possible "); - throw new ManagedException("negative amount cannot possible"); - } - } - else - { LOGGER.error("no atm id exist"); - throw new ManagedException("no such id of atm exist"); - } - } -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java deleted file mode 100644 index 232f9c2..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("accountService") -public class AccountServiceImpl implements IAccountService { - final Logger LOGGER = LoggerFactory.getLogger(AccountServiceImpl.class); - @Autowired - private AccountRepository accountRepository; - @Autowired - private ITransactionService trans; - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - @Autowired - private IBankDenominationService bankDenoService; - private BigDecimal balance; - - - // this will create account instance for customer - @Override - public Account createAccount(final Account account) throws ManagedException { - final Account acc = accountRepository.save(account); - if (acc != null) { - LOGGER.info("account created"); - return acc; - } else { - LOGGER.error("no account is created"); - throw new ManagedException("No account is created"); - } - } - //this will credit money to account - @Transactional - @Override - public Long depositMoney(final AccountTransaction account) throws ManagedException { - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - final Optional acc1 = accountRepository.findByaccountId(account.getAccountId()); - if (acc1.isPresent()) { - - final Account acc = acc1.get(); - balance = acc.getAmount(); - balance = balance.add(account.getAmount()); - acc.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - bankDenoService.bankDenominationDeposit(account.getAmount(),account.getBankId()); - - }else - { LOGGER.error("no bank id present"); - throw new ManagedException("no bank is present of given id"); - } - Transaction transaction = new Transaction(); - transaction.setAccount(acc); - transaction.setAmount(acc.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("credit"); - trans.createTransaction(transaction); - LOGGER.info("AMOUNT IS ADDED"); - return account.getCustomerId(); - } else { - LOGGER.error("no amount is deposited"); - throw new ManagedException("zero amount deposited"); - } - } - else - { - LOGGER.error("-ve amount is not possible"); - throw new ManagedException("negative amount is not possible"); - } - } - - //this will debit money from account - @Transactional - @Override - public Long withdrawlMoney(final AccountTransaction account) throws ManagedException { - // TODO Auto-generated method stub - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - Optional acc1 = accountRepository.findByaccountId(account.getAccountId()); - if (acc1.isPresent()) { - final Account account1 = acc1.get(); ; - balance = account1.getAmount(); - balance = balance.subtract(account.getAmount()); - account1.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - bankDenoService.bankDenominationWithdraw(account.getAmount(), account.getBankId()); - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - - Transaction transaction=new Transaction(); - transaction.setAccount(account1); - transaction.setAmount(account1.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - if(customer!=null) - { - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.createTransaction(transaction); - LOGGER.info("amount is deducted"); - return account.getCustomerId(); - } - else - { LOGGER.error("no customer exist"); - throw new ManagedException("No customer of such occunct exsit"); - } - }else - {LOGGER.error("no account exist"); - throw new ManagedException("No such account exist"); - } - - } else { - LOGGER.error("not enough amount to withdraw"); - throw new ManagedException("No amount withdraw"); - } - } - else - { - LOGGER.error("-ve value is not posssible"); - throw new ManagedException("negative amount is not possible"); - } - } - - - //It will give account details of perticular Id - @Override - public Account getAccountDetails(final Long id) throws ManagedException { - // TODO Auto-generated method stub - Account account = accountRepository.findByaccountId(id).get(); - if (account != null) { - LOGGER.info("account retrived"); - return account; - } else { - LOGGER.error("no such id exist"); - throw new ManagedException("no such element found"); - } - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java deleted file mode 100644 index ed877ef..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.ATMDenoRepository; -import com.bank.repository.ATMRepository; -import com.bank.repository.DenominationRepository; - -@Service -public class AtmDenoServiceImpl implements IAtmDenoService{ - - - @Autowired - private IRefServcie refService; - - @Autowired - private DenominationHelper denominationHelper; - - @Autowired - private ATMDenoRepository atmdenoRepository; - @Autowired - private ATMRepository atmRepo; - @Autowired - private DenominationRepository bankDeno; - @Autowired - IBankService bankService; - - - // this will create denominations for atm - @Override - public void atmDenominationCreate(List list, Long atmId) throws ManagedException { - - for(BigDecimal denom: list ) - { - final ATMDenomination first = new ATMDenomination(atmId,new BigDecimal(denom.intValue()), 0); - atmdenoRepository.save(first); - - } - } - - //this method provide logic (when you add money to atm ) for denominations adjustments - @Override - public void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException { - // TODO Auto-generated method stub - - List newList=refService.returnAll(); - - List list = new ArrayList<>(); - for(RefMoney deno:newList) - { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - ATMDenomination atmDeno=new ATMDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count=pair.getValue(); - System.out.println("key value"+myValue); - - //changes made to findById - Optional deno=atmdenoRepository.findBydenomination(myValue); - ATMDenomination denomination=deno.get(); - System.out.println("denomination"+denomination); - System.out.println("count value"+count); - ATM atm=atmRepo.findByaTMId(atmId).get(); - //changes made to findById - BankDenomination bank=bankDeno.findBydenomination(myValue).get(); - int newNum=bank.getNoOfDenomination()-count; - bank.setNoOfDenomination(newNum); - bankDeno.save(bank); - denomination.setATMId(atmId); - denomination.setNoofDenomination(denomination.getNoofDenomination()+count); - - atmdenoRepository.save(denomination); - } - } - } - - - - diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java deleted file mode 100644 index e52db0c..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.bank.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.client.loadbalancer.LoadBalanced; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.bank.model.AuditLog; - -@Service -public class AuditServiceImpl { - - @Autowired - RestTemplate restTemplate; - - @Bean - @LoadBalanced - RestTemplate restTemplate() { - return new RestTemplate(); - } - - // generate audit log - public AuditLog generateAudit(final AuditLog audit) { - - final String uri = "http://mongo-client/createAudit"; - System.out.println("audit obnject " + audit); - final AuditLog audii = restTemplate.postForObject(uri, audit, AuditLog.class); - return audii; - - } - - /* - * @Autowired private DiscoveryClient discoveryClient; - * - * - * public AuditLog generateAudit(AuditLog auditData) { List - * instance=discoveryClient.getInstances("MONGO-CLIENT"); ServiceInstance - * serviceInstance=instance.get(0); RestTemplate restTemplate = new - * RestTemplate(); - * - * String url =serviceInstance.getUri().toString(); url=url+"/create"; AuditLog - * audit = auditData; System.out.println(audit);; AuditLog resultOfOperation = - * restTemplate.postForObject(url, audit, AuditLog.class); return - * resultOfOperation; } - */ - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index a77ef1a..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.DenominationRepository; - -@Service -public class BankDenominationServiceImpl implements IBankDenominationService { - @Autowired - private DenominationRepository denominationRepo; - @Autowired - private IBankService bankServcie; - @Autowired - private DenominationHelper denominationHelper; - @Autowired - private IRefServcie refService; - - - //create denomination for bank - @Override - public void bankDenominationCreate(List list, Long bankId) throws ManagedException { - - // to get values from database - for (BigDecimal denom : list) { - final BankDenomination first = new BankDenomination(new BigDecimal(denom.intValue()), 0, bankId); - denominationRepo.save(first); - - } - - } - - - //this will provide logic: when you withdraws money denominations will get adjusted accordingly - - @Override - public void bankDenominationWithdraw(BigDecimal amount, Long bankId) throws ManagedException { - List newList = refService.returnAll(); - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getcountDenomination(amount, list); - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - System.out.println("key value" + myValue); - //chnages to be made after downgrading spring boot version - Optional deno = denominationRepo.findBydenomination(myValue); - BankDenomination denomination = deno.get(); - System.out.println("denomination" + denomination); - System.out.println("count value" + count); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() - count); - denominationRepo.save(denomination); - - } - - } - - @Override - public void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException { - - List newList = refService.returnAll(); - - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - BankDenomination bankDeno = new BankDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - - Optional deno = denominationRepo.findBydenomination(myValue); - BankDenomination denomination = deno.get(); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() + count); - denominationRepo.save(denomination); - } - - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java deleted file mode 100644 index ae1f2fe..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.repository.BankRepository; - -@Service("bankService") -public class BankServiceImpl implements IBankService { - - final Logger LOGGER = LoggerFactory.getLogger(BankServiceImpl.class); - @Autowired - private BankRepository bankRepository; - @Autowired - private IBankDenominationService bankDenoService; - - - // create new bank instance - @Override - public Bank createBank(final Bank bank) throws ManagedException { - final Bank bank1 = bankRepository.save(bank); - if (bank1 != null) { - - return bank1; - } else { - LOGGER.error("No bank is added"); - throw new ManagedException("No Bank is Added"); - } - } - - - @Override - public List getBankDetails() throws ManagedException { - final List list = bankRepository.findAll(); - if (list.isEmpty()) { - LOGGER.error("No banks found"); - throw new ManagedException("No bank found"); - } else { - return list; - } - } - - @Override - public Optional getBankDetailsByID(final long ID) throws ManagedException { - // changes made in repo - final Optional bank = bankRepository.findBybankId(ID); - if (bank.isPresent()) { - return bank; - } else { - LOGGER.error("no bank of such id exist"); - throw new ManagedException("No such bank found"); - } - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java deleted file mode 100644 index 7d18481..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.bank.service; - - - -import java.sql.Timestamp; -import java.util.Calendar; -import java.util.Date; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.AuditLog; -import com.bank.model.Customer; -import com.bank.repository.CustomerRepository; - -enum EventName { - CUSTOMER, ACCOUNT, ATM, BANK -} - -enum EventType { - CREATED, UPDATED -} - -@Service("customerService") -public class CustomerServiceImpl implements ICustomerService, Cloneable { - final static Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class); - @Autowired - private CustomerRepository customerRepository; - @Autowired - AuditServiceImpl auditService; - - @Override - public Customer createCustomer(final Customer customer) throws ManagedException { - final Customer custom = customerRepository.save(customer); - if (custom != null) { - return custom; - } else { - LOGGER.error("No customer is added"); - throw new ManagedException("no customer is created"); - } - } - - - @Override - public Customer getCustomerDetails(final Long id) throws ManagedException { - - final Customer customer = customerRepository.findBycustomerId(id).get(); - if (customer != null) { - return customer; - } else { - LOGGER.info("No customer of given id is exist"); - throw new ManagedException("no customer of such id exist"); - } - - } - - @Override - public Customer updateCustomer(final Long id, final String name, final String userId) - throws ManagedException, CloneNotSupportedException { - - final Customer customer = customerRepository.findBycustomerId(id).get(); - - Customer oldcustmer = customer.clone(); - - if (customer != null) { - customer.setCustomerName(name); - customer.setUserId(userId); - Customer cust = customerRepository.save(customer); - Calendar cal=Calendar.getInstance(); - Date time=cal.getTime(); - AuditLog audit = new AuditLog(EventName.CUSTOMER.toString(), EventType.UPDATED.toString(), time, - cust.getUserId(), oldcustmer, cust); - - AuditLog ob = auditService.generateAudit(audit); - return cust; - } else { - LOGGER.info("Customer not present as Id not present"); - throw new ManagedException("customer data not updated"); - } - - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java deleted file mode 100644 index 8621dc3..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -@Component -public class DenominationHelper { - - public Map getDenominatioValues(final BigDecimal amount , final List list) throws ManagedException { - final Map newMap=new HashMap(); - Random random = new Random(); - BigDecimal remainder = amount; - if(amount.intValue()>=0) - { - for(int i=0;i<=list.size();i++) - { - Integer randomIndex = random.nextInt(list.size()); - BigDecimal randomElement = list.get(randomIndex); - if ( !(randomElement.compareTo(remainder) >0) ) { - Integer count=remainder.divide(randomElement).intValue(); - remainder= remainder.remainder( randomElement); - - newMap.put(randomElement,count); - - if (remainder.compareTo(BigDecimal.ZERO) ==0) { - break; - } - } - list.remove(randomIndex); - - } - if (remainder.compareTo(BigDecimal.ZERO) !=0) { - System.out.println("cant Proceed "); - return null ; - } - - } - return newMap; - } - - - - public Map getcountDenomination(BigDecimal amount, List list) throws ManagedException - { - Map newMap = new HashMap(); - - List selectedList = new ArrayList(); - for (BigDecimal denom : list) { - if (denom.compareTo(amount) <= 0) { - selectedList.add(denom); - } else { - throw new ManagedException("selected list is empty"); - } - } - for (int i = 0; i <= selectedList.size(); i++) { - BigDecimal maxDen = Collections.max(selectedList); - Integer count = amount.divide(maxDen).intValue(); - amount = amount.remainder(maxDen); - newMap.put(maxDen, count); - - if (amount.compareTo(BigDecimal.ZERO) == 0) { - break; - } - selectedList.remove(maxDen); - } - // get index of particular element - if (amount.compareTo(BigDecimal.ZERO) != 0) { - throw new ManagedException("amount cannot be withdrawn"); - } - return newMap; - } -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IATMService.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IATMService.java deleted file mode 100644 index 91f56b9..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IATMService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; - -/** - * @author ram - */ -public interface IATMService { - /** - * method name : createATM return type : ATM object parameter :object of ATM - * description : this method will return a atm which is created - */ - ATM createATM(final ATM atm) throws ManagedException; - - /** - * method name : addMoneyFromBank return type : String parameter :object of - * ATMMoneyReq description : this method will return a string if money is added - * to atm - */ - String addMoneyFromBank(final AddMoneyReq atm) throws ManagedException; - - /** - * method name : withrawMoney return type : String parameter :object of - * WithdrawMoneyReq description : this method will return a string if - * successfully money withraw - */ - Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException; - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IAccountService.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IAccountService.java deleted file mode 100644 index d207310..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IAccountService.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; - -public interface IAccountService { - /** - * method name : createAccount return type : Account object parameter :object of - * Account class description : this method will return a account which is - * created - */ - Account createAccount(final Account account) throws ManagedException; - - /** - * method name : depositMoney return type : String parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully amount is added and add to transaction list - */ - Long depositMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : withdrawlMoney return type : String object parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully withdraw and add to transaction list - */ - Long withdrawlMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : getAccountDetails return type : Account object parameter :Long - * id description : this method will return a account which is created of given - * id - */ - Account getAccountDetails(final Long id) throws ManagedException; - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java deleted file mode 100644 index 47657d8..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java +++ /dev/null @@ -1,15 +0,0 @@ - package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; - -public interface IAtmDenoService { - - - - - void atmDenominationCreate(List list,Long atmId)throws ManagedException; - void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException; -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java deleted file mode 100644 index 124f9c5..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -import com.bank.Exception.ManagedException; - -public interface IBankDenominationService { - - - void bankDenominationWithdraw(BigDecimal amount,Long bankId) throws ManagedException; - void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException ; - void bankDenominationCreate(List list,Long bankId)throws ManagedException; - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IBankService.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IBankService.java deleted file mode 100644 index a464c98..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IBankService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; - -public interface IBankService { - /* - * description : this method will return a bank which is created - */ - Bank createBank(final Bank bank) throws ManagedException; - - /* description : this method will return a list of all banks - */ - List getBankDetails() throws ManagedException; - - /* - * description : this method will return a bank of given id - */ - Optional getBankDetailsByID(final long Id) throws ManagedException; - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java deleted file mode 100644 index 8256c10..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Customer; - -/** - * @author ram - * - */ -public interface ICustomerService { - /** - * description : this method will return a customer which is - * created - */ - Customer createCustomer(final Customer customer) throws ManagedException; - - /** - * description : this method will return a customer of specified id - */ - Customer getCustomerDetails(final Long id) throws ManagedException; - /* - * description : this method will return a customer of specified id with updation - * @throws CloneNotSupportedException ,ManagedException - */ - Customer updateCustomer(final Long id,final String name, final String userId ) throws ManagedException, CloneNotSupportedException; -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java deleted file mode 100644 index 85867ad..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -/** - * @author ram - * - */ -public interface IRefServcie { - - /** - * - * @param denomination - * @return - * @throws BankException - */ - - /** - * - * @return - * @throws ManagedException - */ - List returnAll() throws ManagedException; - void createDenomination(List list) throws ManagedException; - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java deleted file mode 100644 index 9e8c997..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; - -/** - * @author ram - * - */ -public interface ITransactionService { - /** - * method name : createTransaction return type : Transaction object parameter - * :Transaction description : this method will return a transaction which is - * created - */ - Transaction createTransaction(final Transaction trans) throws ManagedException; - - /** - * method name : generateTransactionReport return type : List - * Object description : this method will return a list which of transactions - */ - List generateTransactionReport(Long accountId) throws ManagedException; - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java deleted file mode 100644 index bc21cee..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; -import com.bank.repository.RefMoneyRepository; -@Service -public class RefServcieImpl implements IRefServcie { - -@Autowired -private RefMoneyRepository refRepo; - @Override - public void createDenomination(List list) throws ManagedException{ - for(BigDecimal denomination: list ) - { - //changes to be made after version chnage - if(!refRepo.findBydenomination(denomination).isPresent()) - { - RefMoney refMoney=new RefMoney(); - refMoney.setDenomination(denomination); - refRepo.save(refMoney); - //return true; - } - else - { - throw new ManagedException("Denomination already exist!!!!"); - } - } - } - - @Override - public List returnAll() throws ManagedException { - - List list=refRepo.findAll(); - if(list.isEmpty()) - { - throw new ManagedException("no denomination found"); - } - else - { - return list; - } - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 213e1ea..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.bank.service; - -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; -import com.bank.repository.TransactionRepository; -@Service -public class TransactionServiceImpl implements ITransactionService{ - final Logger LOGGER = LoggerFactory.getLogger(TransactionServiceImpl.class); - @Autowired - private TransactionRepository transact; - - @Override - public Transaction createTransaction(final Transaction trans) throws ManagedException { - - final Transaction newtransaction =transact.save(trans); - if(newtransaction!=null) - { - return newtransaction; - } - else - { - throw new ManagedException("no transaction has been created"); - } - } - - @Override - public List generateTransactionReport(Long accountId) throws ManagedException { - // TODO Auto-generated method stub - System.out.println(">>>>>>>>"+accountId); - List transopt=transact.findAllByAccountId(accountId); - System.out.println(">>>>>>>>"+transopt); - - return transopt; - } - -} diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/resources/application.properties b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/resources/application.properties deleted file mode 100644 index b8e2a66..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/resources/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/bankapp?useSSL=false -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true - -#Mongo -eureka.client.service-url.defaultZone=http://localhost:8762/eureka - - - - diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/resources/bootstrap.properties b/EurekaServerUsingRestTemplate/17BankInCapg/src/main/resources/bootstrap.properties deleted file mode 100644 index 39ea1a9..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/main/resources/bootstrap.properties +++ /dev/null @@ -1 +0,0 @@ -spring.application.name=bank-client \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java b/EurekaServerUsingRestTemplate/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java deleted file mode 100644 index c0e0570..0000000 --- a/EurekaServerUsingRestTemplate/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java +++ /dev/null @@ -1,227 +0,0 @@ -/*package com.bank.testcases; - - - - - - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Optional; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -import com.bank.Exception.ManagedException; -import com.bank.controller.CustomerController; -import com.bank.dto.ATMReq; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.service.ATMServiceImpl; -import com.bank.service.AccountServiceImpl; -import com.bank.service.BankServiceImpl; -import com.bank.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -@SpringBootConfiguration -@ComponentScan("application.properties") -public class AllTestCases { - - @Autowired - CustomerRepository customerRepository; - - @Autowired - CustomerServiceImpl customerServiceImpl; - - @Autowired - BankRepository bankRepository; - - @Autowired - BankServiceImpl bankServiceImpl; - - @Autowired - AccountRepository accountRepository; - - @Autowired - AccountServiceImpl accountServiceImpl; - - @Autowired - ATMRepository atmRepository; - - @Autowired - ATMServiceImpl atmServiceImpl; - - - @Test - public void createBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - when(bankRepository.save(bank)).thenReturn(bank); - // System.out.println(bank); - assertThat(bankServiceImpl.createBank(bank), is(notNullValue())); - } - - @Test - public void testAddBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - bankServiceImpl.createBank(bank); - - List departments = bankServiceImpl.getBankDetails(); - Assert.assertEquals(1, departments.size()); - } - - @Test - public void testAddCustomer() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - List employees = (List) customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(1, employees.size()); - } - - - @Test - public void testAddCustomerName() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getCustomerName(), employees.getCustomerName()); - } - RestTemplate restTemplate = new RestTemplate(); - @Autowired - CustomerController customerController; - - - - @Test - public void customerCreateRestTemplateTest() { - Customer customer = new Customer(); - customer.setCustomerName("Lokesh"); - customer.setPin(442001L); - - final String uri = "http://localhost:8080/customer/createCustomer"; - Optional ob = bankRepository.findById(1L); - Bank obj = ob.get(); - - CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest(customer,1L); - String result = restTemplate.postForObject(uri, createCustomerRequest, String.class); - - //System.out.println(result); - assertEquals(result, customerController.createCustomer(createCustomerRequest)); - } - - - - @Test - public void viewCustByRestTemplateTest() { - - final String uri = "http://localhost:8080/getCustomer"; - - RestTemplate restTemplate = new RestTemplate(); - String result = restTemplate.getForObject(uri, String.class); - System.out.println(result); - assertEquals(result, customerController.getCustomer(1L)); - } - - - - @Test - public void testAddCustomerpin() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getPin(), employees.getPin()); - } - - - @Test - public void testAddAccount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - List information = (List) accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(1, information.size()); - } - - @Test - public void testAddAccountAmount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAmount(), information.getAmount()); - } - - @Test - public void testAddAccountId() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAccountId(), information.getAccountId()); - } - - - @Test - public void createAtm() throws ManagedException { - Bank bank = new Bank(1L,new BigDecimal(1200)); - - Optional bnk = Optional.of(bank); - - ATM atm = new ATM(1L,new BigDecimal(5000), 1L); - - //ATMReq req = new ATMReq(1L,atm); - - - when(bankRepository.findById(Mockito.any(Long.class))).thenReturn(bnk); - when(atmRepository.save(atm)).thenReturn(atm); - assertThat(atmServiceImpl.createATM(atm), is(notNullValue())); - - } - - -}*/ \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/eurekaserver/.gitignore b/EurekaServerUsingRestTemplate/eurekaserver/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingRestTemplate/eurekaserver/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 zcmbTd1CXW7vMxN+wr$(CZCk5to71*!+jjS~ZJX1!ds=tCefGhB{(HVS`>u$J^~PFn zW>r>YRc2N`sUQsug7OUl0^-}ZZ-jr^e|{kUJj#ly2+~T*iO~apQ;-J#>z!{v|9nH? zexD9D~4A70;F%I|$?{aX9)~)7!NMGs_XtoO(D2z3Q#5Lmj zOYWk1b{iMmsdX30UFmYyZk1gWICVeOtk^$+{3U2(8gx?WA2F!EfBPf&|1?AJ|5Z>M zfUAk^zcf#n|9^4|J34286~NKrUt&c5cZ~iqE?PH7fW5tm3-qG$) z56%`QPSn!0RMV3)jjXfG^UQ}*^yBojH!}58lPlDclX5iUhf*|DV=~e*bl;(l$Wn@r zPE*iH(NK!e9KQcU$rRM}aJc?-&H1PO&vOs*=U+QVvwuk-=zr1x>;XpRCjSyC;{TWQ z|824V8t*^*{x=5yn^pP#-?k<5|7|4y&Pd44&e_TN&sxg@ENqpX0glclj&w%W04Jwp zwJ}#@ag^@h5VV4H5U@i7V#A*a;4bzM-y_rd{0WG#jRFPJU}(#&o8vo@uM+B+$>Tiq zei^5$wg8CVf{+_#Vh`yPx-6TmB~zT_nocS_Rb6&EYp*KjbN#-aP<~3j=NVuR)S1wm zdy3AWx2r9uww3eNJxT>{tdmY4#pLw`*`_fIwSu;yzFYP)=W6iawn`s*omzNbR?E&LyC17rFcjWp!M~p?;{v!78DTxtF85BK4dT< zA5p)Z%6O}mP?<%Z{>nZmbVEbomm zLgy;;N&!y>Dma2sqmbvz&KY-j&s~dd#mWGlNF%7}vS7yt>Dm{P=X zG>Pyv2D!ba0CcTI*G6-v?!0}`EWm1d?K)DgZIQk9eucI&lBtR))NxqVz)+hBR1b|7 zgv&^46cI?mgCvp>lY9W(nJT#^<*kY3o#Php1RZLY@ffmLLq3A!Yd}O~n@BhXVp`<5 zJx`BjR%Svv)Sih_8TFg-9F-Gg3^kQrpDGej@uT5%y_9NSsk5SW>7{>&11u(JZHsZO zZweI|!&qHl0;7qxijraQo=oV^Pi~bNlzx;~b2+hXreonWGD%C$fyHs+8d1kKN>TgB z{Mu?~E{=l1osx|_8P*yC>81_GB7>NS7UA+x2k_c*cU-$gQjR{+IU)z069Ic$<)ci< zb?+V#^-MK!0s~wRP|grx?P^8EZ(9Jt0iA{`uVS6fNo>b@as5_-?e766V}&)8ZOEVtKB z*HtHAqat+2lbJbEI#fl~`XKNIF&J?PHKq)A!z(#j%)Uby=5d!bQP)-Mr!0#J=FV%@9G#Cby%r#(S=23H#9d)5Ndy>pIXJ%si!D=m*-QQZ(O9~#Jhx#AS3 z&Vs+*E5>d+{ib4>FEd#L15-ovl*zV%SYSWF>Z}j!vGn=g%w0~3XvAK&$Dl@t5hiUa#mT(4s9-JF1l zPi5d2YmuFJ4S(O>g~H)5l_`%h3qm?+8MmhXA>GRN}7GX;$4(!WTkYZB=TA^8ZFh^d9_@x$fK4qenP!zzaqQ1^(GQ- zjC$P$B5o{q&-H8UH_$orJTv0}#|9ja(vW9gA%l|@alYk+Uth1ey*ax8wmV7U?^Z9? zsQMrEzP8|_s0=bii4wDWa7te&Vmh9T>fcUXJS|dD3Y$A`s-7kY!+idEa`zB) zaW*%xb+#}9INSa62(M1kwL=m_3E2T|l5Sm9QmON8ewxr#QR`;vOGCgyMsA8$O(;=U z#sEw)37duzeM#9_7l!ly#5c+Mu3{;<9%O{e z`+0*{COEF^py;f6)y6NX)gycj`uU9pdZMum9h(bS!zu1gDXdmF4{Og{u;d(Dr~Co1 z1tm@i#5?>oL}-weK1zJRlLv*+M?l=eI~Sp9vg{R6csq=3tYSB2pqB8 z=#p`us7r|uH=cZnGj|juceAu8J#vb+&UFLFmGn~9O|TNeGH>sboBl%JI9v(@^|45? zLvr2ha)NWP4yxV8K%dU(Ae=zl)qdGyz={$my;Vs6?4?2*1?&u!OFyFbAquv6@1e)~&Rp#Ww9O88!mrze((=@F?&BPl_u9gK4VlHo@4gLK_pGtEA(gO4YpIIWTrFN zqVi%Q{adXq^Ez~dZ0VUC>DW`pGtpTY<9tMd;}WZUhT1iy+S^TfHCWXGuDwAv1Ik85 zh3!tSlWU3*aLtmdf?g(#WnLvVCXW$>gnT_{(%VilR=#2VKh~S}+Po#ha9C*<-l~Fx z$EK{1SO8np&{JC)7hdM8O+C( zF^s3HskJz@p3ot`SPKA92PG!PmC2d|9xA!CZxR!rK9-QYYBGAM-Gj zCqzBaIjtOZ6gu+lA%**RI7to$x^s8xIx}VF96=<29CjWtsl;tmNbuHgrCyB^VzEIB zt@sqnl8Vg`pnMppL6vbjNNKc?BrH<)fxiZ|WrYW%cnz-FMENGzMI+)@l7dit?oP|Wu zg-oLcv~79=fdqEM!zK%lI=R7S!Do!HBaD+*h^ULWVB}4jr^e5oUqY`zA&NUvzseI% z+XCvzS+n|m7WJoyjXXk(PE8;i^r$#Pq|NFd!{g~m2OecA1&>$7SYFw z;}Q{`F3LCE34Z>5;5dDtz&2Z&w|B9fwvU<@S<BBo(L4SbDV#X3%uS+<2q7iH+0baiGzlVP5n0fBDP z7kx+7|Cws+?T|cw-pt~SIa7BRDI_ATZ9^aQS^1I?WfnfEHZ*sGlT#Wk9djDL?dWLA zk%(B?<8L?iV*1m803UW|*sU$raq<(!N!CrQ&y7?7_g zF2!aAfw5cWqO}AX)+v)5_GvQ$1W8MV8bTMr3P{^!96Q4*YhS}9ne|+3GxDJmZEo zqh;%RqD5&32iTh7kT>EEo_%`8BeK&)$eXQ-o+pFIP!?lee z&kos;Q)_afg1H&{X|FTQ0V z@yxv4KGGN)X|n|J+(P6Q`wmGB;J}bBY{+LKVDN9#+_w9s$>*$z)mVQDOTe#JG)Zz9*<$LGBZ-umW@5k5b zbIHp=SJ13oX%IU>2@oqcN?)?0AFN#ovwS^|hpf5EGk0#N<)uC{F}GG}%;clhikp2* zu6ra2gL@2foI>7sL`(x5Q)@K2$nG$S?g`+JK(Q0hNjw9>kDM|Gpjmy=Sw5&{x5$&b zE%T6x(9i|z4?fMDhb%$*CIe2LvVjuHca`MiMcC|+IU51XfLx(BMMdLBq_ z65RKiOC$0w-t)Cyz0i-HEZpkfr$>LK%s5kga^FIY_|fadzu*r^$MkNMc!wMAz3b4P+Z3s(z^(%(04}dU>ef$Xmof(A|XXLbR z2`&3VeR1&jjKTut_i?rR_47Z`|1#$NE$&x#;NQM|hxDZ>biQ*+lg5E62o65ILRnOOOcz%Q;X$MJ?G5dYmk$oL_bONX4 zT^0yom^=NsRO^c$l02#s0T^dAAS&yYiA=;rLx;{ro6w08EeTdVF@j^}Bl;o=`L%h! zMKIUv(!a+>G^L3{z7^v3W$FUUHA+-AMv~<}e?2?VG|!itU~T>HcOKaqknSog zE}yY1^VrdNna1B6qA`s?grI>Y4W%)N;~*MH35iKGAp*gtkg=FE*mFDr5n2vbhwE|4 zZ!_Ss*NMZdOKsMRT=uU{bHGY%Gi=K{OD(YPa@i}RCc+mExn zQogd@w%>14cfQrB@d5G#>Lz1wEg?jJ0|(RwBzD74Eij@%3lyoBXVJpB{q0vHFmE7^ zc91!c%pt&uLa|(NyGF2_L6T{!xih@hpK;7B&bJ#oZM0`{T6D9)J2IXxP?DODPdc+T zC>+Zq8O%DXd5Gog2(s$BDE3suv=~s__JQnX@uGt+1r!vPd^MM}=0((G+QopU?VWgR zqj8EF0?sC`&&Nv-m-nagB}UhXPJUBn-UaDW9;(IX#)uc zL*h%hG>ry@a|U=^=7%k%V{n=eJ%Nl0Oqs!h^>_PgNbD>m;+b)XAk+4Cp=qYxTKDv& zq1soWt*hFf%X8}MpQZL-Lg7jc0?CcWuvAOE(i^j1Km^m8tav)lMx1GF{?J#*xwms2 z3N_KN-31f;@JcW(fTA`J5l$&Q8x{gb=9frpE8K0*0Rm;yzHnDY0J{EvLRF0 zRo6ca)gfv6C)@D#1I|tgL~uHJNA-{hwJQXS?Kw=8LU1J$)nQ-&Jhwxpe+%WeL@j0q z?)92i;tvzRki1P2#poL;YI?9DjGM4qvfpsHZQkJ{J^GNQCEgUn&Sg=966 zq?$JeQT+vq%zuq%%7JiQq(U!;Bsu% zzW%~rSk1e+_t89wUQOW<8%i|5_uSlI7BcpAO20?%EhjF%s%EE8aY15u(IC za2lfHgwc;nYnES7SD&Lf5IyZvj_gCpk47H}e05)rRbfh(K$!jv69r5oI| z?){!<{InPJF6m|KOe5R6++UPlf(KUeb+*gTPCvE6! z(wMCuOX{|-p(b~)zmNcTO%FA z$-6}lkc*MKjIJ(Fyj^jkrjVPS);3Qyq~;O$p+XT+m~0$HsjB@}3}r*h(8wGbH9ktQ zbaiiMSJf`6esxC3`u@nNqvxP1nBwerm|KN)aBzu$8v_liZ0(G8}*jB zv<8J%^S2E_cu+Wp1;gT66rI$>EwubN4I(Lo$t8kzF@?r0xu8JX`tUCpaZi(Q0~_^K zs6pBkie9~06l>(Jpy*d&;ZH{HJ^Ww6>Hs!DEcD{AO42KX(rTaj)0ox`;>}SRrt)N5 zX)8L4Fg)Y6EX?He?I`oHeQiGJRmWOAboAC4Jaf;FXzspuG{+3!lUW8?IY>3%)O546 z5}G94dk)Y>d_%DcszEgADP z8%?i~Ak~GQ!s(A4eVwxPxYy3|I~3I=7jf`yCDEk_W@yfaKjGmPdM}($H#8xGbi3l3 z5#?bjI$=*qS~odY6IqL-Q{=gdr2B5FVq7!lX}#Lw**Pyk!`PHN7M3Lp2c=T4l}?kn zVNWyrIb(k&`CckYH;dcAY7-kZ^47EPY6{K(&jBj1Jm>t$FD=u9U z#LI%MnI3wPice+0WeS5FDi<>~6&jlqx=)@n=g5TZVYdL@2BW3w{Q%MkE%sx}=1ihvj(HDjpx!*qqta?R?| zZ(Ju_SsUPK(ZK*&EdAE(Fj%eABf2+T>*fZ6;TBP%$xr(qv;}N@%vd5iGbzOgyMCk* z3X|-CcAz%}GQHalIwd<-FXzA3btVs-_;!9v7QP)V$ruRAURJhMlw7IO@SNM~UD)2= zv}eqKB^kiB))Yhh%v}$ubb#HBQHg3JMpgNF+pN*QbIx(Rx1ofpVIL5Y{)0y&bMO(@ zyK1vv{8CJQidtiI?rgYVynw{knuc!EoQ5-eete(AmM`32lI7{#eS#!otMBRl21|g^SVHWljl8jU?GU@#pYMIqrt3mF|SSYI&I+Vz|%xuXv8;pHg zlzFl!CZ>X%V#KWL3+-743fzYJY)FkKz>GJ<#uKB)6O8NbufCW%8&bQ^=8fHYfE(lY z1Fl@4l%|iaTqu=g7tTVk)wxjosZf2tZ2`8xs9a$b1X29h!9QP#WaP#~hRNL>=IZO@SX4uYQR_c0pSt89qQR@8gJhL*iXBTSBDtlsiNvc_ewvY-cm%bd&sJTnd@hE zwBGvqGW$X^oD~%`b@yeLW%An*as@4QzwdrpKY9-E%5PLqvO6B+bf>ph+TWiPD?8Ju z-V}p@%LcX{e)?*0o~#!S%XU<+9j>3{1gfU=%sHXhukgH+9z!)AOH_A{H3M}wmfmU8 z&9jjfwT-@iRwCbIEwNP4zQHvX3v-d*y87LoudeB9Jh5+mf9Mnj@*ZCpwpQ*2Z9kBWdL19Od7q|Hdbwv+zP*FuY zQc4CJ6}NIz7W+&BrB5V%{4Ty$#gf#V<%|igk)b@OV`0@<)cj(tl8~lLtt^c^l4{qP z=+n&U0LtyRpmg(_8Qo|3aXCW77i#f{VB?JO3nG!IpQ0Y~m!jBRchn`u>HfQuJwNll zVAMY5XHOX8T?hO@7Vp3b$H)uEOy{AMdsymZ=q)bJ%n&1;>4%GAjnju}Osg@ac*O?$ zpu9dxg-*L(%G^LSMhdnu=K)6ySa|}fPA@*Saj}Z>2Dlk~3%K(Py3yDG7wKij!7zVp zUZ@h$V0wJ|BvKc#AMLqMleA*+$rN%#d95$I;;Iy4PO6Cih{Usrvwt2P0lh!XUx~PGNySbq#P%`8 zb~INQw3Woiu#ONp_p!vp3vDl^#ItB06tRXw88L}lJV)EruM*!ZROYtrJHj!X@K$zJ zp?Tb=Dj_x1^)&>e@yn{^$B93%dFk~$Q|0^$=qT~WaEU-|YZZzi`=>oTodWz>#%%Xk z(GpkgQEJAibV%jL#dU)#87T0HOATp~V<(hV+CcO?GWZ_tOVjaCN13VQbCQo=Dt9cG znSF9X-~WMYDd66Rg8Ktop~CyS7@Pj@Vr<#Ja4zcq1}FIoW$@3mfd;rY_Ak^gzwqqD z^4<_kC2Eyd#=i8_-iZ&g_e#$P`;4v zduoZTdyRyEZ-5WOJwG-bfw*;7L7VXUZ8aIA{S3~?()Yly@ga|-v%?@2vQ;v&BVZlo7 z49aIo^>Cv=gp)o?3qOraF_HFQ$lO9vHVJHSqq4bNNL5j%YH*ok`>ah?-yjdEqtWPo z+8i0$RW|$z)pA_vvR%IVz4r$bG2kSVM&Z;@U*{Lug-ShiC+IScOl?O&8aFYXjs!(O z^xTJ|QgnnC2!|xtW*UOI#vInXJE!ZpDob9x`$ox|(r#A<5nqbnE)i<6#(=p?C~P-7 zBJN5xp$$)g^l};@EmMIe;PnE=vmPsTRMaMK;K`YTPGP0na6iGBR8bF%;crF3>ZPoLrlQytOQrfTAhp;g){Mr$zce#CA`sg^R1AT@tki!m1V zel8#WUNZfj(Fa#lT*nT>^pY*K7LxDql_!IUB@!u?F&(tfPspwuNRvGdC@z&Jg0(-N z(oBb3QX4em;U=P5G?Y~uIw@E7vUxBF-Ti*ccU05WZ7`m=#4?_38~VZvK2{MW*3I#fXoFG3?%B;ki#l%i#$G_bwYQR-4w>y;2` zMPWDvmL6|DP1GVXY)x+z8(hqaV5RloGn$l&imhzZEZP6v^d4qAgbQ~bHZEewbU~Z2 zGt?j~7`0?3DgK+)tAiA8rEst>p#;)W=V+8m+%}E$p-x#)mZa#{c^3pgZ9Cg}R@XB) zy_l7jHpy(u;fb+!EkZs6@Z?uEK+$x3Ehc8%~#4V?0AG0l(vy{8u@Md5r!O+5t zsa{*GBn?~+l4>rChlbuT9xzEx2yO_g!ARJO&;rZcfjzxpA0Chj!9rI_ZD!j` z6P@MWdDv&;-X5X8o2+9t%0f1vJk3R~7g8qL%-MY9+NCvQb)%(uPK4;>y4tozQ2Dl* zEoR_1#S~oFrd9s%NOkoS8$>EQV|uE<9U*1uqAYWCZigiGlMK~vSUU}f5M9o{<*WW? z$kP)2nG$My*fUNX3SE!g7^r#zTT^mVa#A*5sBP8kz4se+o3y}`EIa)6)VpKmto6Ew z1J-r2$%PM4XUaASlgVNv{BBeL{CqJfFO|+QpkvsvVBdCA7|vlwzf1p$Vq50$Vy*O+ z5Eb85s^J2MMVj53l4_?&Wpd1?faYE-X1ml-FNO-|a;ZRM*Vp!(ods{DY6~yRq%{*< zgq5#k|KJ70q47aO1o{*gKrMHt)6+m(qJi#(rAUw0Uy8~z8IX)>9&PTxhLzh#Oh*vZ zPd1b$Z&R{yc&TF^x?iQCw#tV}la&8^W)B*QZ${19LlRYgu#nF7Zj`~CtO^0S#xp+r zLYwM~si$I>+L}5gLGhN=dyAKO)KqPNXUOeFm#o+3 z&#!bD%aTBT@&;CD_5MMC&_Yi+d@nfuxWSKnYh0%~{EU`K&DLx}ZNI2osu#(gOF2}2 zZG#DdQ|k0vXj|PxxXg-MYSi9gI|hxI%iP)YF2$o< zeiC8qgODpT?j!l*pj_G(zXY2Kevy~q=C-SyPV$~s#f-PW2>yL}7V+0Iu^wH;AiI$W zcZDeX<2q%!-;Ah!x_Ld;bR@`bR4<`FTXYD(%@CI#biP z5BvN;=%AmP;G0>TpInP3gjTJanln8R9CNYJ#ziKhj(+V33zZorYh0QR{=jpSSVnSt zGt9Y7Bnb#Ke$slZGDKti&^XHptgL7 zkS)+b>fuz)B8Lwv&JV*};WcE2XRS63@Vv8V5vXeNsX5JB?e|7dy$DR9*J#J= zpKL@U)Kx?Y3C?A3oNyJ5S*L+_pG4+X*-P!Er~=Tq7=?t&wwky3=!x!~wkV$Ufm(N| z1HY?`Ik8?>%rf$6&0pxq8bQl16Jk*pwP`qs~x~Trcstqe-^hztuXOG zrYfI7ZKvK$eHWi9d{C${HirZ6JU_B`f$v@SJhq?mPpC-viPMpAVwE;v|G|rqJrE5p zRVf904-q{rjQ=P*MVKXIj7PSUEzu_jFvTksQ+BsRlArK&A*=>wZPK3T{Ki-=&WWX= z7x3VMFaCV5;Z=X&(s&M^6K=+t^W=1>_FFrIjwjQtlA|-wuN7&^v1ymny{51gZf4-V zU8|NSQuz!t<`JE%Qbs||u-6T*b*>%VZRWsLPk&umJ@?Noo5#{z$8Q0oTIv00`2A`# zrWm^tAp}17z72^NDu^95q1K)6Yl`Wvi-EZA+*i&8%HeLi*^9f$W;f1VF^Y*W;$3dk|eLMVb_H{;0f*w!SZMoon+#=CStnG-7ZU8V>Iy( zmk;42e941mi7!e>J0~5`=NMs5g)WrdUo^7sqtEvwz8>H$qk=nj(pMvAb4&hxobPA~p&-L5a_pTs&-0XCm zKXZ8BkkriiwE)L2CN$O-`#b15yhuQO7f_WdmmG<-lKeTBq_LojE&)|sqf;dt;llff znf|C$@+knhV_QYVxjq*>y@pDK|DuZg^L{eIgMZnyTEoe3hCgVMd|u)>9knXeBsbP_$(guzw>eV{?5l$ z063cqIysrx82-s6k;vE?0jxzV{@`jY3|*Wp?EdNUMl0#cBP$~CHqv$~sB5%50`m(( zSfD%qnxbGNM2MCwB+KA?F>u__Ti>vD%k0#C*Unf?d)bBG6-PYM!!q;_?YWptPiHo} z8q3M~_y9M6&&0#&uatQD6?dODSU)%_rHen`ANb z{*-xROTC1f9d!8`LsF&3jf{OE8~#;>BxHnOmR}D80c2Eh zd867kq@O$I#zEm!CCZJw8S`mCx}HrCl_Rh4Hsk{Cb_vJ4VA3GK+icku z%lgw)Y@$A0kzEV^#=Zj8i6jPk&Mt_bKDD!jqY3&W(*IPbzYu$@x$|3*aP{$bz-~xE^AOxtbyWvzwaCOHv6+99llI&xT_8)qX3u|y|0rDV z(Hu*#5#cN0mw4OSdY$g_xHo-zyZ-8WW&4r%qW(=5N>0O-t{k;#G9X81F~ynLV__Kz zbW1MA>Pjg0;3V?iV+-zQsll_0jimGuD|0GNW^av|4yes(PkR1bGZwO6xvgCy}ThR7?d&$N`kA3N!Xn5uSKKCT-`{lE1ZYYy?GzL}WF+mh|sgT6K2Z*c9YB zFSpGRNgYvk&#<2@G(vUM5GB|g?gk~-w+I4C{vGu{`%fiNuZIeu@V1qt`-x$E?OR;zu866Y@2^et5GTNCpX#3D=|jD5>lT^vD$ zr}{lRL#Lh4g45Yj43Vs7rxUb*kWC?bpKE1@75OJQ=XahF z5(C0DyF;at%HtwMTyL!*vq6CLGBi^Ey}Mx39TC2$a)UmekKDs&!h>4Hp2TmSUi!xo zWYGmyG)`$|PeDuEL3C6coVtit>%peYQ6S1F4AcA*F`OA;qM+1U6UaAI(0VbW#!q9* zz82f@(t35JH!N|P4_#WKK6Rc6H&5blD6XA&qXahn{AP=oKncRgH!&=b6WDz?eexo* z9pzh}_aBc_R&dZ+OLk+2mK-5UhF`>}{KN7nOxb{-1 zd`S-o1wgCh7k0u%QY&zoZH}!<;~!)3KTs-KYRg}MKP3Vl%p$e6*MOXLKhy)<1F5L* z+!IH!RHQKdpbT8@NA+BFd=!T==lzMU95xIyJ13Z6zysYQ1&zzH!$BNU(GUm1QKqm< zTo#f%;gJ@*o;{#swM4lKC(QQ<%@;7FBskc7$5}W9Bi=0heaVvuvz$Ml$TR8@}qVn>72?6W1VAc{Mt}M zkyTBhk|?V}z`z$;hFRu8Vq;IvnChm+no@^y9C1uugsSU`0`46G#kSN9>l_ozgzyqc zZnEVj_a-?v@?JmH1&c=~>-v^*zmt`_@3J^eF4e))l>}t2u4L`rueBR=jY9gZM;`nV z>z(i<0eedu2|u-*#`SH9lRJ7hhDI=unc z?g^30aePzkL`~hdH*V7IkDGnmHzVr%Q{d7sfb7(|)F}ijXMa7qg!3eHex)_-$X;~* z>Zd8WcNqR>!`m#~Xp;r4cjvfR{i04$&f1)7sgen9i>Y|3)DCt^f)`uq@!(SG?w|tdSLS+<;ID74 zTq8FJYHJHrhSwvKL|O1ZnSbG-=l6Eg-Suv60Xc;*bq~g+LYk*Q&e)tR_h3!(y)O}$ zLi*i5ec^uHkd)fz2KWiR;{RosL%peU`TxM7w*M9m#rAiG`M)FTB>=X@|A`7x)zn5- z$MB5>0qbweFB249EI@!zL~I7JSTZbzjSMMJ=!DrzgCS!+FeaLvx~jZXwR`BFxZ~+A z=!Pifk?+2awS3DVi32fgZRaqXZq2^->izZpIa1sEog@01#TuEzq%*v359787rZoC( z9%`mDR^Hdxb%XzUt&cJN3>Cl{wmv{@(h>R38qri1jLKds0d|I?%Mmhu2pLy=< zOkKo4UdS`E9Y~z3z{5_K+j~i7Ou}q0?Qv4YebBya1%VkkWzR%+oB!c?9(Ydaka32! zTEv*zgrNWs`|~Q{h?O|8s0Clv{Kg0$&U}?VFLkGg_y=0Qx#=P${6SNQFp!tDsTAPV z0Ra{(2I7LAoynS0GgeQ6_)?rYhUy}AE^$gwmg?i!x#<9eP=0N=>ZgB#LV9|aH8q#B za|O-vu(GR|$6Ty!mKtIfqWRS-RO4M0wwcSr9*)2A5`ZyAq1`;6Yo)PmDLstI zL2%^$1ikF}0w^)h&000z8Uc7bKN6^q3NBfZETM+CmMTMU`2f^a#BqoYm>bNXDxQ z`3s6f6zi5sj70>rMV-Mp$}lP|jm6Zxg}Sa*$gNGH)c-upqOC7vdwhw}e?`MEMdyaC zP-`+83ke+stJPTsknz0~Hr8ea+iL>2CxK-%tt&NIO-BvVt0+&zsr9xbguP-{3uW#$ z<&0$qcOgS{J|qTnP;&!vWtyvEIi!+IpD2G%Zs>;k#+d|wbodASsmHX_F#z?^$)zN5 zpQSLH`x4qglYj*{_=8p>!q39x(y`B2s$&MFQ>lNXuhth=8}R}Ck;1}MI2joNIz1h| zjlW@TIPxM_7 zKBG{Thg9AP%B2^OFC~3LG$3odFn_mr-w2v**>Ub7da@>xY&kTq;IGPK5;^_bY5BP~ z2fiPzvC&osO@RL)io905e4pY3Yq2%j&)cfqk|($w`l`7Pb@407?5%zIS9rDgVFfx! zo89sD58PGBa$S$Lt?@8-AzR)V{@Q#COHi-EKAa5v!WJtJSa3-Wo`#TR%I#UUb=>j2 z7o-PYd_OrbZ~3K`pn*aw2)XKfuZnUr(9*J<%z@WgC?fexFu%UY!Yxi6-63kAk7nsM zlrr5RjxV45AM~MPIJQqKpl6QmABgL~E+pMswV+Knrn!0T)Ojw{<(yD8{S|$(#Z!xX zpH9_Q>5MoBKjG%zzD*b6-v>z&GK8Dfh-0oW4tr(AwFsR(PHw_F^k((%TdkglzWR`iWX>hT1rSX;F90?IN4&}YIMR^XF-CEM(o(W@P#n?HF z!Ey(gDD_0vl+{DDDhPsxspBcks^JCEJ$X74}9MsLt=S?s3)m zQ0cSrmU*<u;KMgi1(@Ip7nX@4Zq>yz;E<(M8-d0ksf0a2Ig8w2N-T69?f}j}ufew}LYD zxr7FF3R7yV0Gu^%pXS^49){xT(nPupa(8aB1>tfKUxn{6m@m1lD>AYVP=<)fI_1Hp zIXJW9gqOV;iY$C&d=8V)JJIv9B;Cyp7cE}gOoz47P)h)Y?HIE73gOHmotX1WKFOvk z5(t$Wh^13vl;+pnYvJGDz&_0Hd3Z4;Iwa-i3p|*RN7n?VJ(whUPdW>Z-;6)Re8n2# z-mvf6o!?>6wheB9q}v~&dvd0V`8x&pQkUuK_D?Hw^j;RM-bi_`5eQE5AOIzG0y`Hr zceFx7x-<*yfAk|XDgPyOkJ?){VGnT`7$LeSO!n|o=;?W4SaGHt4ngsy@=h-_(^qX)(0u=Duy02~Fr}XWzKB5nkU$y`$67%d^(`GrAYwJ? zN75&RKTlGC%FP27M06zzm}Y6l2(iE*T6kdZPzneMK9~m)s7J^#Q=B(Okqm1xB7wy< zNC>)8Tr$IG3Q7?bxF%$vO1Y^Qhy>ZUwUmIW5J4=ZxC|U)R+zg4OD$pnQ{cD`lp+MM zS3RitxImPC0)C|_d18Shpt$RL5iIK~H z)F39SLwX^vpz;Dcl0*WK*$h%t0FVt`Wkn<=rQ6@wht+6|3?Yh*EUe+3ISF zbbV(J6NNG?VNIXC)AE#(m$5Q?&@mjIzw_9V!g0#+F?)2LW2+_rf>O&`o;DA!O39Rg ziOyYKXbDK!{#+cj_j{g;|IF`G77qoNBMl8r@EIUBf+7M|eND2#Y#-x=N_k3a52*fi zp-8K}C~U4$$76)@;@M@6ZF*IftXfwyZ0V+6QESKslI-u!+R+?PV=#65d04(UI%}`r z{q6{Q#z~xOh}J=@ZN<07>bOdbSI(Tfcu|gZ?{YVVcOPTTVV52>&GrxwumlIek}OL? zeGFo#sd|C_=JV#Cu^l9$fSlH*?X|e?MdAj8Uw^@Dh6+eJa?A?2Z#)K zvr7I|GqB~N_NU~GZ?o1A+fc@%HlF$71Bz{jOC{B*x=?TsmF0DbFiNcnIuRENZA43a zfFR89OAhqSn|1~L4sA9nVHsFV4xdIY_Ix>v0|gdP(tJ^7ifMR_2i4McL#;94*tSY) zbwcRqCo$AnpV)qGHZ~Iw_2Q1uDS2XvFff#5BXjO!w&1C^$Pv^HwXT~vN0l}QsTFOz zp|y%Om9}{#!%cPR8d8sc4Y@BM+smy{aU#SHY>>2oh1pK+%DhPqc2)`!?wF{8(K$=~ z<4Sq&*`ThyQETvmt^NaN{Ef2FQ)*)|ywK%o-@1Q9PQ_)$nJqzHjxk4}L zJRnK{sYP4Wy(5Xiw*@M^=SUS9iCbSS(P{bKcfQ(vU?F~)j{~tD>z2I#!`eFrSHf;v zquo)*?AW$#+qP}n$%<{;wr$()*yw5N`8_rOTs^kOqyY;dIjsdw*6k_mL}v2V9C_*sK<_L8 za<3)C%4nRybn^plZ(y?erFuRVE9g%mzsJzEi5CTx?wwx@dpDFSOAubRa_#m+=AzZ~ z^0W#O2zIvWEkxf^QF660(Gy8eyS`R$N#K)`J732O1rK4YHBmh|7zZ`!+_91uj&3d} zKUqDuDQ8YCmvx-Jv*$H%{MrhM zw`g@pJYDvZp6`2zsZ(dm)<*5p3nup(AE6}i#Oh=;dhOA=V7E}98CO<1Lp3*+&0^`P zs}2;DZ15cuT($%cwznqmtTvCvzazAVu5Ub5YVn#Oo1X|&MsVvz8c5iwRi43-d3T%tMhcK#ke{i-MYad@M~0B_p`Iq){RLadp-6!peP^OYHTq~^vM zqTr5=CMAw|k3QxxiH;`*;@GOl(PXrt(y@7xo$)a3Fq4_xRM_3+44!#E zO-YL^m*@}MVI$5PM|N8Z2kt-smM>Jj@Dkg5%`lYidMIbt4v=Miqj4-sEE z)1*5VCqF1I{KZVw`U0Wa!+)|uiOM|=gM65??+k|{E6%76MqT>T+;z{*&^5Q9ikL2D zN2}U$UY)=rIyUnWo=yQ@55#sCZeAC}cQA(tg5ZhqLtu*z>4}mbfoZ>JOj-|a2fR$L zQ(7N$spJL_BHb6Bf%ieO10~pQX%@^WKmQOQNOUe4h|M}XOTRL`^QVpN$MjJ7t+UdP zDdzcK3e7_fdv)PPR>O|-`kVC1_O08_WGcQXj*W5d?}3yE?-fZ_@mE-zcq6^Mn49!; zDDcus*@4dFIyZ%_d3*MO=kk3$MQ^?zaDR1-o<<7T=;`8 zz2(w>U9IQ+pZ<*B;4dE@LnlF7YwNG>la#rQ@mC4u@@0_pf40+<&t)+9(YOgCP9(aJ z5v7SRi(y4;fWR)oHRxf2|Va=?P zXq&7GtTYd+3U{Wm5?#e7gDwz#OFbvHL4Jq{BGhNYzh|U!1$_WEJef&NKDD9)*$d+e ztXF1-rvO5OBm{g9Mo8x?^YB;J|G*~3m@2y%Fyx6eb*O^lW- z`JUL?!exvd&SL_w89KoQxw5ZZ}7$FD4s>z`!3R}6vcFf0lWNYjH$#P z<)0DiPN%ASTkjWqlBB;8?RX+X+y>z*$H@l%_-0-}UJ>9l$`=+*lIln9lMi%Q7CK-3 z;bsfk5N?k~;PrMo)_!+-PO&)y-pbaIjn;oSYMM2dWJMX6tsA5>3QNGQII^3->manx z(J+2-G~b34{1^sgxplkf>?@Me476Wwog~$mri{^`b3K0p+sxG4oKSwG zbl!m9DE87k>gd9WK#bURBx%`(=$J!4d*;!0&q;LW82;wX{}KbPAZtt86v(tum_1hN z0{g%T0|c(PaSb+NAF^JX;-?=e$Lm4PAi|v%(9uXMU>IbAlv*f{Ye3USUIkK`^A=Vn zd))fSFUex3D@nsdx6-@cfO1%yfr4+0B!uZ)cHCJdZNcsl%q9;#%k@1jh9TGHRnH2(ef0~sB(`82IC_71#zbg=NL$r=_9UD-~ z8c54_zA@jEhkJpL?U`$p&|XF}OpRvr`~}+^BYBtiFB1!;FX;a3=7jkFSET)41C@V` zxhfS)O-$jRJ|R}CL{=N{{^0~c8WuLOC?`>JKmFGi?dlfss4Y^AAtV#FoLvWoHsEeg zAAOc+PXl@WoSOOu_6Tz~K=>OK@KL#^re(1oPrhcen@+#ouGG|g(;A5(SVuE~rp$?# zR$o(46m}O~QtU{!N-s}RfYh+?*m9v#w@;=DEXI;!CEf0bHEgI<~T7&VnIvtG%o=s@3c zG1AT(J>!bph%Z1^xT_aO>@%jWnTW=8Z^2k0?aJ(8R5VA}H+mDh>$b9ua{)I5X9$%b z&O%F;3AIW&9j3=Q1#8uL%4_2mc3xX2AdzYJi%#Q#PEY3lk<#u=Pc?EJ7qt4WZX)bH481F8hwMr^9C^N8KUiWIgcVa=V` z4_7By=0Fkq>M6N?Bis+nc$YOqN4Qs@KDdQCy0TTi;SQ7^#<wi9E4T)##ZVvS(SK4#6j^QjHIUh<0_ZD2Yl+t?Z2;4zA zvI<(>jLvJae#sIA`qHl0lnkcU$>Rrkcnp{E;VZwW`cucIIWi{hftjEx-7>xXWRsa4VH(CCyuleyG8a+wOY8l*y>n@ zxZb}o=p9lR)9N^FKfkvPH-t2{qDE=hG8Z!`JO>6aJ^hKJVyIV&qGo*YSpoU(d)&OE ziv2#o`&W>(IK~sH{_5aPL;qcn{2%Gae+r5G4yMl5U)EB>ZidEo|F@f)70WN%Pxo`= zQ+U-W9}iLlF=`VeGD0*EpI!(lVJHy(%9yFZkS_GMSF?J*$bq+2vW37rwn;9?9%g(Jhwc<`lHvf6@SfnQaA&aF=los z0>hw9*P}3mWaZ|N5+NXIqz#8EtCtYf-szHPI`%!HhjmeCnZCim3$IX?5Il%muqrPr zyUS#WRB(?RNxImUZHdS&sF8%5wkd0RIb*O#0HH zeH~m^Rxe1;4d(~&pWGyPBxAr}E(wVwlmCs*uyeB2mcsCT%kwX|8&Pygda=T}x{%^7 z)5lE5jl0|DKd|4N*_!(ZLrDL5Lp&WjO7B($n9!_R3H(B$7*D zLV}bNCevduAk2pJfxjpEUCw;q$yK=X-gH^$2f}NQyl(9ymTq>xq!x0a7-EitRR3OY zOYS2Qh?{_J_zKEI!g0gz1B=_K4TABrliLu6nr-`w~g2#zb zh7qeBbkWznjeGKNgUS8^^w)uLv*jd8eH~cG-wMN+{*42Z{m(E{)>K7O{rLflN(vC~ zRcceKP!kd)80=8ttH@14>_q|L&x0K^N0Ty{9~+c>m0S<$R@e11>wu&=*Uc^^`dE9RnW+)N$re2(N@%&3A?!JdI?Vx;X=8&1+=;krE8o%t z32Gi2=|qi=F?kmSo19LqgEPC5kGeJ5+<3TpUXV3Yik_6(^;SJw=Cz`dq(LN)F9G<$ za-aTiEiE}H(a>WITnJ+qG$3eCqrKgXFRiIv=@1C4zGNV!+ z{{7_AulEPXdR+~$sJ+yHA73j_w^4>UHZFnK$xsp}YtpklHa57+9!NfhOuU7m4@WQp z5_qb`)p|6atW#^b;KIj?8mWxF(!eN<#8h=Ohzw&bagGAS4;O^;d-~#Ct0*gpp_4&( ztwlS2Jf#9i>=e5+X8QSy**-JE&6{$GlkjNzNJY;K5&h|iDT-6%4@g;*JK&oA8auCovoA0+S(t~|vpG$yI+;aKSa{{Y(Tnm{ zzWuo^wgB?@?S9oKub=|NZNEDc;5v@IL*DBqaMkgn@z+IeaE^&%fZ0ZGLFYEubRxP0WG`S| zRCRXWt+ArtBMCRqB725odpDu(qdG;jez|6*MZE_Ml<4ehK_$06#r3*=zC9q}YtZ*S zBEb2?=5|Tt;&QV^qXpaf?<;2>07JVaR^L9-|MG6y=U9k{8-^iS4-l_D(;~l=zLoq% zVw05cIVj1qTLpYcQH0wS1yQ47L4OoP;otb02V!HGZhPnzw`@TRACZZ_pfB#ez4wObPJYcc%W>L8Z*`$ZPypyFuHJRW>NAha3z?^PfHsbP*-XPPq|`h} zljm&0NB7EFFgWo%0qK`TAhp220MRLHof1zNXAP6At4n#(ts2F+B`SaIKOHzEBmCJ3 z$7Z&kYcKWH&T!=#s5C8C_UMQ4F^CFeacQ{e0bG?p5J~*mOvg>zy_C{A4sbf!JT+JK z>9kMi=5@{1To&ILA)1wwVpOJ&%@yfuRwC9cD2`0CmsURi5pr2nYb6oBY&EmL9Gd@i zj{F}h!T*#a<@6mKzogszCSUCq5pxGeCq-w2|M>ZzLft79&A-&!AH~#ER1?Z=ZavC0 z)V05~!^Nl{E5wrkBLnrxLoO|AG&hoOa6AV2{KWL#X*UItj_W`}DEbIUxa;huN0S#` zUtXHi+cPyg-=Gad`2Aw-HWO*;`_&j9B3GHLy(f^@Do@Wu*5{FANC+>M*e6(YAz4k^ zcb_n4oJgrykBM1T!VN(2`&(rNBh+UcE}oL@A~Fj}xf0|qtJK?WzUk{t=M15p!)i7k zM!`qg^o;xR*VM49 zcY_1Yv0?~;V7`h7c&Rj;yapzw2+H%~-AhagWAfI0U`2d7$SXt=@8SEV_hpyni~8B| zmy7w?04R$7leh>WYSu8)oxD`88>7l=AWWJmm9iWfRO z!Aa*kd7^Z-3sEIny|bs9?8<1f)B$Xboi69*|j5E?lMH6PhhFTepWbjvh*7 zJEKyr89j`X>+v6k1O$NS-`gI;mQ(}DQdT*FCIIppRtRJd2|J?qHPGQut66-~F>RWs=TMIYl6K=k7`n1c%*gtLMgJM2|D;Hc|HNidlC>-nKm5q2 zBXyM)6euzXE&_r%C06K*fES5`6h-_u>4PZs^`^{bxR?=s!7Ld0`}aJ?Z6)7x1^ zt3Yi`DVtZ*({C;&E-sJ1W@dK29of-B1lIm)MV4F?HkZ_3t|LrpIuG~IZdWO@(2S6& zB2jA7qiiGi%HO2fU5|yY#aC<57DNc7T%q9L>B_Qh@v#)x(?}*zr1f4C4p8>~v2JFR z8=g|BIpG$W)QEc#GV1A}_(>v&=KTqZbfm)rqdM>}3n%;mv2z*|8%@%u)nQWi>X=%m?>Thn;V**6wQEj#$rU&_?y|xoCLe4=2`e&7P16L7LluN^#&f1#Gsf<{` z>33Bc8LbllJfhhAR?d7*ej*Rty)DHwVG)3$&{XFKdG?O-C=-L9DG$*)_*hQicm`!o zib(R-F%e@mD*&V`$#MCK=$95r$}E<4%o6EHLxM0&K$=;Z#6Ag0Tcl9i+g`$Pcz&tP zgds)TewipwlXh0T)!e~d+ES8zuwFIChK+c4;{!RC4P(|E4$^#0V*HhXG80C;ZD-no z!u+uQ;GCpm^iAW&odDVeo+LJU6qc$4+CJ6b6T&Y^K3(O_bN{@A{&*c6>f6y@EJ+34 zscmnr_m{V`e8HdZ>xs*=g6DK)q2H5Xew?8h;k{)KBl;fO@c_1uRV>l#Xr+^vzgsub zMUo8k!cQ>m1BnO>TQ<)|oBHVATk|}^c&`sg>V5)u-}xK*TOg%E__w<*=|;?? z!WptKGk*fFIEE-G&d8-jh%~oau#B1T9hDK;1a*op&z+MxJbO!Bz8~+V&p-f8KYw!B zIC4g_&BzWI98tBn?!7pt4|{3tm@l+K-O>Jq08C6x(uA)nuJ22n`meK;#J`UK0b>(e z2jhQ{rY;qcOyNJR9qioLiRT51gfXchi2#J*wD3g+AeK>lm_<>4jHCC>*)lfiQzGtl zPjhB%U5c@-(o}k!hiTtqIJQXHiBc8W8yVkYFSuV_I(oJ|U2@*IxKB1*8gJCSs|PS+EIlo~NEbD+RJ^T1 z@{_k(?!kjYU~8W&!;k1=Q+R-PDVW#EYa(xBJ2s8GKOk#QR92^EQ_p-?j2lBlArQgT z0RzL+zbx-Y>6^EYF-3F8`Z*qwIi_-B5ntw#~M}Q)kE% z@aDhS7%)rc#~=3b3TW~c_O8u!RnVEE10YdEBa!5@&)?!J0B{!Sg}Qh$2`7bZR_atZ zV0Nl8TBf4BfJ*2p_Xw+h;rK@{unC5$0%X}1U?=9!fc2j_qu13bL+5_?jg+f$u%)ZbkVg2a`{ZwQCdJhq%STYsK*R*aQKU z=lOv?*JBD5wQvdQIObh!v>HG3T&>vIWiT?@cp$SwbDoV(?STo3x^DR4Yq=9@L5NnN z_C?fdf!HDWyv(?Uw={r`jtv_67bQ5WLFEsf@p!P3pKvnKh_D}X@WTX^xml)D^Sj8Er?RRo2GLWxu`-Bsc ztZ*OU?k$jdB|C6uJtJ#yFm{8!oAQj<0X}2I(9uuw#fiv5bdF$ZBOl@h<#V401H;_` zu5-9V`$k1Mk44+9|F}wIIjra8>7jLUQF|q zIi8JCWez)_hj3aHBMn6(scZd9q#I<3MZzv}Yjc^t_gtGunP?|mAs+s!nGtNlDQ?ZO zgtG2b3s#J8Wh#0z1E|n_(y*F5-s7_LM0Rj3atDhs4HqmZc|?8LDFFu}YWZ}^8D`Yi z`AgJWbQ)dK(Qn?%Z=YDi#f%pLZu_kRnLrC2Qu|V>iD=z=8Y%}YY=g8bb~&dj;h7(T zPhji+7=m2hP~Xw`%Ma7o#?jo#+{IY&YkSeg^os)9>3?ZB z|Bt1-;uj0%|M_9k;#6c+)a)0oA}8+=h^#A_o=QR@jX^|y`YIR9V8ppGX>)FS%X>eB zD&v$!{eebt&-}u8z2t`KZLno>+UPceqXzuZe2u zHYz7U9}_Sw2da@ugQjBJCp(MNp~mVSk>b9nN*8UE`)88xXr88KXWmTa;FKKrd{Zy> zqL}@fo*7-ImF(Ad!5W7Z#;QLsABck0s8aWQohc@PmX3TK#f$`734%ifVd{M!J1;%A z)qjpf=kxPgv5NpUuUyc=C%MzLufCgTEFXQawxJo)rv4xG&{TKfV;V#ggkxefi`{sS zX+NQ8yc>qcdU zUuLM~0x32S& z|NdQ-wE6O{{U-(dCn@}Ty2i=)pJeb-?bP+BGRkLHp&;`Vup!}`pJdth`04rFPy;$a zkU=wWy;P$BMzf+0DM(IbYh`Dk*60l?3LAU;z3I^tHbXtB5H$Op=VEPL8!mydG>$T@S9;?^}mmDK)+x*TCN_Z`%SG{Hv0;P*>(P@^xe2%mUldaqF9$ zG+Oq<5)pQ+V4%%R>bK|~veGY4T&ALmnT@W*I)aT~2(zk>&L9PVG9&;LdC%xAUA`gC4KOGLHiqxbxMTA^!+T*7G;rF z;7ZNc3t&xd!^{e|E(7-FHu@!VrWQ8CB=pP;#jG#yi6(!BfCV(rrY~7D)0vCp_Ra@9 zSuu)to5ArdCAYX}MU&4u6}*{oe=Ipe09Z7|z41Y&lh`olz{lmO>wZpnwx+x4!~7@37|N~@wr=Tqf*+}4H{7GE*BvptMyhTAwu?VYEaj~BiJm7 zQw98FiwJTx0`qY8Y+268mkV#!grHt3S_69w?1TRi-P^2iNv=ajmQIkoX7OkY=Cpvk zs;-Gv?R(YEAb(%@0tNz)_r8bwE zPh75RwYWr?wPZ0rkG<5WwX|fjqCBP4^etDs4{ZF9+|c#@Y60nB)I_U5Z$FYe=SLXI zn}7T@%LLA>*fWf9X?vSD3tpXSEk%H{*`ZmRik>=se}`HWHKL|HHiXovNzTS~-4e?1 zgVLCWv@)(($B*C3rGn`N#nzUyVrSw>OiD;4`i15QHhdicm}A(CP)UO>PO(3!(=v-x zrsKIUCbJMb>=IB}20b{69IdU(vQ%Ti0Zm?VLQoL++HK(G%^P{wuH;|@Cn7Ncybw%D zDhWh??1)6j5j7RbEy-{rVefvMhV|Su8n9`m>4LU^TanMzUIy>S&UbSKJW56C(K5NX z*Ypzh@KaMD=ank_G}Di5SaDTz3@Ze;5$pkK$7Pz?SBj&njRD4so5e0Msp_p}|D8aq zDvU@2s@T_?)?f5XEWS3j_%6%AK-4aXU5!Xzk{fL%mI~AYWP?q}8X}}ZV3ZzKLFvmm zOHWR3OY0l)pZ#y@qGPkjS~mGj&J8uJnU<~+n?qrBTsf>8jN~i17c~Ry=4wM6YrgqZ@h`8`?iL&$8#fYrt7MinX)gEl7Sh_TS zOW{AyVh%SzW|QYBJo8iEVrA!yL(Lm&j6GB0|c?~N{~?Qyj^qjbs>E~lpWo!q!lNwfr(DPZVe zaazh2J{{o=*AQ|Wxz*!pBwYx_9+G$12{5G3V!0F=yB=tPa zEgh47ryFGZc;E%A{m4lJoik6@^k%E0{99pIL1gE;NqT!1dl5UV>RkEWtP)3f_5hG6 zs%M}qX?DNaI+4HN*-wn`HOjlEz0}K{o0fG~_%%c8sDq)6Z2)6msormgjhmtdzv;Hy{BwHXKp&3Bf9paw+J4r-E zBoWmEr6%r3t?F`38eCyr+)`In1&qS9`gcQ|rHBP`LlCl=_x?ck0lISju@hW*d~EQ) zU2sgl#~^(ye%SeZR%gZ=&?1ZxeU1v@44;`}yi^j0*Efg1lIFcC*xEj}Y~k|(I&}7z zXXi2xe>mc_cC`K=v8&-5p%=m=z47Z6HQUzNi5=oCeJ$-Bo#B0=i}CemYbux7I~B*e z3hSneMn$KHNXf4;wr5fkuA+)IzWs8gJ%$o0Q^vfnXQLnABJW;NRN(83Dcbu9dLnvo z6mweq2@yPK%0|R9vT)B$&|S!QO6f(~J^Z+b`G(j1;HKOq_fG$-36zvBI$`hvA94i( zGPGVo&Y%nRsodWyzn0bD0VZlG?=0M23Mc2V1_7>R^3`|z_5B;}JnIp0FI}9XNKJ^o z7xYKOFdYxX?UW~4PC!hVz86aP+dsOkBA(sz3J+6$KL`SU4tRwWnnCQN z&+C92x#?WNBaxf?Q^Q}@QD5rC=@aj8SIg;(QG06k^C5bZFwmiAyFl|qPX^@e2*J%m z1Fu_Jk5oZEB&%YN54Y8;?#l#GYHr->Q>-?72QSIc+Gx^C%;!$ezH>t<=o$&#w*Y_Y7=|PH*+o57yb>b&zpTUQv)0raRzrkL=hA-Z(10vNYDiT487% zzp2zr4ujA#rQ;Hxh7moX(VldzylrhKvPnl9Fb?LCt#|==!=?2aiZ`$Wx*^Lv@5r_ySpQ_vQ{h2_>I`Wd|GjXY?!>=X8v}wmTc+Nqi-?ln zQa28}pDfvjpheaM2>AYDC2x`+&QYH(jGqHDYLi}w55O5^e9s=Ui^hQ~xG*&TU8I}Y zeH~7!$!=a+1_RZe{6G$BICI6R2PKE{gYW8_ss!VY*4uXw8`?o>p=fC>n&DGzxJ$&w zoIxdMA4I503p(>m9*FnFeEJQ5Nd^WK*>I_79(IA)e#hr2qZ8Y!RMcbS}R z(2;{C#FXUv_o-0C=w18S!7fh!MXAN-iF!Oq4^n#Q{ktGsqj0nd~}H&v#Brb}6cd=q75>E;O8p?6a;CR4FiN zxyB?rmw)!Kxrh&7DbPei$lj)r+fDY&=qH+ zKX`VtQ=2fc?BwarW+heGX&C!Qk;F;mEuPC*8 z0Tv0h2v&J#wCU_0q-Wq9SHLOvx@F!QQQN+qN^-r-OgGRYhpu%J-L~SiU7o@0&q6t( zxtimUlrTO)Zk6SnXsm8l$`GW-ZHKNo1a}<%U4Ng z(k8=jTPjoZZ%$(tdr@17t|MV8uhdF4s|HbPO)SF`++T%r=cNRx&$BkW7|$)u%Anm; zGOv)GmwW*J5DzeI8Vk_HZ4v?Mmz$vpL#M%+vyeiW;BK6w|_S0 z{pqGZxI%-~r~b@=F#^|^+pwQE*qc8+b7!b}A$8OjqA%6=i?yI;3BcDP1xU_UVYa?^ z3o-aYI`X%p!w>>cRe_3rtp}@f1d&AQZ_2eeB;1_+9(`jpC22z+w%(kh6G3}Rz&~U_ z5_LxI)7~`nP=ZdVO&`rUP8`b-t^Vqi;Yt~Ckxauk>cj@W0v=E}$00?Jq(sxBcQHKc z(W}uAA*+e%Q)ybLANOe7gb4w^eX#gI%i56{GJz6NVMA{tQ! z3-}Mdjxfy6C#;%_-{5h|d0xP0YQ!qQ^uV*Y&_F9pP!A;qx#0w*)&xPF0?%{;8t+uWA#vrZ|CBD0wz@?M=ge(^#$y< zIEBv1wmL`NKAe&)7@UC9H^t0E0$}Odd>u4cQGdKdlfCn0`goK~uQ0xrP*{VJ*TjR; za16!CM>-msM@KcxU|HsEGgn{v>uy1R?slG}XL5)*rLTNHdYowI*;qe~TZH z|1Ez0TXrc@khWdmgZJKV6+aJVlFsv5z~PhdC>=^tL5BC|3tyMuXSdsEC3L0qw60S>ecX zi&`-rZ=GqxfrH{+JvkuOY?{d?;HZmv z2@4+ep(g+yG6W%NrdJe2%miVnb8nX{yXK>?5DC#GA6IIXU-`!?8+xm(8r)Vi;=?g! zmOK)$jQv~nakv-|`0=Z`-Ir1%2q8~>T7-k=DyG^Rjk7|!y(QO&)cBEKdBrv~E$7_y z&?K!6DP;Qr_0fbbj86^W(4M{lqGx6Mb;`H;>IDqqGG@3I+oZg_)nb=k|ItMkuX2Y@ zYzDmMV~3{y43}y%IT+)nBCIzi^Cr1gEfyrjrQ7gXAmE$4Hj(&CuyWXjDrkV~uP>9T zCX5cXn!1oEjO!P#71iyGh#q+8qrD8)h#wE#x;bz+a^sQyAntO(UhxFVUqR^dux8 zOsN=Nzw5imC7U~@t^#gLo}j#vge3C6o(%0V5<0d~1qlxe4%yD~{EDGzZ40)ZIXytB zg3^NFa(98n#OwV!DJqgy;xitYp)Q(W$(J0<0Xr5DHFYO$zuUkC(4}Zv2uB`O@_TR7 zG3Ehp!K;YLl%2&*oz3`{p|hj`Bzd(@BMVVA2ruucGsD0mj`^a1Qw3WsT7_z)c_<&j zvy(u5yod#@5~XT5KRPqKKp*2Q`rN!6gd#Wdh9;806oaWGi6~pB78)SYEhIYZDo*^} z-93olUg^Vh29G^}wQ8p(BK0(<7R6(8><}Bia@h%62o%ONE`~PiaIdfy!HGUm0GZdJ z&^aK^@JP|8YL`L(zI6Y#c%Q{6*APf`DU#$22PjfSP@T4xKHW~A(vL$pvf+~p{QLdx^j4sUA;?IZ zVWID3OA_VkZ_3?~Yy1yn?4Ev^r}1~c!n9;Z7pRn*D$^J%4QyWNvPkKF5{{bMBefvT zFZu|hco!0Me-__dyLe6S!}>m?I-x%1{Zr3_Qi!(T@)hh%zBE1my2AWl^XY#v%TSX3 z;?rn8Chf+?>SQ|v8gl$*f5dpix{i;?651ezum2tQCU`9sKxuZG2A9o(M~}G`*q2m#iW# z?0fJS+j_XxOk1fb+Nx6$rZqhg!x}eO!3nMy6a@4doqY&?(c`8$^B?0InG4T&{mu*3 zpcYaf)z__Dgr%+6UFYYXSu(oRrPYGviL~FKc{0X%tnt+9slAC|W0F8l^(@8qDXks~ zOZgs?O-6e-12Q>w5d?|E$P&oyah^mqd(Cu#uNtjCpp&F}G&biuW49LGkFCDEYe0S* zo-W_}-yR$%Z^03i8{&R&oU1BbY9$ER3RR5LjocL5er=CclJwCH>M6ge$R*Wi zd3zUoE*~?a1owq&DiT2#_Q)~tr$;Q=BJrMHrG@j3^J=#U3 zmd)ubgUu(9g(qmjx~7+!$9^%~fpi9$*n=+HfX&<>a}qkD;Ky@piqolGdF>VEX?(!DuO z{=7v}0Y|$@o3c`s^K3&3uMD0T1NMMrgwn$+g{=Tr&IHH@S`Aj4zn z{Mpln$!B->uUYTFe+75e!ee*euX`W%xA&g!-%s-YJ-sJP*(~t=44RSN6K5u7}a9;40`KN#fg#N>-s?YE6*qS9zkP2*=!a%O&aJ4>)JR>{O6n)(@ z$2mBny!kLLgnPgrX&!fTVnSXLEY}ZR{fLL4Jw;uI;)DhJJ<;%5&X%lg5)mYwwyHK=W zS`3yPe&Ncy_OA!;HvQV1TI3}7jib>EhqT!PZIoDg_Wm4OraFX|nGmCsXj|{&g!(_; z;(_uG68gxxy{T#wPPuETHggw6G8nCyc`=x89;arkuB%&7rbL&VzCm|jQFg8me78tu z2l-K|IsFgX@am)(c=1IWYX5fhCjIZ&9MBs9(Qg*`U5T`@H2xqzQxj`1bK#2gmDn2=yI!n0*6A2{JuA3~uX7 zsXocdxHHMV^?dsW+s}S8j8Mq!pjB8=NytY%-MEgx+HnavDcotwYmA{J%RzlLhZ{?t-W6 zr-JA(qw%OVMtv?N?75aid-cY`ZJLFT`fh-fZ0()^P(3wyQ`wDHG$9cUmEr^~!;iGV z#ukG&nXeLHarXD$=({)#Es!?%=2*`or!FE4N6XWEo>>`}ocE?kmQb+2JP;-))sn0V zoC6&be>gf!XD#yJO`FCF(Ts|~ zUbO#y44!V-U|&SEr1#r^_fJ1Ql3isjfCVAfvNga7OBJG^YAP`r8d{))?5D{xm+FB~ z*>D&s+(Z(o*)gx|EpJAYlnk@A&=zpkYvak{W~Y}~8M_p7Uu1bY#7m{Mq-#4-xw3lH z{(8=+O+WrU)^C(;qRm%NiKnO+<0W6EF|>n#fw%OKxr!@d%dWHOmv~#M2{eIlxaRW% z;k6v=< zZ{5W}@ik?!__~T?0QX0xX^^}Isw8Ey-yXCwQkS!)xT-ZdV6A`#HdMECf78X){%6)7 znLSKwqK}!hdkVk2QjAZ?j%&Id%WY~^<$ntL2p8J;eq$VCp%Cg{)oW&%Z3vp6ihm9D zIlPC#zVE^>62fNwZqsk)mt+E#rrU@%4vWtkYK)Qv$a*}$T2ZJCtTFI`tuLb*7j`!^eR`?d9h2TjF-h2Yr+ z){T|kWBNyrA5vpZE{Ez_)pG7Zf%QXqW)R@(<_0oOP?cwg&gib`IjKTzN_R*5A)G>_ z1r#qXr5i)U$$wv(kXfodOg=h$UZk78c@50K^wOMcKCx26s{q}vdOioj1n!&if0FRY zSi@$}gn4KW;2<;+lY?&>M6GNrRtfUTEIzqih@yLMQA2(17m3)hLTa@zlj=oHqaCG5 zYg71D3e}v36DjH++<*=MXgd2q&dP^6f&^KctfDe(SQrvy5JXC@BG#|N_^XbfxhcV) z>KV$aMxcL*ISc0|0;+<2ix7U7xq8m48=~j!a`g?SzE5}(Y;hxqEHJg_+qB99$}py7 z*ZPXL?FKLA>0uVicvq3okpoLZE#OG@fv^+k0{35pf`XdVT)1< z#mV4mcikkivZcE(=0rgfv&#+yZJrAOX&VDL(}Zx8@&$yi4Y1kmEK&uL<}ZqWr05mr zcSwaqH=squnLs+UCn@yp#WNQuIv$~B*sN_NAACD>N3k_$E(j~}Uvqda!_ zZcu7UrsR_q-P2YTrg|lijt8kyqL>T@ab#-a7i>%#*eoxFfgx(FoPa(y1nDI{z#Pz^ zfF~)6RBc?#ivEF<@XVD*#9r^r-;*<^(tE%UtWw^oom83;$5d{UoUbmAP(3Z)14YTK zMXQ#mz9yw>*8D^82vL^|%lyo|ZiQPd&{<*wCZI%up=wadl~C~cRJ!=Hjc&F)FNlnd zgNI|iSIMyqh=qV(z+HbldU4}!sqMs1R?t*RV!S*WW>qW_GF4NJ&vb-{2sJjiTIpL; z{bC@V&EhO|>GuDv7`%$kO<-P@^VI+y zl0tXGm|eISy)fiY3m8_Yaz>`Q=B(Yi8EH71{wfM*8ziS3BIju?26ujw==Xh4x5rH71h?Z859IWq(i#9 zLt0wt?(QBsL(q4yCv&g4t0jJvu^@FtJJk`8YXb{{(OdTS%rGxnPR)xY#6=?AWjD5M2n z5GZ@@ulO|JN34J-2y*-Nh@6|?RkFHwSj$e}p}mbc3Y}*el{O31RU0Z_E48@5O~5n;kDJy}a$x&Lc;27DTvAd@s^9>IA@$q{m6K?eZqOJGKpgCT!Zhld>#d^DAK+MDP}|3h zZ{i!ENw;mW62Pq^|FY#w?@8U6Nvjgi(sKW}&uvgjz0YIS>%Sxk1`5 z`qk`C2*bWd|0I4L=_~s(^2F$Bv7OTjo*G+gBD=Rq-~$7t{Bo|mmck(d6ywQ*UbIjkS>qtkH~Zs(sq zEYNB4xxdYmy+G=${gOjGGfSQQLi1D*{&en*3{wyd7U3M)y^FX(+d)eFi?9oMy@64c zwL?!q#*eJ$eayb4lc!B$W%M4B$4dH>9eFXwjfk5U@}6vXOWDiiLMYP3^VYlG$yDjaC({9tyL4NxPb{x=ADdJ7Bl5EHzU6h-Cbke zwi+34LGVF=G%>d5Q7C>n!)%!LT`UZ0v^YN1WrcjC(pS!&vek-SK#kj^EL9!l?TvY% zOkz%!#5Cf^2JFrvNeU5ZL1_aI(M~e4?~kId$T!A@Z$?f40q#~5HuElkRMQV+6r0>J zK9y=%I^m-_xwRNyO<2Zq-0W6!frE$jT$C3Qi3d>0911QPc`Ky6`~Y<)?mMy*u`nz8 z={b()Z;8DqbWJ?MdOsaF6Zn)$d>DQpRHM~bD3cq=Rw_fzWpiwtJFY`BF}hTFCeh+C zs-4A}MCP}`EInNzh3hRoZ6L1a`J7}T&wh9#HItmHBCRwefpQ97*u{--QH=5>MSZud zv_%DacJS+lsxlJ0q=40vs-8P$Q$_Pt)JM=)|1dcFO&JWY8KwhiP$a&Ua*Z z$BTW#lu4QZna#vZECq#Q?Up_(@`0#(@~0?mG{qA#^rZDq^&6T=pbGL8nU?BY-TwKE zPmMqhP_w?q1B~|43T5=Hl(Bi-+{yY;Acv4i9u}oWC+@^i*}l}=dg`Y~E%dTn;rqj5 z&3pLFHjC62jcxW_a@Jj2Ce%eToCB!6OV*6I0!XF9Hq7orpm-RpizSSHx890&_kCQ% z$cKVw-`WnDvv5Lq?L!qGDcUPtgmotX=C`~Smjg&oM5V?}gAzL%WkRwLmNZyrCbKwC zcsUD3O0ruLr%s`B5W)IYjzLTXcAqinas75T_j&1_m!m!^ORvk6_bYvK||DIVE@IUjWQ z0dQ(H9=a-c`@{Q=uj?JC8g`r$a>)gR#=2%vuea5B_BAp;*QX&I;N?>jHYFR=q?8sq zatBJBYX`tr1BQxIgACJ==*ivk$UjW^Maod6-=SzI3MMUbCqu!3wVHt!Be?M@)2aK+$Rv(?iH18-}e+rDznPRv< zi!{-5NNHE)eqVEeYl>F5S{6w^8L$0p7l|M;(^c+Ei|{V7!!8;xiDx@QK4Pl8Iel7N z*9%$ISyQPK_+5tc2c9jhX%sfIOCZf-E%K9X7Z6N0Nvp!~v(KAZvWnaHK^SQSragIF zVIC_7tGTXeU(TRqj?owTmj{SXNtf7;9evoBURMB5R`8R1$@$}FCS%ugA{4igxOhRi z*q_y$&&!mHF1$S}2279&m0^nFxDV#WvV&?Pphq(craPjcBtveg0Nqdm9tXL4lN{t= z?BLepVnp$U5KskjvVX-GjEf=M3mOTZb|Z$Hp*yytey0C^{cH*v>gqF&-j?gcEj4)l)cdGBmB(^HrSe_)qzf z+TZ^Yo4|GWz=Oi3m`r(hV`iZHb_mu63g(JXPMW4p9JhL_(tg+XQnmR0&52UUA|nZI zvjwOx(fNtZ`8!#|4$7GoJPQ`;T?hKOi`^`kFOyX;C4KfC(U-(CX?Qh2!RTe!4raMP zjLaC7qL_tJ?^0!T9ibZe!m-x!u7o%2dHK{uYZ~#+vERAv-G-MQeYQ*~DILuFpu02u z(Qc)=bHqb4{fs+hdKa5etlX z3EW#vlbEZmWT>X{3WbgW)8~u=8IGuRc<=?KoDXg5V`jf%i^Ai`Cd9=&FH6d|N9uJl z>QhxtW_{}H10BF}GQNitk~V=GnB%NI1Xv-6-OeaI&Amg0s{4i4;HhP$6oc(L-}yHt zej63({`5VLSoIef7D3Z9BA5x<9$^x?PhV=6A@Nu=QiJo@*o?M@*6-UA@EdV@bQCR< z9>{N%eK;Y#U-@XDBBCT^j=?<|y|lsAWrXsf`t%4VT{)63oxQe^u_5NuOq{rsrRd}Z zOx&OldRtR4leEX#r$9`gPJtbHccH!JgZK&3x`tJ<_{kv)E?$LhZ?brv`Cc}X%cWC7<@6yqM2O&m(rB`1v-TiqcQmA5n$rbGJ4zs({=R-I%6}*^UQ)wi9WuzW%Ri%&5 zTdd%>+GvADk+4q#3s5qne99`MC)X_#=p1!d?(mcKDW=Efc31Jso)9M49O0OMeP&7~ zIm!vorpxBSbvSiczr^?WP&e&-!3GLxCIaR5?PGeLgwYT;lYu9UE8SwmXR(D?A^s`7 z^F4di(+oHh%$DZjj7F3_-Y9}k^uCKeSC?Jd7h>RZIDZ{wcbh|9w4)p$dmv7|gX1n& zkrYjSso~;~qMMzZUQ5AC+GUvuj@y{4E&&v(+OE-rS^J7iE~Yz1 zCQ9hAI&0X2_H8CKZMqo00MsxtwjvM{`AdSaZ8#Y?5zPI;a+0`JF52!uVwr@5Ufctm zm;5G%gI&utfGa~fv6!jHh9d1r3TYD zEOlrbyFnDl5J%sEO>HErK~WWE6I$_eXp!dbphDf zc;~oWDQylVa=y?q;c>SKzvZ~R(ZE2csFwf@10@zaZxFAYWaV9TFMh(QuqxNhPUav~ zzCkoe8-lM{?vh}kdM6EMCH(eLK3Rt{HsEJ+4fve=xAVq(cUc9fO9g1%zI+QfFOb@0 zePFU(&?Np9w3&xs)ZwPnQniC0%xs8(Hyx{7*Ot51*`9&2^h7@!nmzuF`3pl8ep#Ls z<)nk7ts}`9tGgaVJWC-3w;B~$juY6m+7XgfzjR4I=oV}E9LRGf4@cI>d3z%CYyURI z7lRn11g!D34zI6|26>?CELeIh?cEv_GCCMd5&g<=9-)pe8iXINQ}4IljYsQyfRz|( z<%w=HN4ZOQKJ9e7DOUhjA7A%-xcR%2`@1?U&u}rvqNc_8l9dUT_S`4TKJ;yezIdp} z?qDAfx6IHQ7YlO;EAP%d4U2O7jU`Uh(um!J`hJ_3&mmQez8AqWLQEftYJuMdCj27t zoV#b!c0d8al0j1yveY6)U#kPCh%OfL>P=%WE^LQew^k-QqZ{rjX6PqOd2K7>1^VUB z`&H@+vW=wH0UY>88nXCH@RKCY&?bR%8-53b{;@>|;uzDd5f`Z% zaSC<8OLh|b@ZnBET?My38fV9~ku2cPfcWZl7nW|pkQKfFlp@xRt+K0Tj@gdvVAQXP z?i45RNE4W#Kf0%Pp2=?hESkG}EK557cwn0r1{uWeG53_tb!9bg&R8R_d4s5N0poc- zr>1g0W~1oha&#@_irbqnL)jJ@Z=y7J3fCQ@qlr{6(%rSs2rpkS1QIU^tieJ-xq%nd ze-C=#{@E+Kzb&SJ2KM~9q^4Yk^jyXa#{;P)y`YsFvfzX?%V~r6GciP4eX~$vk{-C? zeipAYsMSp`Z~&-Jc*dt}m-A_w&cnb#~sIdbU{uCayd>nWKDxQ9!%R zTrgS~+>TqXgrN~e2&eeWdPhuHP2*#K1=f^B@UGZBjFq- z;mtKYyul9ZNuq89XEoeSg7^qld5^R}FHpbyRyk1pRPMDO$_Kqi*sp1hk&UpUKc!V! zJZpCQc!)@X+%qOQMP)CU@Qe|=IG@|DZ~o#j>TBFQxH>8rJ#0y`XO9ukvc)kJ6LY3$ zY}{(tri#32!LjVY^exC3Ky)i$NY6v^*>X5y8F65pYYjt^T^X<=zm=)Cr=>dcId>?I zR^0I?)=)|}ak7wG)&Ar#A&60BRp}&NWFPy7zt)yl3aObS?sB8fxfU9ayR{$#%S<#3 zrsbmi#bDSP)@w%iYS%&wyyIB??LJ0Q%aD^!XXYk3)tQt~x_YU?y4KVKl{MJ)KSz&f zV;tJ1smY(dLM6zZXVAWND3L|(W=q~HjA6OkjQ+kx-EuqtaaQQPaa=2_wwuW@G*1>e z_TqB;+1@yuHg}YYpEJL&Sw~jD3Xeb(Wo(-nz6`#gbP7?agYT>j_R%+^h{1>7W&cP{s8epLY9Ky6mU*u*!QBn zI7T~WL-_qj+~Hdpr}qtfjZmD;eI%H0SP~~ifqoD59-q)R9_Z zKr6OeoZT!Za#k5yo&CCmzLbGP*6ggJ@2QPhIY^aMXjVjQ@D+-E#qmAjuL{o@NCUDF zFy)B~$j`rK7Iz$L>_Jl~O?IJu2P3 zlHQ@${Jgcvp`PKu7p;6Fr=4y1?8nJ;=~jls^gx4&_O4+)C-OGc5)L0+R!&uI&qQID zhV&ZQ@+2={Z|2F%WoOu9Ljt}|0r;!e zCBx(uAViqOffibUBOVEH_IlV=57ZQSQ~Te5(wmsO+o_CCNAgCJzZ3ly84J34_Zf#SwQ9q8i41 zE>u$JuO$kQq*W6MDo$Eu?3jJAFUt&>Qy#K{lT-Vx z6=kceU^v`;vBRoFxQED5TL+=>QJ!iaxV^Z2r#%CaaEWgbs1ysT$&~sem&74AEC!;< zcGDH;CENBJ&hfI!@G5ezCK!sXzdB@m#a(q8KeX;U=yl6AujNz z{}huJlo1yL$DlAsi{12aS?CJ*{xuIIV4wf-V6E?L4E!5BWMQ0Zh4uel*xZJ}QQuPE z-u#DdD6hH6`;nVJ>O}8iuWxH>Z2vc>a;iFbm)nrbj$ps$6aa4TjfVZVZr7dK+E_E# z+S`ErJDM9i{HX815lax33Wl(;H~m|sF28cs+hB$%2pjyXgubo5p_%ay3!*?212bxX z@1{$rzY6~DK*{`5@oRm0>(9INQX61!{Ip#NymIM*g~u=D)UFH!NcfQ(AsZXVOPv5) zX?=4bI9>9;>HvTACiBNDt)x;_}tsJousTuWrG- zDUSM9|4|IRSy@PhdB$sAk4b;vRr>Nt@t3OB<#_*dl_7P>FGcFF3-DA?KBW00A<;2=*&`^P8}cEZW!GSO9(+{;-V@ zd%%C8KEDYD$pC#x%zb4bfVJ|kgWcG0-UNZT9@2=R|Wz+H2iJ2A29LV z#Dye7Qn~^KUqOIS)8EGZC9w+k*Sq|}?ze$| zKpJrq7cvL=dV^7%ejE4Cn@aE>Q}b^ELnd#EUUf703IedX{*S;n6P|BELgooxW`$lE z2;lhae}w#VCPR>N+{A=T+qyn;-Jk!Dn2`C1H{l?&Wv&mW{)_(?+|T+JGMPf)s$;=d z5J27Mw}F4!tB`@`mkAnI1_G4%{WjW<(=~4PFy#B)>ubz@;O|2J^F9yq(EB<9e9})4 z{&vv)&j^s`f|tKquM7lG$@pD_AFY;q=hx31Z;lY;$;aa>NbnT| kh{^d0>dn0}#6IV5TMroUdkH8gdhnkj_&0LYo6ArC2O!h?t^fc4 diff --git a/EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingRestTemplate/eurekaserver/mvnw b/EurekaServerUsingRestTemplate/eurekaserver/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingRestTemplate/eurekaserver/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingRestTemplate/eurekaserver/mvnw.cmd b/EurekaServerUsingRestTemplate/eurekaserver/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingRestTemplate/eurekaserver/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingRestTemplate/eurekaserver/pom.xml b/EurekaServerUsingRestTemplate/eurekaserver/pom.xml deleted file mode 100644 index 7d38d40..0000000 --- a/EurekaServerUsingRestTemplate/eurekaserver/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - 4.0.0 - - com.github.rawsanj - eureka-server - 0.0.1-SNAPSHOT - jar - - eureka-server - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - - \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java b/EurekaServerUsingRestTemplate/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java deleted file mode 100644 index 1b2a6ba..0000000 --- a/EurekaServerUsingRestTemplate/eurekaserver/src/main/java/com/example/eurekaserver/EurekaserverApplication.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.eurekaserver; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; - -@SpringBootApplication -@EnableEurekaServer -public class EurekaserverApplication { - - public static void main(String[] args) { - SpringApplication.run(EurekaserverApplication.class, args); - } -} diff --git a/EurekaServerUsingRestTemplate/eurekaserver/src/main/resources/application.properties b/EurekaServerUsingRestTemplate/eurekaserver/src/main/resources/application.properties deleted file mode 100644 index 90efd1c..0000000 --- a/EurekaServerUsingRestTemplate/eurekaserver/src/main/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -server.port=8762 - - - - - -spring.application.name=application-service - -eureka.client.register-with-eureka=false -eureka.client.fetch-registry=false -eureka.client.serviceUrl.defaultZone= http://localhost:8762/eureka \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java b/EurekaServerUsingRestTemplate/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java deleted file mode 100644 index a20f6a0..0000000 --- a/EurekaServerUsingRestTemplate/eurekaserver/src/test/java/com/example/eurekaserver/EurekaserverApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.eurekaserver; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class EurekaserverApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/.gitignore b/EurekaServerUsingRestTemplate/mongodbClient2/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/.mvn/wrapper/maven-wrapper.jar b/EurekaServerUsingRestTemplate/mongodbClient2/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingRestTemplate/mongodbClient2/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/mvnw b/EurekaServerUsingRestTemplate/mongodbClient2/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/mvnw.cmd b/EurekaServerUsingRestTemplate/mongodbClient2/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/pom.xml b/EurekaServerUsingRestTemplate/mongodbClient2/pom.xml deleted file mode 100644 index 5ae6d0a..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - 4.0.0 - - com.mongoDb - mongodbExample - 0.0.1-SNAPSHOT - jar - - mongodbExample - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - org.springframework.boot - spring-boot-starter-web - - - org.projectlombok - lombok - 1.16.20 - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java deleted file mode 100644 index 134b650..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.netflix.eureka.EnableEurekaClient; -@SpringBootApplication -@EnableEurekaClient -public class MongoMain { - - public static void main(String[] args) { - SpringApplication.run(MongoMain.class, args); - } - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java deleted file mode 100644 index a830375..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.mongo.db.controller; - -import java.util.List; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.service.IAuditService; -import com.mongo.db.vo.updateAuditRequest; - -/** - * @author trainee - * - */ -//@RequestMapping("/audit") -@RestController -public class AuditController { - - @Autowired - private IAuditService auditService; -/** - * - * @param audit - * @return - */ - @PostMapping - public ResponseEntitycreate(@RequestBody final AuditLog audit) - { - try { - auditService.createAudit(audit); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException exep) { - return new ResponseEntity(exep.getMessage(),HttpStatus.OK); - } - } - /** - * - * @param eventName - * @return - */ - @GetMapping("/{eventName}") - public ResponseEntitygetAudit(@PathVariable @NotNull final String eventName) - { - - try { - List list=auditService.getDetails(eventName); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @return - */ - @GetMapping - public ResponseEntitygetAllAudit() - { - - try { - List list=auditService.findall(); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param update - * @return - */ - @PutMapping - public ResponseEntityupdateAudit(@RequestBody final updateAuditRequest update) - { - - try { - AuditLog audit=auditService.update(update.getEventId(), update.getEventType()); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param eventId - * @return - */ - @DeleteMapping("{eventId}") - public ResponseEntitydeleteAudit(@PathVariable final UUID eventId) - { - - try { - - String audit=auditService.deleteAudit(eventId); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java deleted file mode 100644 index 1b55caa..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.mongo.db.document; - -import java.util.Date; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -@Document -public class AuditLog { - - @Id - @NotNull - private UUID eventID=UUID.randomUUID(); - @NotNull - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * - * @return the eventID - */ - public UUID getEventID() { - return eventID; - } - /** - * @param eventID the eventID to set - */ - public void setEventID(UUID eventID) { - this.eventID = eventID; - } - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /** - * @param eventID - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(UUID eventID, String eventName, String eventType, Date eventDate, String userId, - Object oldValue, Object newValue) { - super(); - this.eventID = eventID; - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventID=" + eventID + ", eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" - + eventDate + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - - - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java deleted file mode 100644 index 6479eb2..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.mongo.db.document; - -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java deleted file mode 100644 index c61912a..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db.exception; - -public class AuditException extends Exception{ - String msg; - - /** - * @param msg - */ - public AuditException(String msg) { - super(); - this.msg = msg; - } - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java deleted file mode 100644 index b7d4db1..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.mongo.db.repo; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.data.mongodb.repository.MongoRepository; - -import com.mongo.db.document.AuditLog; - -/** - * @author trainee - * - */ -public interface AuditMongoRepository extends MongoRepository{ - - /** - * @param eventName - * @return - */ - List findByEventName(String eventName); - /** - * @param eventType - * @return - */ - AuditLog findByEventType(String eventType); - - - Optional findByeventID(UUID eventID); -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java deleted file mode 100644 index cd8286f..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; - -@Service("auditService") -public class AuditServiceImpl implements IAuditService{ - - @Autowired - private AuditMongoRepository auditRepo; - @Override - public AuditLog createAudit(AuditLog audit)throws AuditException { - AuditLog audi= auditRepo.save(audit); - if(audi!=null) - { - return audi; - } - else - { - throw new AuditException("audit not added"); - } - } - - - - @Override - public String deleteAudit(UUID id) throws AuditException { - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - {AuditLog aud=audit.get(); - auditRepo.delete(aud);; - return "deleted"; - } - else - { - throw new AuditException("not deleted"); - } - } - - @Override - public AuditLog update(UUID id,String eventType) throws AuditException { - //changes made after downgrading application - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - { - AuditLog auditLog=audit.get(); - auditLog.setEventType(eventType); - AuditLog auu=auditRepo.save(auditLog); - return auu; - } - else - { - throw new AuditException("id not found!!!!"); - } - } - - - - @Override - public List getDetails(String eventName) throws AuditException { - // TODO Auto-generated method stub - List list=auditRepo.findByEventName(eventName); - if(list.isEmpty()) - { - throw new AuditException("List is empty"); - } - else - { - return list; - } - - } - - - - @Override - public List findall() throws AuditException { - // TODO Auto-generated method stub - return auditRepo.findAll(); - } - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java deleted file mode 100644 index db121ae..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.UUID; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; - -public interface IAuditService { - - /** - * @method createAudit - * @param audit - * @return AuditLog object - * @throws AuditException - */ - AuditLog createAudit(AuditLog audit) throws AuditException; - /** - * @method getDetails - * @param eventName - * @return List - * @throws AuditException - */ - List getDetails(String eventName) throws AuditException; - /** - * @method deleteaudit - * @param id - * @return String - * @throws AuditException - */ - String deleteAudit(UUID id) throws AuditException; - /** - * @method update - * @param id - * @param eventType - * @return AuditLog - * @throws AuditException - */ - AuditLog update(UUID id,String eventType) throws AuditException; - /** - * @method findall - * @return List - * @throws AuditException - */ - List findall() throws AuditException; - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java deleted file mode 100644 index ac2a51a..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mongo.db.vo; - -import java.util.UUID; - -public class updateAuditRequest { - - private UUID eventId; - private String eventType; - /** - * @return the eventId - */ - public UUID getEventId() { - return eventId; - } - /** - * @param eventId the eventId to set - */ - public void setEventId(UUID eventId) { - this.eventId = eventId; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - -} diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/resources/application.properties b/EurekaServerUsingRestTemplate/mongodbClient2/src/main/resources/application.properties deleted file mode 100644 index 96948b9..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/main/resources/application.properties +++ /dev/null @@ -1,12 +0,0 @@ -#Mongo -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27017 -spring.data.mongodb.database=mongodb -server.port=8082 -#Mongo -eureka.client.service-url.defaultZone=http://localhost:8762/eureka -spring.application.name=mongo-client - - -#appproperty client-spring.application.name=mongo-service - diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java deleted file mode 100644 index 86f4145..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/*package com.mongoDb.mongodbExample; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.document.BaseEntity; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; -import com.mongo.db.service.AuditServiceImpl; -import com.mongo.db.service.IAuditService; - -@RunWith(MockitoJUnitRunner.class) -public class MongoTest { - - @Mock - private AuditMongoRepository auditRepo; - - - @InjectMocks IAuditService auditServcie=new AuditServiceImpl(); - Date date=new Date(); - UUID id; - Timestamp time; - BaseEntity base1; - BaseEntity bsae2; - AuditLog audit; - AuditLog audit1; - AuditLog audit2; - @Before - public void init() - { - date=new Date(); - id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - time=new Timestamp(date.getTime()); - base1=new BaseEntity("1"); - bsae2=new BaseEntity("2"); - audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - audit1 =new AuditLog(UUID.fromString("38400000-8cf0-11cd-b23e-10b96e4ef00d"),"createnew","creation",time,"3",base1,bsae2); - } - @Test - public void auditcreateTest()throws AuditException - { Date date=new Date(); - UUID id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - Timestamp time=new Timestamp(date.getTime()); - BaseEntity base1=new BaseEntity("1"); - BaseEntity bsae2=new BaseEntity("2"); - AuditLog audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - Mockito.when(auditRepo.save(audit)).thenReturn(audit); - AuditLog audi; - - audi = auditServcie.createAudit(audit); - assertEquals("created",audi,audit); - } - @Test(expected=AuditException.class) - public void falsecreateTest() throws AuditException - { - AuditLog audit1=null; - Mockito.when(auditRepo.save(audit1)).thenReturn(audit1); - AuditLog audi; - audi = auditServcie.createAudit(audit1); - } - -@Test -public void auditgetDetails()throws AuditException -{ - - - List list=new ArrayList(); - - list.add(audit); - list.add(audit1); - Mockito.when(auditRepo.findByEventName("create")).thenReturn(list); - List newList=auditServcie.getDetails("create"); - assertEquals(list, newList); - -} -@Test(expected=AuditException.class) -public void auditgetDetailsfalse()throws AuditException -{ - - - List list=new ArrayList<>(); - Mockito.when(auditRepo.findByEventName("mongo")).thenReturn(list); - List newList=auditServcie.getDetails("mongo"); - - -} - -@Test -public void auditupdatetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - assertEquals(auditt,newAudit); -} - -@Test(expected=AuditException.class) -public void auditupdatefalsecase() throws AuditException -{ - Optional opt=Optional.empty(); - when(auditRepo.findById(id)).thenReturn(opt); - //AuditLog auditt=opt.get(); - //when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - -} - -@Test -public void auditdeletetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - - String newAudit=auditServcie.deleteAudit(id); - - assertEquals("deleted",newAudit); -} - -} -*/ \ No newline at end of file diff --git a/EurekaServerUsingRestTemplate/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java b/EurekaServerUsingRestTemplate/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java deleted file mode 100644 index 05b8eae..0000000 --- a/EurekaServerUsingRestTemplate/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mongoDb.mongodbExample; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MongodbExampleApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/HowToUseSwaggerUI b/HowToUseSwaggerUI deleted file mode 100644 index e4adeff..0000000 --- a/HowToUseSwaggerUI +++ /dev/null @@ -1,10 +0,0 @@ -1. Search for dependency Spring FOx Swagger Ui 2.6.1 and springFoxSwagger2 . add this 2 to pom file. -2. Create Configuration package : add swaggerConfig class in it. add aanotation above class @Configuration @EnableSwagger2 @ComponentScan -@PropertySource("classpath:swagger.properties") -3. Add swagger.properties file under resources folder. -4. Create static final variable where you will specify some value. -5.Create ApiInfo method which returns apiBuilder. -6.Create Docket which returns - - watch video -https://www.youtube.com/watch?v=h_jNGn6v4sU diff --git a/IMP for execution h2 b/IMP for execution h2 deleted file mode 100644 index 4d197ac..0000000 --- a/IMP for execution h2 +++ /dev/null @@ -1,38 +0,0 @@ -h2 database - -to access db on chrome -http://localhost:8080/h2-console - - - -properties file for datababse h2 -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -# Enabling H2 Console -spring.h2.console.enabled=true -#this will persist data in next run -spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE - - -//For mysql -## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties) -spring.datasource.url = jdbc:mysql://localhost:3306/retailer_app?useSSL=false -spring.datasource.username = root -spring.datasource.password = root -spring.datasource.driver-class-name=com.mysql.jdbc.Driver - - -## Hibernate Properties -# The SQL dialect makes Hibernate generate better SQL for the chosen database -spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect - - -# Hibernate ddl auto (create, create-drop, validate, update) -spring.jpa.hibernate.ddl-auto = update - -# setting logger level -logging.level.root=Info - -#setting logger color -spring.output.ansi.enabled= ALWAYS - diff --git a/MongoDB-Document (1).txt b/MongoDB-Document (1).txt deleted file mode 100644 index 299bb3e..0000000 --- a/MongoDB-Document (1).txt +++ /dev/null @@ -1,74 +0,0 @@ -How to install MongoDB on Windows: - - -1. Download MongoDB: -https://www.mongodb.com/download-center - -Choose Windows 32 bits or 64 bits. Unzip, extracts to your prefer location, for example : d:\mongodb\. - -2. Review MongoDB folder: - -add $MongoDB/bin to Windows environment variable, so that you can access the MongoDB’s commands in command prompt easily. - -3. Configuration File: - -Create a MongoDB config file, it’s just a text file, for example : d:\mongodb\mongo.config - -In "d:\mongodb\mongo.config" enter following : - -##store data here -dbpath=D:\mongodb\data - -##all output go here -logpath=D:\mongodb\log\mongo.log - -##log read and write operations -diaglog=3 - -Note: MongoDB need a folder (data directory) to store its data. By default, it will store in “C:\data\db“, -create this folder manually. MongoDB won’t create it for you. Therefore, create the above folder/files at location -mentioned in mongo.config. - -for example : create a file mongo.log at location D:\mongodb\log - -4. Run MongoDB server: - -Use mongod.exe --config d:\mongodb\mongo.config to start MongoDB server. - -Or, you can execute following command in cmd: -d:\mongodb\bin>mongod --config D:\mongodb\mongo.config - - -5. Connect to MongoDB - -Uses mongo.exe to connect to the started MongoDB server. - -Or, you can execute following command in cmd: - -d:\mongodb\bin>mongo - -MongoDB shell version: 2.2.3 -connecting to: test -> //mongodb shell - -6. Following to be added in application.properties of spring boot: - -#MongoDB -spring.data.mongodb.host=127.0.0.1 -spring.data.mongodb.port=27017 -spring.data.mongodb.database=yourDBName - -7. Maven Dependency: - - - org.springframework.boot - spring-boot-starter-data-mongodb - - -8. MongoDB Connection Params: - - a) Repository: extends MongoRepository, you have CRUD function automatically - b) DTO: @Document(collection="yourCollectionName")( declared above class definition) - @Id (declared above id defined for the document) - - diff --git a/MyDatabase for SuperMarket Project/.gitignore b/MyDatabase for SuperMarket Project/.gitignore deleted file mode 100644 index 5c5b6ea..0000000 --- a/MyDatabase for SuperMarket Project/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.classpath -.project -/bin/* -.setting/* diff --git a/MyDatabase for SuperMarket Project/MydatabaseQueries.txt b/MyDatabase for SuperMarket Project/MydatabaseQueries.txt deleted file mode 100644 index 0c56009..0000000 --- a/MyDatabase for SuperMarket Project/MydatabaseQueries.txt +++ /dev/null @@ -1,47 +0,0 @@ -create database mydb; - - -CREATE TABLE Customer ( - customerId int primary key auto_increment, - customerName varchar(255), - customerAddress varchar(255), - paymentMode varchar(20) -); - - - - - - - - - - -CREATE TABLE `mydb1`.`goods` ( - `goodsId` INT NOT NULL AUTO_INCREMENT, - `goodsName` VARCHAR(45) NOT NULL, - `goodsQuantity` VARCHAR(45) NOT NULL, - `goodsPrice` VARCHAR(45) NOT NULL, - PRIMARY KEY (`goodsId`)); - - - - - - - -CREATE TABLE `mydb1`.`supplier` ( - `supplierId` INT NOT NULL AUTO_INCREMENT, - `supplierName` VARCHAR(45) NOT NULL, - `supplierAddress` VARCHAR(45) NOT NULL, - `quantityOrder` INT NOT NULL, - `orderId` INT NOT NULL, - `amount` DOUBLE NOT NULL, - PRIMARY KEY (`supplierId`)); - - - -CREATE TABLE `mydb1`.`retailer` ( - `retailerName` VARCHAR(25) NOT NULL, - `retailerAddress` VARCHAR(45) NOT NULL, - PRIMARY KEY (`retailerName`)); diff --git a/MyDatabase for SuperMarket Project/retailShopDB.mwb b/MyDatabase for SuperMarket Project/retailShopDB.mwb deleted file mode 100644 index f663073c3a9a102b7d82c2d910db5e9f29ad1ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7997 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 diff --git a/MyDatabase for SuperMarket Project/retailShopDB.mwb.bak b/MyDatabase for SuperMarket Project/retailShopDB.mwb.bak deleted file mode 100644 index 0a1943774261ab38749a02db47e6c79070179548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8001 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%0Dq)mi<4FJ5%<24MMN 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

HdaGq0A&ccOW^Dy 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 diff --git a/PPTs/SerializationPPT1452018.pptx b/PPTs/SerializationPPT1452018.pptx deleted file mode 100644 index 596291d96f522776d2c0be0265cccd32aaac0af4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86634 zcmeFZV|1i@vo@Y&l1wZQHhOPm+K3e*Wvc=e%e3SMm)qFTjWZpa5V1004LZ(=vejz(4>19!LNH2moL}YJ66f_6C;r zTJkQ|26h^h&KBmlIlw@~Spc6O`rpSt*#l!qo0coohy#~I=UCr2CHwN$QA@$vjay4C z`BYy4G;IN_A}p2zdsZ*;eL`}iS6UL9d2TW<(>7(!dWj+_mEwgHw8@odiBwjIz=wF_ z)hBFiy&l_{@Pi%16U2$ZSycQ85_cnU1f9&F8F}jKSd!Tasfg?QF-Z;O@_BYf;p zO0(5w$nDLbz*-A+R3SB~gHG*9M%z_gQ(0x@8Qsp(%wEBnFo&coF(s>}-+ExQoxz9w z(H>(JnnF#_ix{Bq? z2q%baF1VHZ;0__}>}>sp8R@!Ale+bGaZJdu$Rk~+Xbn^j^(}=ou&9HXOqP*oG<8nX z(p*3Z(vEutU=V z7#GeazKYd@CE{gV4YX!=O$krbVz=@pnX@Ghaw9HnE)z4T6vVeUomq9wvP@%sNiz{{VKqCD91i{$ z95q&5`XOQm;kuv2;zSJwDAT$p!AMD2IASa~2nu+9X(+1cN3WBW)QB?-`n-L?A<(TX}B=J`0T=)*|a&^Ko1#NHWQel3J z8L@kgv-Zz-m_BiX`}u5bZBJ!qZlZ5sNA)lG{P}|6kHq^YkisV0A$q7`zg}rvVfCC7 z&hzl6wEVuz1Kd{a*Vy$n!PdYkua?=s#Og?GCT~YiK7|D>JOCim&OpI3`P)F^+gG^Eevc(b6IkK zFxaoxk~Tu2GKt$%p^tQb!<95E=&YKhcj2=dRtM^LCE|Uas=(MH+Jbb^b^z z^!21e@FNqw%~?!HeKy}x-|{6jpQqs`4qg58%MM6!7{eK6;21m_sHFQDdWAH5nLqg;T$?O&T`BT1uyY%@nCP4t#E4mq4m=D3-LNc zMl^GnFhCou!RTpN+d0mqBK}n1b&P{ApCIUze(L6ixn`E$0QQUonS*w#b$avws*6-H zCHhhFw*X+vOnKh>u_f7g`I;TSdG1(Z(c+W`+-H?ZZ6!ngb5XYs�@+jhvDdAZ-5Y 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 t)+xZ5fo%=y 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Μ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 Jc{c@k_kWfq{cHdL diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.eclipse-pmd b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.gitignore b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.mvn/wrapper/maven-wrapper.jar b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.mvn/wrapper/maven-wrapper.properties b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/mvnw b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/mvnw.cmd b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/pom.xml b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/pom.xml deleted file mode 100644 index 5373763..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.bankApplication - BANKAPPLICATION - 0.0.1-SNAPSHOT - jar - - transactionInBank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - 5.1.38 - runtime - - - - - org.springframework.boot - spring-boot-starter-amqp - - - - com.h2database - h2 - test - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/BankApplication.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/BankApplication.java deleted file mode 100644 index b092dee..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/BankApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class BankApplication { - - public static void main(String[] args) { - SpringApplication.run(BankApplication.class, args); - } -} - diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java deleted file mode 100644 index f65ebb0..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.bank.Exception; - -public class ManagedException extends Exception { - public ManagedException(String msg) { - - - - super(msg); - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/ATMController.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/ATMController.java deleted file mode 100644 index 06ec203..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/ATMController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.ATMReq; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Bank; -import com.bank.service.IATMService; -import com.bank.service.IBankService; - -//To call Restful services -@RestController -public class ATMController { - - // Injecting properties of IATMService to use its methods - @Autowired - private IATMService atmService; - // Injecting properties of IBankService to use its methods in current class - @Autowired - private IBankService bankService; - - /* - * description : this method will return a atm instance - */ - @PostMapping("/atmCreate") - public ResponseEntity createATM(@RequestBody final ATMReq atm) { - - ATM atm1 = null; - try { - final Optional bank = bankService.getBankDetailsByID(atm.getBankId()); - ATM atm2 = atm.getAtm(); - atm2.setBankId(bank.get().getBankId()); - atm1 = atmService.createATM(atm2); - return new ResponseEntity(atm1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Atm not created", HttpStatus.OK); - } - - } - /* - * description : this method will return a - * String message if money successfully added from bank - */ - - @PostMapping("/addMoneyInAtm") - public ResponseEntity addMoneyToATM(@RequestBody final AddMoneyReq atm) { - - try { - final String str = atmService.addMoneyFromBank(atm); - return new ResponseEntity(str, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money to atm not deposited succesfully!!!", HttpStatus.OK); - } - - } - - /* - * description : this method will return - * String if amount is successfully withdraw - */ - @PostMapping("/withdrawAtm") - public ResponseEntity withdrawFromAtm(@RequestBody final WithrawMoneyReq atm) { - - try { - final Long id = atmService.withrawMoney(atm); - return new ResponseEntity(id, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money from atm not withdrawn", HttpStatus.OK); - } - - } -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/AccountController.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/AccountController.java deleted file mode 100644 index 54cb138..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/AccountController.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountRequest; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IAccountService; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -// To call RestFull services -@RestController -public class AccountController { - - // Injecting properties of IAccountService to use its methods - @Autowired - private IAccountService accountService; - // Injecting properties of ICustomerService to use its methods - @Autowired - private ICustomerService customerService; - // Injecting properties of IBankService to use its methods - @Autowired - private IBankService bankService; - - /* - * description : this method will return a created account and will give - * response in response entity. - */ - @PostMapping("/accountCreate") - public ResponseEntity createAccount(@RequestBody final AccountRequest accountRe) { - Account response = null; - Optional bank; - try { - bank = bankService.getBankDetailsByID(accountRe.getBankId()); - - if (bank.isPresent()) { - Customer cust; - try { - cust = customerService.getCustomerDetails(accountRe.getCustomerId()); - - final Account acc = accountRe.getAccount(); - acc.setBank(bank.get()); - acc.setCustomer(cust); - try { - response = accountService.createAccount(acc); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Account not created", HttpStatus.OK); - } - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bank not present", HttpStatus.OK); - } - } - - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity("id not found", HttpStatus.OK); - } - - } - - /* - * method : getAccount return type : responseEntitiy description : this method - * will return a created account of a given input id - */ - - @GetMapping("/accountDetails/{id}") - public ResponseEntity getAccount(@PathVariable Long id) { - Account acc; - try { - acc = accountService.getAccountDetails(id); - return new ResponseEntity(acc, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("account of given id not found", HttpStatus.OK); - } - - } - - /* - * description : this method will return a success String if money is deposited - * mapping : post - */ - - @PostMapping("/accountDeposit") - public ResponseEntity depositAccount(@RequestBody final AccountTransaction account) { - try { - Long custId = accountService.depositMoney(account); - return new ResponseEntity(custId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - - /* - * description : this method will return a string if amount is withdraw - */ - - @PostMapping("/accountwithdraw") - public ResponseEntity withdrawAccount(@RequestBody final AccountTransaction account) { - try { - Long customerId = accountService.withdrawlMoney(account); - return new ResponseEntity(customerId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/BankController.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/BankController.java deleted file mode 100644 index d3ef533..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.service.IBankService; - -@RestController -@RequestMapping("/bank") -public class BankController { - - @Autowired - private IBankService bankService; - - - /* - * description : this method will return a bank instance - */ - @PostMapping("/bankCreate") - public ResponseEntity createBank(@RequestBody final Bank bank) { - - Bank bank1; - try { - bank1 = bankService.createBank(bank); - return new ResponseEntity(bank1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Bank not Added ", HttpStatus.OK); - } - - } - - /* - * description : this method will return a list of banks - */ - @GetMapping("/getBankDetails") - public ResponseEntity getBankDetails() { - List list; - try { - list = bankService.getBankDetails(); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bankDetailsnotfound", HttpStatus.OK); - } - - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java deleted file mode 100644 index 5d97e9f..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -@RestController -@RequestMapping("/customer") -public class CustomerController { - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - - - /** - * @return the customerService - */ - public ICustomerService getCustomerService() { - return customerService; - } - - /** - * @param customerService the customerService to set - */ - public void setCustomerService(ICustomerService customerService) { - this.customerService = customerService; - } - - /** - * @return the bankService - */ - public IBankService getBankService() { - return bankService; - } - - /** - * @param bankService the bankService to set - */ - public void setBankService(IBankService bankService) { - this.bankService = bankService; - } - - /* description : this method will return a - * created customer - */ - @PostMapping("/customerCreate") - public ResponseEntity createCustomer(@RequestBody final CreateCustomerRequest createCustomerRequest) { - Customer response = null; - Optional bank; - - try { - bank = bankService.getBankDetailsByID(createCustomerRequest.getBankID()); - - if (bank.isPresent()) { - final Customer cust = createCustomerRequest.getCustomer(); - cust.setBank(bank.get()); - - try { - response = customerService.createCustomer(cust); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("faild to create customer", HttpStatus.OK); - } - } - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e1) { - String message = e1.getMessage(); - return new ResponseEntity("unable to fetch bank details by id", HttpStatus.OK); - } - - } - - /* description : this method will return a created customer of - * specified id - */ - @GetMapping("/getCustomerDetails/{id}") - public ResponseEntity getCustomer(@PathVariable final Long id) { - final Customer cust; - try { - cust = customerService.getCustomerDetails(id); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("id not found for customer to get details", HttpStatus.OK); - } - } - - @PutMapping("/{id}/{name}/{userId}") - public ResponseEntity updateCustomer(@PathVariable final Long id,@PathVariable final String name,@PathVariable final String userId) throws CloneNotSupportedException { - final Customer cust; - try { - cust = customerService.updateCustomer(id, name, userId); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("unable to update data", HttpStatus.OK); - } - } -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java deleted file mode 100644 index f0257c3..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.bank.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateDenominationRequest; -import com.bank.service.IAtmDenoService; -import com.bank.service.IBankDenominationService; -import com.bank.service.IRefServcie; - -@RestController -public class DenominationController { - - @Autowired - private IRefServcie refService; - - @Autowired - private IBankDenominationService bankDenominations; - @Autowired - private IAtmDenoService atmDenominationService; - - - - // this will add denominations to bank and atm - @PostMapping("/addDenominations") - public void addDenomination(@RequestBody CreateDenominationRequest createDenomination) - { - - try { - refService.createDenomination(createDenomination.getList()); - } catch (ManagedException e1) { - - e1.printStackTrace(); - } - try { - bankDenominations.bankDenominationCreate(createDenomination.getList(),createDenomination.getBankId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try { - atmDenominationService.atmDenominationCreate(createDenomination.getList(), createDenomination.getAtmId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java deleted file mode 100644 index 6c017c2..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.TransactionReq; -import com.bank.model.Transaction; -import com.bank.service.ITransactionService; - -@RestController -public class TransactionController { - @Autowired - private ITransactionService transactionService; - - - - // this will return all the statements of account id - @GetMapping("/transactionDetails/{accountId}") - public ResponseEntity retriveTrans(@PathVariable final Long accountId) { - - List list; - try { - list = transactionService.generateTransactionReport( accountId); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity(message, HttpStatus.OK); - } - } - - //this will create statements instance which will be used to tract transactions made by user - - @PostMapping("/transactionCreate") - public ResponseEntity createTransaction(@RequestBody final TransactionReq trans) { - - final Transaction transact =trans.getTransaction(); - final Transaction newtrans; - try { - newtrans = transactionService.createTransaction(transact); - return new ResponseEntity(newtrans, HttpStatus.CREATED); - } catch (ManagedException e) { - // TODO Auto-generated catch block - String msg=e.getMessage(); - return new ResponseEntity(msg, HttpStatus.OK); - } - - - } -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java deleted file mode 100644 index d71f279..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bank.dto; - -import com.bank.model.ATM; - -public class ATMReq { - private Long bankId; - private ATM atm; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - /** - * @param atm the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } -public ATMReq() { - // TODO Auto-generated constructor stub -} -/** - * @param bankId - * @param atm - */ -public ATMReq(Long bankId, ATM atm) { - this.bankId = bankId; - this.atm = atm; -} - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java deleted file mode 100644 index 065159f..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Account; - -public class AccountRequest { - - private long bankId; - private long customerId; - private Account account; - /** - * @return the bankId - */ - public long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the account - */ - public Account getAccount() { - return account; - } - /** - * @param account the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountRequest [bankId=" + bankId + ", customerId=" + customerId + ", account=" + account + "]"; - } - - - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java deleted file mode 100644 index bf9f152..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AccountTransaction { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this. accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java deleted file mode 100644 index 7557450..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AddMoneyReq { - - private Long atmId; - private Long bankId; - private BigDecimal amount; - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java deleted file mode 100644 index 70ea8de..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Customer; - -public class CreateCustomerRequest { - - private Customer customer; - private Long bankID; - - /** - * @return the bankID - */ - public Long getBankID() { - return bankID; - } - /** - * @param bankID the bankID to set - */ - public void setBankID(Long bankID) { - this.bankID = bankID; - } - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - /** - * @param customer the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - /** - * @param customer - * @param bankID - */ - public CreateCustomerRequest(Customer customer, Long bankID) { - super(); - this.customer = customer; - this.bankID = bankID; - } -public CreateCustomerRequest() { - // TODO Auto-generated constructor stub -} -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java deleted file mode 100644 index 50c0153..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; -import java.util.List; - -public class CreateDenominationRequest { - - private List list; - private Long bankId; - private Long atmId; - /** - * @return the list - */ - public List getList() { - return list; - } - /** - * @param list the list to set - */ - public void setList(List list) { - this.list = list; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java deleted file mode 100644 index 427128d..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Transaction; - -public class TransactionReq { - - private Long customerId; - private Long accountId; - private Transaction transaction; - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the transaction - */ - public Transaction getTransaction() { - return transaction; - } - /** - * @param transaction the transaction to set - */ - public void setTransaction(Transaction transaction) { - this.transaction = transaction; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java deleted file mode 100644 index c5af5af..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class WithrawMoneyReq { - private Long accountId; - private BigDecimal amount; - private Long atmId; - private Long customerId; - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/ATM.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/ATM.java deleted file mode 100644 index 4085121..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/ATM.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "atm_info") -@Entity -public class ATM extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "atm_id") - private Long ATMId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "id") - private Long bankId; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(final Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - public ATM() { - // TODO Auto-generated constructor stub - } - - - @Override - public String toString() { - return "ATM [ATMId=" + ATMId + ", amount=" + amount + ", bankId=" + bankId + "]"; - } - - /** - * @param aTMId - * @param amount - * @param bankId - */ - public ATM(Long aTMId, BigDecimal amount, Long bankId) { - ATMId = aTMId; - this.amount = amount; - this.bankId = bankId; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java deleted file mode 100644 index d7d7e63..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Ref_ATM_Denm") -@Entity -public class ATMDenomination extends BaseEntity { - @Column(name = "atm_id") - private Long ATMId; - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noofdenomination") - private int noofDenomination; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noofDenomination - */ - public int getNoofDenomination() { - return noofDenomination; - } - - /** - * @param noofDenomination - * the noofDenomination to set - */ - public void setNoofDenomination(int noofDenomination) { - this.noofDenomination = noofDenomination; - } - - public ATMDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param aTMId - * @param denomination - * @param noofDenomination - */ - public ATMDenomination(Long aTMId, BigDecimal denomination, int noofDenomination) { - ATMId = aTMId; - this.denomination = denomination; - this.noofDenomination = noofDenomination; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Account.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Account.java deleted file mode 100644 index 3579959..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Account.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Table(name = "account_details") -@Entity -public class Account extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "account_id") - private Long accountId; - @Column(name = "amount") - private BigDecimal amount; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - - public Account() { - - } - - @Override - public String toString() { - return "Account [accountId=" + accountId + ", amount=" + amount + ", customer=" + customer + ", bank=" + bank - + "]"; - } - - /** - * @param accountId - * @param amount - * @param customer - * @param bank - */ - public Account(Long accountId, BigDecimal amount, Customer customer, Bank bank) { - this.accountId = accountId; - this.amount = amount; - this.customer = customer; - this.bank = bank; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/AuditLog.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/AuditLog.java deleted file mode 100644 index aa42fa2..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/AuditLog.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.bank.model; - -import java.sql.Timestamp; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - - -/*@JsonIgnoreProperties(ignoreUnknown = true)*/ -public class AuditLog { - - private String eventName; - private String eventType; - private Timestamp eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Timestamp getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Timestamp eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - - } - @Override - public String toString() { - return "AuditLog [eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" + eventDate - + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - /** - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(String eventName, String eventType,Timestamp eventDate, String userId, Object oldValue, - Object newValue) { - super(); - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Bank.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Bank.java deleted file mode 100644 index d52ebb2..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -/** - * author Ram Dafale - */ - -@Table(name = "bank_details") -@Entity -public class Bank extends BaseEntity { - - @Id - // @SequenceGenerator(name = "bank_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.IDENTITY /* , generator = "bank_seq" */) - @Column(name = "id") - private Long bankId; - - @Column(name = "amount") - private BigDecimal amount; - @OneToMany - @JoinColumn(name = "id", referencedColumnName = "id") - List atmList = new ArrayList(); - - public Bank() { - } - - /** - * method name : getBankId() return type : Long decription : it we get all bank - * id - */ - public Long getBankId() { - return bankId; - } - - /** - * method name : setBankId(final Long bankId) method description : it will set - * the bank id - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - /** - * method name : getAmount method description : it will get the total bank - * amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * method name : setAmount method parameters : BigDecimal method description : - * it will set bank amount - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } - - /** - * @param bankId - * @param amount - */ - public Bank(Long bankId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.amount = amount; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java deleted file mode 100644 index a1a0938..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Bank_Denm") -@Entity -public class BankDenomination extends BaseEntity { - - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noOfDenomination") - private int noOfDenomination; - @Column(name = "bank_id") - private Long bankId; - - - - /** - * @return the bankId - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noOfDenomination - */ - public int getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(int noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - public BankDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param bankId - * @param denomination - * @param noOfDenomination - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination) { - - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "BankDenomination [denomination=" + denomination + ", noOfDenomination=" + noOfDenomination + ", bankId=" - + bankId + "]"; - } - - /** - * @param denomination - * @param noOfDenomination - * @param bankId - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination, Long bankId) { - super(); - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((denomination == null) ? 0 : denomination.hashCode()); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BankDenomination other = (BankDenomination) obj; - if (denomination == null) { - if (other.denomination != null) - return false; - } else if (!denomination.equals(other.denomination)) - return false; - return true; - } - -} \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java deleted file mode 100644 index 2b31305..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.model; - -import javax.persistence.MappedSuperclass; - -@MappedSuperclass -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId - * the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Customer.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Customer.java deleted file mode 100644 index 8ca484b..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Customer.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.bank.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -/** - * author Ram - */ -@Table(name = "customer_details") -@Entity -public class Customer extends BaseEntity implements Cloneable { - - @Id - //@SequenceGenerator(name = "customer_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.IDENTITY/*, generator = "customer_seq"*/) - @Column(name = "id") - private Long customerId; - @Column(name = "customer_name") - private String customerName; - @Column(name = "pin") - private Long pin; - - // relational mapping of bank to customer - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Customer() { - // TODO Auto-generated constructor stub - } - - /** - * method name : getCustomerId method returnTypr : Long method description : to - * get customer id - */ - public Long getCustomerId() { - return customerId; - } - - /** - * method name : setCustomerId method parameter : Long method description : it - * will set customerId - */ - public void setCustomerId(final Long customerId) { - this.customerId = customerId; - } - - /** - * method Name : getCustomerName method return type : String method description - * : it will get he customer name - */ - public String getCustomerName() { - return customerName; - } - - /** - * method name : setCustomerName method parameter : String method description : - * it will set customerName - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * method Name : getPin method return type : Long method description : it will - * get he pin - */ - public Long getPin() { - return pin; - } - - /** - * method name : setPin method parameter : Long method description : it will set - * pin - */ - public void setPin(final Long pin) { - this.pin = pin; - } - - /** - * method name : setBank method parameter : Bank method description : it will - * set Bank - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", pin=" + pin + ", bank=" - + bank + "]"; - } - - /** - * @param customerId - * @param customerName - * @param pin - */ - public Customer(Long customerId, String customerName, Long pin) { - super(); - this.customerId = customerId; - this.customerName = customerName; - this.pin = pin; - } - - public Customer(String string, long l) { - - } - @Override - public Customer clone()throws CloneNotSupportedException{ - return (Customer)super.clone(); - } - public Customer( String customerName) { - super(); - - this.customerName = customerName; - - } - - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/RefMoney.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/RefMoney.java deleted file mode 100644 index 3d5d6d2..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/RefMoney.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -@Table(name="ref_money") -@Entity -public class RefMoney extends BaseEntity { - @Id - private BigDecimal denomination; - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } -public RefMoney() { - // TODO Auto-generated constructor stub -} -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Transaction.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Transaction.java deleted file mode 100644 index c958e83..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/model/Transaction.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.springframework.stereotype.Component; - -@Table(name = "transaction_details") -@Entity -@Component -public class Transaction extends BaseEntity{ - @Id - @SequenceGenerator(name = "transaction_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "transaction_seq") - @Column(name = "transaction_id") - private Long transactionId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "transaction_type") - private String transactionType; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - @ManyToOne(targetEntity = Account.class) - private Account account; - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(final Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customerId - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(final String transactionType) { - this.transactionType = transactionType; - } - - public Transaction() { - // TODO Auto-generated constructor stub - } - - /** - * @param customerId - * @param accountId - * @param amount - * @param transactionType - */ - public Transaction(BigDecimal amount, String transactionType) { - super(); - /* - * this.customerId = customerId; this.accountId = accountId; - */ - this.amount = amount; - this.transactionType = transactionType; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java deleted file mode 100644 index c08f97c..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATMDenomination; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMDenoRepository extends JpaRepository { - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java deleted file mode 100644 index bb53cc1..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATM; -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMRepository extends JpaRepository{ - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java deleted file mode 100644 index c5754c5..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface AccountRepository extends JpaRepository{ - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java deleted file mode 100644 index 15a792a..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import org.springframework.stereotype.Repository; - -import com.bank.model.Bank; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -@Repository -public interface BankRepository extends JpaRepository { - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java deleted file mode 100644 index e603c13..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Customer; -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface CustomerRepository extends JpaRepository { - - Optional findOneByCustomerName(String CustomerName); -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java deleted file mode 100644 index 5711e5c..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.BankDenomination; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface DenominationRepository extends JpaRepository{ - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java deleted file mode 100644 index ad5053d..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.RefMoney; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface RefMoneyRepository extends JpaRepository { - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java deleted file mode 100644 index ed3ce90..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Account; -import com.bank.model.Transaction; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface TransactionRepository extends JpaRepository{ - - - /* - * this query will find trasanction where account id is associated - */ - @Query(value="select * from transaction_details where account_account_id=?1",nativeQuery=true) - List findAllByAccountId(Long accountId); - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java deleted file mode 100644 index edeef45..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("atmService") -public class ATMServiceImpl implements IATMService { - - final Logger LOGGER = LoggerFactory.getLogger(ATMServiceImpl.class); - -//injectiong all required properties - @Autowired - private ATMRepository atmRepo; - @Autowired - private IBankService bankService; - @Autowired - private IAccountService accountService; - @Autowired - private ICustomerService customerService; - @Autowired - private TransactionRepository trans; - @Autowired - private IAtmDenoService atmDeno; - - - //will create new instance for atm - @Override - public ATM createATM(final ATM atm) throws ManagedException { - // TODO Auto-generated method stub - final ATM atm1 = atmRepo.save(atm); - if (atm1 != null) { - LOGGER.info("atm is added"); - return atm1; - } else { - LOGGER.error("no atm is added"); - throw new ManagedException("No such atm is created!!"); - } - } - - // will add money from bank to atm - @Transactional - @Override - public String addMoneyFromBank(final AddMoneyReq atmreq) throws ManagedException { - // TODO Auto-generated method stub - final Optional atm = atmRepo.findById(atmreq.getAtmId()); - if (atm.isPresent()) { - ATM atm1 = atm.get(); - final Long bankID = atmreq.getBankId(); - final Long bankId = atm1.getBankId(); - if (bankID.equals(bankId)) { - final BigDecimal amount = atmreq.getAmount(); - final Optional bankopt=bankService.getBankDetailsByID(atmreq.getBankId()); - final Bank bank=bankopt.get(); - BigDecimal bankAmount = bank.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(bankAmount) == -1) { - BigDecimal atmAmount = atm1.getAmount(); - atmAmount = atmAmount.add(amount); - atm1.setAmount(atmAmount); - bankAmount = bankAmount.subtract(amount); - bank.setAmount(bankAmount); - bankService.createBank(bank); - atmRepo.save(atm1); - atmDeno.atmDenominationDeposit(atmreq.getAmount(), atmreq.getAtmId()); - LOGGER.info("amount is added to your account"); - return "amount added"; - - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less than you want"); - } - } - else - { - LOGGER.error("amount is negative"); - throw new ManagedException("amount connot be negative"); - } - - } - else - { - LOGGER.error("no bank id exist"); - throw new ManagedException("no such bank id exist"); - } - } - else - { - LOGGER.error("no atm id exist"); - throw new ManagedException("no such atm id exist"); - } - - } - - // will withdraws monet atm - - @Transactional - @Override - public Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException { - final Optional atm = atmRepo.findById(withdraw.getAtmId()); - if (atm.isPresent()) { - final ATM atm1 = atm.get(); - BigDecimal amount = atm1.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(withdraw.getAmount()) == 1) { - final Account account =accountService.getAccountDetails(withdraw.getAccountId()); - BigDecimal accountAmount = account.getAmount(); - if (accountAmount.compareTo(withdraw.getAmount()) == 1) { - amount = amount.subtract(withdraw.getAmount()); - atm1.setAmount(amount); - accountAmount = accountAmount.subtract(withdraw.getAmount()); - account.setAmount(accountAmount); - accountService.createAccount(account); - atmRepo.save(atm1); - Transaction transaction = new Transaction(); - transaction.setAccount(account); - transaction.setAmount(account.getAmount()); - final Customer customer = customerService.getCustomerDetails(withdraw.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.save(transaction); - LOGGER.info("amount is deducted"); - return withdraw.getAccountId(); - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less thsn amount you want to withdraw"); - } - } - else - { LOGGER.error("atm amount is less"); - throw new ManagedException("atm does not have this much of amount"); - } - } - else - { LOGGER.error("-ve amount not possible "); - throw new ManagedException("negative amount cannot possible"); - } - } - else - { LOGGER.error("no atm id exist"); - throw new ManagedException("no such id of atm exist"); - } - } -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java deleted file mode 100644 index b3dbada..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("accountService") -public class AccountServiceImpl implements IAccountService { - final Logger LOGGER = LoggerFactory.getLogger(AccountServiceImpl.class); - @Autowired - private AccountRepository accountRepository; - @Autowired - private ITransactionService trans; - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - @Autowired - private IBankDenominationService bankDenoService; - private BigDecimal balance; - - - // this will create account instance for customer - @Override - public Account createAccount(final Account account) throws ManagedException { - final Account acc = accountRepository.save(account); - if (acc != null) { - LOGGER.info("account created"); - return acc; - } else { - LOGGER.error("no account is created"); - throw new ManagedException("No account is created"); - } - } - //this will credit money to account - @Transactional - @Override - public Long depositMoney(final AccountTransaction account) throws ManagedException { - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - final Optional acc1 = accountRepository.findById(account.getAccountId()); - if (acc1.isPresent()) { - - final Account acc = acc1.get(); - balance = acc.getAmount(); - balance = balance.add(account.getAmount()); - acc.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - bankDenoService.bankDenominationDeposit(account.getAmount(),account.getBankId()); - - }else - { LOGGER.error("no bank id present"); - throw new ManagedException("no bank is present of given id"); - } - Transaction transaction = new Transaction(); - transaction.setAccount(acc); - transaction.setAmount(acc.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("credit"); - trans.createTransaction(transaction); - LOGGER.info("AMOUNT IS ADDED"); - return account.getCustomerId(); - } else { - LOGGER.error("no amount is deposited"); - throw new ManagedException("zero amount deposited"); - } - } - else - { - LOGGER.error("-ve amount is not possible"); - throw new ManagedException("negative amount is not possible"); - } - } - - //this will debit money from account - @Transactional - @Override - public Long withdrawlMoney(final AccountTransaction account) throws ManagedException { - // TODO Auto-generated method stub - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - Optional acc1 = accountRepository.findById(account.getAccountId()); - if (acc1.isPresent()) { - final Account account1 = acc1.get(); ; - balance = account1.getAmount(); - balance = balance.subtract(account.getAmount()); - account1.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - bankDenoService.bankDenominationWithdraw(account.getAmount(), account.getBankId()); - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - - Transaction transaction=new Transaction(); - transaction.setAccount(account1); - transaction.setAmount(account1.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - if(customer!=null) - { - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.createTransaction(transaction); - LOGGER.info("amount is deducted"); - return account.getCustomerId(); - } - else - { LOGGER.error("no customer exist"); - throw new ManagedException("No customer of such occunct exsit"); - } - }else - {LOGGER.error("no account exist"); - throw new ManagedException("No such account exist"); - } - - } else { - LOGGER.error("not enough amount to withdraw"); - throw new ManagedException("No amount withdraw"); - } - } - else - { - LOGGER.error("-ve value is not posssible"); - throw new ManagedException("negative amount is not possible"); - } - } - - - //It will give account details of perticular Id - @Override - public Account getAccountDetails(final Long id) throws ManagedException { - // TODO Auto-generated method stub - Account account = accountRepository.findById(id).get(); - if (account != null) { - LOGGER.info("account retrived"); - return account; - } else { - LOGGER.error("no such id exist"); - throw new ManagedException("no such element found"); - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java deleted file mode 100644 index 4839f4f..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.ATMDenoRepository; -import com.bank.repository.ATMRepository; -import com.bank.repository.DenominationRepository; - -@Service -public class AtmDenoServiceImpl implements IAtmDenoService{ - - - @Autowired - private IRefServcie refService; - - @Autowired - private DenominationHelper denominationHelper; - - @Autowired - private ATMDenoRepository atmdenoRepository; - @Autowired - private ATMRepository atmRepo; - @Autowired - private DenominationRepository bankDeno; - @Autowired - IBankService bankService; - - - // this will create denominations for atm - @Override - public void atmDenominationCreate(List list, Long atmId) throws ManagedException { - - for(BigDecimal denom: list ) - { - final ATMDenomination first = new ATMDenomination(atmId,new BigDecimal(denom.intValue()), 0); - atmdenoRepository.save(first); - - } - } - - //this method provide logic (when you add money to atm ) for denominations adjustments - @Override - public void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException { - // TODO Auto-generated method stub - - List newList=refService.returnAll(); - - List list = new ArrayList<>(); - for(RefMoney deno:newList) - { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - ATMDenomination atmDeno=new ATMDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count=pair.getValue(); - System.out.println("key value"+myValue); - Optional deno=atmdenoRepository.findById(myValue); - ATMDenomination denomination=deno.get(); - System.out.println("denomination"+denomination); - System.out.println("count value"+count); - ATM atm=atmRepo.findById(atmId).get(); - BankDenomination bank=bankDeno.findById(myValue).get(); - int newNum=bank.getNoOfDenomination()-count; - bank.setNoOfDenomination(newNum); - bankDeno.save(bank); - denomination.setATMId(atmId); - denomination.setNoofDenomination(denomination.getNoofDenomination()+count); - - atmdenoRepository.save(denomination); - } - } - } - - - - diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AuditRegistrationSource.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AuditRegistrationSource.java deleted file mode 100644 index f8d9d16..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AuditRegistrationSource.java +++ /dev/null @@ -1,15 +0,0 @@ -/*package com.bank.service; - -import org.springframework.cloud.stream.annotation.Output; -import org.springframework.messaging.MessageChannel; - -public interface AuditRegistrationSource { - - - - @Output("auditRegistrationChannel") - MessageChannel auditRegistration(); - - -} -*/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java deleted file mode 100644 index 1c583f5..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.bank.service; - -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.bank.model.AuditLog; - -@Service -public class AuditServiceImpl { - - //generate audit log - public AuditLog generateAudit(final AuditLog audit) - { - final RestTemplate restTemplate=new RestTemplate(); - final String uri="http://localhost:8082/audit"; - System.out.println("audit obnject " + audit); - final AuditLog audii=restTemplate.postForObject(uri, audit, AuditLog.class); - return audii; - } -} - \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index 1d2acb9..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.DenominationRepository; - -@Service -public class BankDenominationServiceImpl implements IBankDenominationService { - @Autowired - private DenominationRepository denominationRepo; - @Autowired - private IBankService bankServcie; - @Autowired - private DenominationHelper denominationHelper; - @Autowired - private IRefServcie refService; - - - //create denomination for bank - @Override - public void bankDenominationCreate(List list, Long bankId) throws ManagedException { - - // to get values from database - for (BigDecimal denom : list) { - final BankDenomination first = new BankDenomination(new BigDecimal(denom.intValue()), 0, bankId); - denominationRepo.save(first); - - } - - } - - - //this will provide logic: when you withdraws money denominations will get adjusted accordingly - - @Override - public void bankDenominationWithdraw(BigDecimal amount, Long bankId) throws ManagedException { - List newList = refService.returnAll(); - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getcountDenomination(amount, list); - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - System.out.println("key value" + myValue); - Optional deno = denominationRepo.findById(myValue); - BankDenomination denomination = deno.get(); - System.out.println("denomination" + denomination); - System.out.println("count value" + count); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() - count); - denominationRepo.save(denomination); - - } - - } - - @Override - public void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException { - - List newList = refService.returnAll(); - - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - BankDenomination bankDeno = new BankDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - - Optional deno = denominationRepo.findById(myValue); - BankDenomination denomination = deno.get(); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() + count); - denominationRepo.save(denomination); - } - - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java deleted file mode 100644 index bb1f1c5..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.repository.BankRepository; - -@Service("bankService") -public class BankServiceImpl implements IBankService { - - final Logger LOGGER = LoggerFactory.getLogger(BankServiceImpl.class); - @Autowired - private BankRepository bankRepository; - @Autowired - private IBankDenominationService bankDenoService; - - - // create new bank instance - @Override - public Bank createBank(final Bank bank) throws ManagedException { - final Bank bank1 = bankRepository.save(bank); - if (bank1 != null) { - - return bank1; - } else { - LOGGER.error("No bank is added"); - throw new ManagedException("No Bank is Added"); - } - } - - - @Override - public List getBankDetails() throws ManagedException { - final List list = bankRepository.findAll(); - if (list.isEmpty()) { - LOGGER.error("No banks found"); - throw new ManagedException("No bank found"); - } else { - return list; - } - } - - @Override - public Optional getBankDetailsByID(final long ID) throws ManagedException { - // TODO Auto-generated method stub - final Optional bank = bankRepository.findById(ID); - if (bank.isPresent()) { - return bank; - } else { - LOGGER.error("no bank of such id exist"); - throw new ManagedException("No such bank found"); - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java deleted file mode 100644 index 937aa24..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.bank.service; - -import java.sql.Timestamp; - - -import java.time.LocalDateTime; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -/*import org.springframework.cloud.stream.annotation.EnableBinding;*/ -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.AuditLog; -import com.bank.model.Customer; -import com.bank.repository.CustomerRepository; -import com.configrabbit.RabbitConfig; - -enum EventName { - CUSTOMER, ACCOUNT, ATM, BANK -} - -enum EventType { - CREATED, UPDATED -} - -@Service("customerService") -@Component -/*@EnableBinding(AuditRegistrationSource.class)*/ -public class CustomerServiceImpl implements ICustomerService, Cloneable { - - - final static Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class); - @Autowired - private CustomerRepository customerRepository; - @Autowired - AuditServiceImpl auditService; - - @Autowired - RabbitTemplate template; - - @Override - public Customer createCustomer(final Customer customer) throws ManagedException { - final Customer custom = customerRepository.save(customer); - if (custom != null) { - return custom; - } else { - LOGGER.error("No customer is added"); - throw new ManagedException("no customer is created"); - } - } - - @Override - public Customer getCustomerDetails(final Long id) throws ManagedException { - - final Customer customer = customerRepository.findById(id).get(); - if (customer != null) { - return customer; - } else { - LOGGER.info("No customer of given id is exist"); - throw new ManagedException("no customer of such id exist"); - } - - } - - @Override - public Customer updateCustomer(final Long id, final String name, final String userId) - throws ManagedException, CloneNotSupportedException { - // TODO Auto-generated method stub - final Customer customer = customerRepository.findById(id).get(); - - Customer oldcustmer = customer.clone(); - - if (customer != null) { - customer.setCustomerName(name); - customer.setUserId(userId); - Customer cust = customerRepository.save(customer); - Timestamp time = Timestamp.valueOf(LocalDateTime.now()); - AuditLog audit = new AuditLog(EventName.CUSTOMER.toString(), EventType.UPDATED.toString(), time, - cust.getUserId(), oldcustmer, cust); - - //AuditLog ob = auditService.generateAudit(audit); - - - System.out.println("hii"); - - //template.convertAndSend(RabbitConfig.ROUTING_KEY,audit.toString()); - template.convertAndSend(RabbitConfig.ROUTING_KEY,"message from producer"); - //System.out.println("Is Listner called::"+rabbitTemplate.isReturnListener()); - - - - return cust; - } else { - LOGGER.info("No customer is updated as id not exist"); - throw new ManagedException("no customer is updated"); - } - - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java deleted file mode 100644 index 8621dc3..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -@Component -public class DenominationHelper { - - public Map getDenominatioValues(final BigDecimal amount , final List list) throws ManagedException { - final Map newMap=new HashMap(); - Random random = new Random(); - BigDecimal remainder = amount; - if(amount.intValue()>=0) - { - for(int i=0;i<=list.size();i++) - { - Integer randomIndex = random.nextInt(list.size()); - BigDecimal randomElement = list.get(randomIndex); - if ( !(randomElement.compareTo(remainder) >0) ) { - Integer count=remainder.divide(randomElement).intValue(); - remainder= remainder.remainder( randomElement); - - newMap.put(randomElement,count); - - if (remainder.compareTo(BigDecimal.ZERO) ==0) { - break; - } - } - list.remove(randomIndex); - - } - if (remainder.compareTo(BigDecimal.ZERO) !=0) { - System.out.println("cant Proceed "); - return null ; - } - - } - return newMap; - } - - - - public Map getcountDenomination(BigDecimal amount, List list) throws ManagedException - { - Map newMap = new HashMap(); - - List selectedList = new ArrayList(); - for (BigDecimal denom : list) { - if (denom.compareTo(amount) <= 0) { - selectedList.add(denom); - } else { - throw new ManagedException("selected list is empty"); - } - } - for (int i = 0; i <= selectedList.size(); i++) { - BigDecimal maxDen = Collections.max(selectedList); - Integer count = amount.divide(maxDen).intValue(); - amount = amount.remainder(maxDen); - newMap.put(maxDen, count); - - if (amount.compareTo(BigDecimal.ZERO) == 0) { - break; - } - selectedList.remove(maxDen); - } - // get index of particular element - if (amount.compareTo(BigDecimal.ZERO) != 0) { - throw new ManagedException("amount cannot be withdrawn"); - } - return newMap; - } -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IATMService.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IATMService.java deleted file mode 100644 index 91f56b9..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IATMService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; - -/** - * @author ram - */ -public interface IATMService { - /** - * method name : createATM return type : ATM object parameter :object of ATM - * description : this method will return a atm which is created - */ - ATM createATM(final ATM atm) throws ManagedException; - - /** - * method name : addMoneyFromBank return type : String parameter :object of - * ATMMoneyReq description : this method will return a string if money is added - * to atm - */ - String addMoneyFromBank(final AddMoneyReq atm) throws ManagedException; - - /** - * method name : withrawMoney return type : String parameter :object of - * WithdrawMoneyReq description : this method will return a string if - * successfully money withraw - */ - Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IAccountService.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IAccountService.java deleted file mode 100644 index d207310..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IAccountService.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; - -public interface IAccountService { - /** - * method name : createAccount return type : Account object parameter :object of - * Account class description : this method will return a account which is - * created - */ - Account createAccount(final Account account) throws ManagedException; - - /** - * method name : depositMoney return type : String parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully amount is added and add to transaction list - */ - Long depositMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : withdrawlMoney return type : String object parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully withdraw and add to transaction list - */ - Long withdrawlMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : getAccountDetails return type : Account object parameter :Long - * id description : this method will return a account which is created of given - * id - */ - Account getAccountDetails(final Long id) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java deleted file mode 100644 index 47657d8..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java +++ /dev/null @@ -1,15 +0,0 @@ - package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; - -public interface IAtmDenoService { - - - - - void atmDenominationCreate(List list,Long atmId)throws ManagedException; - void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException; -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java deleted file mode 100644 index 124f9c5..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -import com.bank.Exception.ManagedException; - -public interface IBankDenominationService { - - - void bankDenominationWithdraw(BigDecimal amount,Long bankId) throws ManagedException; - void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException ; - void bankDenominationCreate(List list,Long bankId)throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IBankService.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IBankService.java deleted file mode 100644 index a464c98..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IBankService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; - -public interface IBankService { - /* - * description : this method will return a bank which is created - */ - Bank createBank(final Bank bank) throws ManagedException; - - /* description : this method will return a list of all banks - */ - List getBankDetails() throws ManagedException; - - /* - * description : this method will return a bank of given id - */ - Optional getBankDetailsByID(final long Id) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java deleted file mode 100644 index 8256c10..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Customer; - -/** - * @author ram - * - */ -public interface ICustomerService { - /** - * description : this method will return a customer which is - * created - */ - Customer createCustomer(final Customer customer) throws ManagedException; - - /** - * description : this method will return a customer of specified id - */ - Customer getCustomerDetails(final Long id) throws ManagedException; - /* - * description : this method will return a customer of specified id with updation - * @throws CloneNotSupportedException ,ManagedException - */ - Customer updateCustomer(final Long id,final String name, final String userId ) throws ManagedException, CloneNotSupportedException; -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java deleted file mode 100644 index 85867ad..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -/** - * @author ram - * - */ -public interface IRefServcie { - - /** - * - * @param denomination - * @return - * @throws BankException - */ - - /** - * - * @return - * @throws ManagedException - */ - List returnAll() throws ManagedException; - void createDenomination(List list) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java deleted file mode 100644 index 9e8c997..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; - -/** - * @author ram - * - */ -public interface ITransactionService { - /** - * method name : createTransaction return type : Transaction object parameter - * :Transaction description : this method will return a transaction which is - * created - */ - Transaction createTransaction(final Transaction trans) throws ManagedException; - - /** - * method name : generateTransactionReport return type : List - * Object description : this method will return a list which of transactions - */ - List generateTransactionReport(Long accountId) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java deleted file mode 100644 index 8a4a66f..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; -import com.bank.repository.RefMoneyRepository; -@Service -public class RefServcieImpl implements IRefServcie { - -@Autowired -private RefMoneyRepository refRepo; - @Override - public void createDenomination(List list) throws ManagedException{ - for(BigDecimal denomination: list ) - { - if(!refRepo.findById(denomination).isPresent()) - { - RefMoney refMoney=new RefMoney(); - refMoney.setDenomination(denomination); - refRepo.save(refMoney); - //return true; - } - else - { - throw new ManagedException("Denomination already exist!!!!"); - } - } - } - - @Override - public List returnAll() throws ManagedException { - - List list=refRepo.findAll(); - if(list.isEmpty()) - { - throw new ManagedException("no denomination found"); - } - else - { - return list; - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 213e1ea..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.bank.service; - -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; -import com.bank.repository.TransactionRepository; -@Service -public class TransactionServiceImpl implements ITransactionService{ - final Logger LOGGER = LoggerFactory.getLogger(TransactionServiceImpl.class); - @Autowired - private TransactionRepository transact; - - @Override - public Transaction createTransaction(final Transaction trans) throws ManagedException { - - final Transaction newtransaction =transact.save(trans); - if(newtransaction!=null) - { - return newtransaction; - } - else - { - throw new ManagedException("no transaction has been created"); - } - } - - @Override - public List generateTransactionReport(Long accountId) throws ManagedException { - // TODO Auto-generated method stub - System.out.println(">>>>>>>>"+accountId); - List transopt=transact.findAllByAccountId(accountId); - System.out.println(">>>>>>>>"+transopt); - - return transopt; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/configrabbit/RabbitConfig.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/configrabbit/RabbitConfig.java deleted file mode 100644 index 7a0370c..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/java/com/configrabbit/RabbitConfig.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.configrabbit; - -import org.springframework.amqp.core.TopicExchange; -import org.springframework.amqp.core.Binding; -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.Queue; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -@Configuration -public class RabbitConfig { - //exchange will send the message through ROUTING_KEY to queue - public static final String ROUTING_KEY="sfg-message-queue"; - - //queue will recieve the message and make it durable - @Bean - Queue queue() - { - return new Queue(ROUTING_KEY, true); - } - - @Bean - TopicExchange exchange() - { - return new TopicExchange("spring-boot-exchange"); - - } - - @Bean - Binding binding(Queue queue, TopicExchange exchange) - { - return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY); - - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/resources/application.properties b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/resources/application.properties deleted file mode 100644 index 3d86cd8..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/main/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/bankapp?useSSL=false -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true - -spring.rabbitmq.host = 127.0.0.1 -spring.rabbitmq.port = 5672 -spring.rabbitmq.username=guest -spring.rabbitmq.password=guest \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java deleted file mode 100644 index 15bba78..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.bank.testcases; - - - - - - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Optional; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -import com.bank.Exception.ManagedException; -import com.bank.controller.CustomerController; -import com.bank.dto.ATMReq; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.service.ATMServiceImpl; -import com.bank.service.AccountServiceImpl; -import com.bank.service.BankServiceImpl; -import com.bank.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -@SpringBootConfiguration -@ComponentScan("application.properties") -public class AllTestCases { - - @Autowired - CustomerRepository customerRepository; - - @Autowired - CustomerServiceImpl customerServiceImpl; - - @Autowired - BankRepository bankRepository; - - @Autowired - BankServiceImpl bankServiceImpl; - - @Autowired - AccountRepository accountRepository; - - @Autowired - AccountServiceImpl accountServiceImpl; - - @Autowired - ATMRepository atmRepository; - - @Autowired - ATMServiceImpl atmServiceImpl; - - - @Test - public void createBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - when(bankRepository.save(bank)).thenReturn(bank); - // System.out.println(bank); - assertThat(bankServiceImpl.createBank(bank), is(notNullValue())); - } - - @Test - public void testAddBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - bankServiceImpl.createBank(bank); - - List departments = bankServiceImpl.getBankDetails(); - Assert.assertEquals(1, departments.size()); - } - - @Test - public void testAddCustomer() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - List employees = (List) customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(1, employees.size()); - } - - - @Test - public void testAddCustomerName() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getCustomerName(), employees.getCustomerName()); - } - RestTemplate restTemplate = new RestTemplate(); - @Autowired - CustomerController customerController; - - - - @Test - public void customerCreateRestTemplateTest() { - Customer customer = new Customer(); - customer.setCustomerName("Lokesh"); - customer.setPin(442001L); - - final String uri = "http://localhost:8080/customer/createCustomer"; - Optional ob = bankRepository.findById(1L); - Bank obj = ob.get(); - - CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest(customer,1L); - String result = restTemplate.postForObject(uri, createCustomerRequest, String.class); - - //System.out.println(result); - assertEquals(result, customerController.createCustomer(createCustomerRequest)); - } - - - - @Test - public void viewCustByRestTemplateTest() { - - final String uri = "http://localhost:8080/getCustomer"; - - RestTemplate restTemplate = new RestTemplate(); - String result = restTemplate.getForObject(uri, String.class); - System.out.println(result); - assertEquals(result, customerController.getCustomer(1L)); - } - - - - @Test - public void testAddCustomerpin() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getPin(), employees.getPin()); - } - - - @Test - public void testAddAccount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - List information = (List) accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(1, information.size()); - } - - @Test - public void testAddAccountAmount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAmount(), information.getAmount()); - } - - @Test - public void testAddAccountId() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAccountId(), information.getAccountId()); - } - - - @Test - public void createAtm() throws ManagedException { - Bank bank = new Bank(1L,new BigDecimal(1200)); - - Optional bnk = Optional.of(bank); - - ATM atm = new ATM(1L,new BigDecimal(5000), 1L); - - //ATMReq req = new ATMReq(1L,atm); - - - when(bankRepository.findById(Mockito.any(Long.class))).thenReturn(bnk); - when(atmRepository.save(atm)).thenReturn(atm); - assertThat(atmServiceImpl.createATM(atm), is(notNullValue())); - - } - - -} \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.gitignore b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.mvn/wrapper/maven-wrapper.jar b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.mvn/wrapper/maven-wrapper.properties b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/bootstrap.properties b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/bootstrap.properties deleted file mode 100644 index a2136c3..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/bootstrap.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.application.name=mongo-service -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27017 -spring.data.mongodb.database=mongodb -server.port=8082 -spring.cloud.config.uri=http://localhost:8888 \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/mvnw b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/mvnw.cmd b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/pom.xml b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/pom.xml deleted file mode 100644 index 68500f5..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/pom.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - 4.0.0 - - com.mongoDb - mongodbExample - 0.0.1-SNAPSHOT - jar - - mongodbExample - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-amqp - - - - org.projectlombok - lombok - 1.16.20 - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java deleted file mode 100644 index 82ac709..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.mongo.db; - -import org.springframework.amqp.core.Binding; -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.MessageListener; -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.core.TopicExchange; -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; -import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; - -import com.mongo.db.rcvlistner.MsgListener; - -@SpringBootApplication -public class MongoMain { - public final static String MESSAGE_QUEUE = "sfg-message-queue"; - - @Bean - Queue queue() { - return new Queue(MESSAGE_QUEUE, false); - } - - @Bean - TopicExchange exchange() { - return new TopicExchange("spring-boot-exchange"); - } - - @Bean - Binding binding(Queue queue, TopicExchange exchange) { - return BindingBuilder.bind(queue).to(exchange).with(MESSAGE_QUEUE); - } - - @Bean - SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, - MessageListenerAdapter listenerAdapter) { - SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); - container.setConnectionFactory(connectionFactory); - container.setQueueNames(MESSAGE_QUEUE); - container.setMessageListener(listenerAdapter); - return container; - } - - @Bean - MessageListenerAdapter listenerAdapter(MsgListener receiver) { - return new MessageListenerAdapter(receiver, "receiveMessage"); - } - public static void main(String[] args) { - SpringApplication.run(MongoMain.class, args); - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java deleted file mode 100644 index a830375..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.mongo.db.controller; - -import java.util.List; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.service.IAuditService; -import com.mongo.db.vo.updateAuditRequest; - -/** - * @author trainee - * - */ -//@RequestMapping("/audit") -@RestController -public class AuditController { - - @Autowired - private IAuditService auditService; -/** - * - * @param audit - * @return - */ - @PostMapping - public ResponseEntitycreate(@RequestBody final AuditLog audit) - { - try { - auditService.createAudit(audit); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException exep) { - return new ResponseEntity(exep.getMessage(),HttpStatus.OK); - } - } - /** - * - * @param eventName - * @return - */ - @GetMapping("/{eventName}") - public ResponseEntitygetAudit(@PathVariable @NotNull final String eventName) - { - - try { - List list=auditService.getDetails(eventName); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @return - */ - @GetMapping - public ResponseEntitygetAllAudit() - { - - try { - List list=auditService.findall(); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param update - * @return - */ - @PutMapping - public ResponseEntityupdateAudit(@RequestBody final updateAuditRequest update) - { - - try { - AuditLog audit=auditService.update(update.getEventId(), update.getEventType()); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param eventId - * @return - */ - @DeleteMapping("{eventId}") - public ResponseEntitydeleteAudit(@PathVariable final UUID eventId) - { - - try { - - String audit=auditService.deleteAudit(eventId); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java deleted file mode 100644 index 1b55caa..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.mongo.db.document; - -import java.util.Date; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -@Document -public class AuditLog { - - @Id - @NotNull - private UUID eventID=UUID.randomUUID(); - @NotNull - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * - * @return the eventID - */ - public UUID getEventID() { - return eventID; - } - /** - * @param eventID the eventID to set - */ - public void setEventID(UUID eventID) { - this.eventID = eventID; - } - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /** - * @param eventID - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(UUID eventID, String eventName, String eventType, Date eventDate, String userId, - Object oldValue, Object newValue) { - super(); - this.eventID = eventID; - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventID=" + eventID + ", eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" - + eventDate + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - - - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java deleted file mode 100644 index 6479eb2..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.mongo.db.document; - -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java deleted file mode 100644 index c61912a..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db.exception; - -public class AuditException extends Exception{ - String msg; - - /** - * @param msg - */ - public AuditException(String msg) { - super(); - this.msg = msg; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/rcvlistner/MsgListener.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/rcvlistner/MsgListener.java deleted file mode 100644 index effe32b..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/rcvlistner/MsgListener.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mongo.db.rcvlistner; - -import org.springframework.stereotype.Component; - -import com.mongo.db.document.AuditLog; - - - - - - - -@Component -public class MsgListener { - - /*@Autowired - AuditMongoRepository amd; - */ - public void receiveMessage(String message) { - System.out.println("Received <" + message + ">"); - // AuditLog auditNew = new AuditLog(message.getEventID(), message.getEventName(), message.getEventType(),message.getEventDate(),message.getUserId(), message.getOldValue(), message.getNewValue()); - //amd.save(auditNew); - } -} \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java deleted file mode 100644 index b7d4db1..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.mongo.db.repo; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.data.mongodb.repository.MongoRepository; - -import com.mongo.db.document.AuditLog; - -/** - * @author trainee - * - */ -public interface AuditMongoRepository extends MongoRepository{ - - /** - * @param eventName - * @return - */ - List findByEventName(String eventName); - /** - * @param eventType - * @return - */ - AuditLog findByEventType(String eventType); - - - Optional findByeventID(UUID eventID); -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java deleted file mode 100644 index cd8286f..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; - -@Service("auditService") -public class AuditServiceImpl implements IAuditService{ - - @Autowired - private AuditMongoRepository auditRepo; - @Override - public AuditLog createAudit(AuditLog audit)throws AuditException { - AuditLog audi= auditRepo.save(audit); - if(audi!=null) - { - return audi; - } - else - { - throw new AuditException("audit not added"); - } - } - - - - @Override - public String deleteAudit(UUID id) throws AuditException { - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - {AuditLog aud=audit.get(); - auditRepo.delete(aud);; - return "deleted"; - } - else - { - throw new AuditException("not deleted"); - } - } - - @Override - public AuditLog update(UUID id,String eventType) throws AuditException { - //changes made after downgrading application - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - { - AuditLog auditLog=audit.get(); - auditLog.setEventType(eventType); - AuditLog auu=auditRepo.save(auditLog); - return auu; - } - else - { - throw new AuditException("id not found!!!!"); - } - } - - - - @Override - public List getDetails(String eventName) throws AuditException { - // TODO Auto-generated method stub - List list=auditRepo.findByEventName(eventName); - if(list.isEmpty()) - { - throw new AuditException("List is empty"); - } - else - { - return list; - } - - } - - - - @Override - public List findall() throws AuditException { - // TODO Auto-generated method stub - return auditRepo.findAll(); - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java deleted file mode 100644 index db121ae..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.UUID; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; - -public interface IAuditService { - - /** - * @method createAudit - * @param audit - * @return AuditLog object - * @throws AuditException - */ - AuditLog createAudit(AuditLog audit) throws AuditException; - /** - * @method getDetails - * @param eventName - * @return List - * @throws AuditException - */ - List getDetails(String eventName) throws AuditException; - /** - * @method deleteaudit - * @param id - * @return String - * @throws AuditException - */ - String deleteAudit(UUID id) throws AuditException; - /** - * @method update - * @param id - * @param eventType - * @return AuditLog - * @throws AuditException - */ - AuditLog update(UUID id,String eventType) throws AuditException; - /** - * @method findall - * @return List - * @throws AuditException - */ - List findall() throws AuditException; - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java deleted file mode 100644 index ac2a51a..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mongo.db.vo; - -import java.util.UUID; - -public class updateAuditRequest { - - private UUID eventId; - private String eventType; - /** - * @return the eventId - */ - public UUID getEventId() { - return eventId; - } - /** - * @param eventId the eventId to set - */ - public void setEventId(UUID eventId) { - this.eventId = eventId; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - -} diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/resources/application.properties b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/resources/application.properties deleted file mode 100644 index 9d3e4e0..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/main/resources/application.properties +++ /dev/null @@ -1,15 +0,0 @@ -#Mongo -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27017 -spring.data.mongodb.database=mongodb -server.port=8022 - -#Register with eureka -#eureka.client.service-url.defaultZone=http://localhost:8762/eureka - - - -#eureka.client.service-url.defaultZone=https://github.com/ramdafale/bank-config-server -#spring.application.name=mongo-client - - diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java deleted file mode 100644 index 86f4145..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/*package com.mongoDb.mongodbExample; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.document.BaseEntity; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; -import com.mongo.db.service.AuditServiceImpl; -import com.mongo.db.service.IAuditService; - -@RunWith(MockitoJUnitRunner.class) -public class MongoTest { - - @Mock - private AuditMongoRepository auditRepo; - - - @InjectMocks IAuditService auditServcie=new AuditServiceImpl(); - Date date=new Date(); - UUID id; - Timestamp time; - BaseEntity base1; - BaseEntity bsae2; - AuditLog audit; - AuditLog audit1; - AuditLog audit2; - @Before - public void init() - { - date=new Date(); - id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - time=new Timestamp(date.getTime()); - base1=new BaseEntity("1"); - bsae2=new BaseEntity("2"); - audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - audit1 =new AuditLog(UUID.fromString("38400000-8cf0-11cd-b23e-10b96e4ef00d"),"createnew","creation",time,"3",base1,bsae2); - } - @Test - public void auditcreateTest()throws AuditException - { Date date=new Date(); - UUID id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - Timestamp time=new Timestamp(date.getTime()); - BaseEntity base1=new BaseEntity("1"); - BaseEntity bsae2=new BaseEntity("2"); - AuditLog audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - Mockito.when(auditRepo.save(audit)).thenReturn(audit); - AuditLog audi; - - audi = auditServcie.createAudit(audit); - assertEquals("created",audi,audit); - } - @Test(expected=AuditException.class) - public void falsecreateTest() throws AuditException - { - AuditLog audit1=null; - Mockito.when(auditRepo.save(audit1)).thenReturn(audit1); - AuditLog audi; - audi = auditServcie.createAudit(audit1); - } - -@Test -public void auditgetDetails()throws AuditException -{ - - - List list=new ArrayList(); - - list.add(audit); - list.add(audit1); - Mockito.when(auditRepo.findByEventName("create")).thenReturn(list); - List newList=auditServcie.getDetails("create"); - assertEquals(list, newList); - -} -@Test(expected=AuditException.class) -public void auditgetDetailsfalse()throws AuditException -{ - - - List list=new ArrayList<>(); - Mockito.when(auditRepo.findByEventName("mongo")).thenReturn(list); - List newList=auditServcie.getDetails("mongo"); - - -} - -@Test -public void auditupdatetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - assertEquals(auditt,newAudit); -} - -@Test(expected=AuditException.class) -public void auditupdatefalsecase() throws AuditException -{ - Optional opt=Optional.empty(); - when(auditRepo.findById(id)).thenReturn(opt); - //AuditLog auditt=opt.get(); - //when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - -} - -@Test -public void auditdeletetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - - String newAudit=auditServcie.deleteAudit(id); - - assertEquals("deleted",newAudit); -} - -} -*/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java b/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java deleted file mode 100644 index 160469e..0000000 --- a/Rabbit MQ demo with object/RabbitDemoStringBankAudit/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java +++ /dev/null @@ -1,17 +0,0 @@ -/*package com.mongoDb.mongodbExample; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MongodbExampleApplicationTests { - - @Test - public void contextLoads() { - } - -} -*/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.eclipse-pmd b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.gitignore b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.mvn/wrapper/maven-wrapper.jar b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.mvn/wrapper/maven-wrapper.properties b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/mvnw b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/mvnw.cmd b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/pom.xml b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/pom.xml deleted file mode 100644 index 5dfe4c8..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - 4.0.0 - - com.bankApplication - BANKAPPLICATION - 0.0.1-SNAPSHOT - jar - - transactionInBank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - commons-lang - commons-lang - 2.6 - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - 5.1.38 - runtime - - - - - org.springframework.boot - spring-boot-starter-amqp - - - - com.h2database - h2 - test - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/BankApplication.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/BankApplication.java deleted file mode 100644 index b092dee..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/BankApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class BankApplication { - - public static void main(String[] args) { - SpringApplication.run(BankApplication.class, args); - } -} - diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java deleted file mode 100644 index f65ebb0..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/Exception/ManagedException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.bank.Exception; - -public class ManagedException extends Exception { - public ManagedException(String msg) { - - - - super(msg); - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/ATMController.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/ATMController.java deleted file mode 100644 index 06ec203..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/ATMController.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.ATMReq; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Bank; -import com.bank.service.IATMService; -import com.bank.service.IBankService; - -//To call Restful services -@RestController -public class ATMController { - - // Injecting properties of IATMService to use its methods - @Autowired - private IATMService atmService; - // Injecting properties of IBankService to use its methods in current class - @Autowired - private IBankService bankService; - - /* - * description : this method will return a atm instance - */ - @PostMapping("/atmCreate") - public ResponseEntity createATM(@RequestBody final ATMReq atm) { - - ATM atm1 = null; - try { - final Optional bank = bankService.getBankDetailsByID(atm.getBankId()); - ATM atm2 = atm.getAtm(); - atm2.setBankId(bank.get().getBankId()); - atm1 = atmService.createATM(atm2); - return new ResponseEntity(atm1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Atm not created", HttpStatus.OK); - } - - } - /* - * description : this method will return a - * String message if money successfully added from bank - */ - - @PostMapping("/addMoneyInAtm") - public ResponseEntity addMoneyToATM(@RequestBody final AddMoneyReq atm) { - - try { - final String str = atmService.addMoneyFromBank(atm); - return new ResponseEntity(str, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money to atm not deposited succesfully!!!", HttpStatus.OK); - } - - } - - /* - * description : this method will return - * String if amount is successfully withdraw - */ - @PostMapping("/withdrawAtm") - public ResponseEntity withdrawFromAtm(@RequestBody final WithrawMoneyReq atm) { - - try { - final Long id = atmService.withrawMoney(atm); - return new ResponseEntity(id, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("money from atm not withdrawn", HttpStatus.OK); - } - - } -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/AccountController.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/AccountController.java deleted file mode 100644 index 54cb138..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/AccountController.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountRequest; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IAccountService; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -// To call RestFull services -@RestController -public class AccountController { - - // Injecting properties of IAccountService to use its methods - @Autowired - private IAccountService accountService; - // Injecting properties of ICustomerService to use its methods - @Autowired - private ICustomerService customerService; - // Injecting properties of IBankService to use its methods - @Autowired - private IBankService bankService; - - /* - * description : this method will return a created account and will give - * response in response entity. - */ - @PostMapping("/accountCreate") - public ResponseEntity createAccount(@RequestBody final AccountRequest accountRe) { - Account response = null; - Optional bank; - try { - bank = bankService.getBankDetailsByID(accountRe.getBankId()); - - if (bank.isPresent()) { - Customer cust; - try { - cust = customerService.getCustomerDetails(accountRe.getCustomerId()); - - final Account acc = accountRe.getAccount(); - acc.setBank(bank.get()); - acc.setCustomer(cust); - try { - response = accountService.createAccount(acc); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Account not created", HttpStatus.OK); - } - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bank not present", HttpStatus.OK); - } - } - - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity("id not found", HttpStatus.OK); - } - - } - - /* - * method : getAccount return type : responseEntitiy description : this method - * will return a created account of a given input id - */ - - @GetMapping("/accountDetails/{id}") - public ResponseEntity getAccount(@PathVariable Long id) { - Account acc; - try { - acc = accountService.getAccountDetails(id); - return new ResponseEntity(acc, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("account of given id not found", HttpStatus.OK); - } - - } - - /* - * description : this method will return a success String if money is deposited - * mapping : post - */ - - @PostMapping("/accountDeposit") - public ResponseEntity depositAccount(@RequestBody final AccountTransaction account) { - try { - Long custId = accountService.depositMoney(account); - return new ResponseEntity(custId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - - /* - * description : this method will return a string if amount is withdraw - */ - - @PostMapping("/accountwithdraw") - public ResponseEntity withdrawAccount(@RequestBody final AccountTransaction account) { - try { - Long customerId = accountService.withdrawlMoney(account); - return new ResponseEntity(customerId, HttpStatus.OK); - - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Money Deposited Successfully", HttpStatus.OK); - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/BankController.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/BankController.java deleted file mode 100644 index d3ef533..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.service.IBankService; - -@RestController -@RequestMapping("/bank") -public class BankController { - - @Autowired - private IBankService bankService; - - - /* - * description : this method will return a bank instance - */ - @PostMapping("/bankCreate") - public ResponseEntity createBank(@RequestBody final Bank bank) { - - Bank bank1; - try { - bank1 = bankService.createBank(bank); - return new ResponseEntity(bank1, HttpStatus.CREATED); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("Bank not Added ", HttpStatus.OK); - } - - } - - /* - * description : this method will return a list of banks - */ - @GetMapping("/getBankDetails") - public ResponseEntity getBankDetails() { - List list; - try { - list = bankService.getBankDetails(); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("bankDetailsnotfound", HttpStatus.OK); - } - - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java deleted file mode 100644 index 5d97e9f..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/CustomerController.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.bank.controller; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.service.IBankService; -import com.bank.service.ICustomerService; - -@RestController -@RequestMapping("/customer") -public class CustomerController { - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - - - /** - * @return the customerService - */ - public ICustomerService getCustomerService() { - return customerService; - } - - /** - * @param customerService the customerService to set - */ - public void setCustomerService(ICustomerService customerService) { - this.customerService = customerService; - } - - /** - * @return the bankService - */ - public IBankService getBankService() { - return bankService; - } - - /** - * @param bankService the bankService to set - */ - public void setBankService(IBankService bankService) { - this.bankService = bankService; - } - - /* description : this method will return a - * created customer - */ - @PostMapping("/customerCreate") - public ResponseEntity createCustomer(@RequestBody final CreateCustomerRequest createCustomerRequest) { - Customer response = null; - Optional bank; - - try { - bank = bankService.getBankDetailsByID(createCustomerRequest.getBankID()); - - if (bank.isPresent()) { - final Customer cust = createCustomerRequest.getCustomer(); - cust.setBank(bank.get()); - - try { - response = customerService.createCustomer(cust); - } catch (ManagedException e) { - e.getMessage(); - return new ResponseEntity("faild to create customer", HttpStatus.OK); - } - } - return new ResponseEntity(response, HttpStatus.CREATED); - } catch (ManagedException e1) { - String message = e1.getMessage(); - return new ResponseEntity("unable to fetch bank details by id", HttpStatus.OK); - } - - } - - /* description : this method will return a created customer of - * specified id - */ - @GetMapping("/getCustomerDetails/{id}") - public ResponseEntity getCustomer(@PathVariable final Long id) { - final Customer cust; - try { - cust = customerService.getCustomerDetails(id); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("id not found for customer to get details", HttpStatus.OK); - } - } - - @PutMapping("/{id}/{name}/{userId}") - public ResponseEntity updateCustomer(@PathVariable final Long id,@PathVariable final String name,@PathVariable final String userId) throws CloneNotSupportedException { - final Customer cust; - try { - cust = customerService.updateCustomer(id, name, userId); - return new ResponseEntity(cust, HttpStatus.OK); - } catch (ManagedException e) { - e.getMessage(); - - return new ResponseEntity("unable to update data", HttpStatus.OK); - } - } -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java deleted file mode 100644 index f0257c3..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/DenominationController.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.bank.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.CreateDenominationRequest; -import com.bank.service.IAtmDenoService; -import com.bank.service.IBankDenominationService; -import com.bank.service.IRefServcie; - -@RestController -public class DenominationController { - - @Autowired - private IRefServcie refService; - - @Autowired - private IBankDenominationService bankDenominations; - @Autowired - private IAtmDenoService atmDenominationService; - - - - // this will add denominations to bank and atm - @PostMapping("/addDenominations") - public void addDenomination(@RequestBody CreateDenominationRequest createDenomination) - { - - try { - refService.createDenomination(createDenomination.getList()); - } catch (ManagedException e1) { - - e1.printStackTrace(); - } - try { - bankDenominations.bankDenominationCreate(createDenomination.getList(),createDenomination.getBankId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try { - atmDenominationService.atmDenominationCreate(createDenomination.getList(), createDenomination.getAtmId()); - } catch (ManagedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java deleted file mode 100644 index 6c017c2..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/controller/TransactionController.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.bank.controller; - -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.bank.Exception.ManagedException; -import com.bank.dto.TransactionReq; -import com.bank.model.Transaction; -import com.bank.service.ITransactionService; - -@RestController -public class TransactionController { - @Autowired - private ITransactionService transactionService; - - - - // this will return all the statements of account id - @GetMapping("/transactionDetails/{accountId}") - public ResponseEntity retriveTrans(@PathVariable final Long accountId) { - - List list; - try { - list = transactionService.generateTransactionReport( accountId); - return new ResponseEntity>(list, HttpStatus.OK); - } catch (ManagedException e) { - String message = e.getMessage(); - return new ResponseEntity(message, HttpStatus.OK); - } - } - - //this will create statements instance which will be used to tract transactions made by user - - @PostMapping("/transactionCreate") - public ResponseEntity createTransaction(@RequestBody final TransactionReq trans) { - - final Transaction transact =trans.getTransaction(); - final Transaction newtrans; - try { - newtrans = transactionService.createTransaction(transact); - return new ResponseEntity(newtrans, HttpStatus.CREATED); - } catch (ManagedException e) { - // TODO Auto-generated catch block - String msg=e.getMessage(); - return new ResponseEntity(msg, HttpStatus.OK); - } - - - } -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java deleted file mode 100644 index d71f279..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/ATMReq.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.bank.dto; - -import com.bank.model.ATM; - -public class ATMReq { - private Long bankId; - private ATM atm; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - /** - * @param atm the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } -public ATMReq() { - // TODO Auto-generated constructor stub -} -/** - * @param bankId - * @param atm - */ -public ATMReq(Long bankId, ATM atm) { - this.bankId = bankId; - this.atm = atm; -} - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java deleted file mode 100644 index 065159f..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AccountRequest.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Account; - -public class AccountRequest { - - private long bankId; - private long customerId; - private Account account; - /** - * @return the bankId - */ - public long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(long customerId) { - this.customerId = customerId; - } - /** - * @return the account - */ - public Account getAccount() { - return account; - } - /** - * @param account the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountRequest [bankId=" + bankId + ", customerId=" + customerId + ", account=" + account + "]"; - } - - - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java deleted file mode 100644 index bf9f152..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AccountTransaction.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AccountTransaction { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this. accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java deleted file mode 100644 index 7557450..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/AddMoneyReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class AddMoneyReq { - - private Long atmId; - private Long bankId; - private BigDecimal amount; - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java deleted file mode 100644 index 70ea8de..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/CreateCustomerRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Customer; - -public class CreateCustomerRequest { - - private Customer customer; - private Long bankID; - - /** - * @return the bankID - */ - public Long getBankID() { - return bankID; - } - /** - * @param bankID the bankID to set - */ - public void setBankID(Long bankID) { - this.bankID = bankID; - } - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - /** - * @param customer the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - /** - * @param customer - * @param bankID - */ - public CreateCustomerRequest(Customer customer, Long bankID) { - super(); - this.customer = customer; - this.bankID = bankID; - } -public CreateCustomerRequest() { - // TODO Auto-generated constructor stub -} -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java deleted file mode 100644 index 50c0153..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/CreateDenominationRequest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; -import java.util.List; - -public class CreateDenominationRequest { - - private List list; - private Long bankId; - private Long atmId; - /** - * @return the list - */ - public List getList() { - return list; - } - /** - * @param list the list to set - */ - public void setList(List list) { - this.list = list; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java deleted file mode 100644 index 427128d..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/TransactionReq.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.bank.dto; - -import com.bank.model.Transaction; - -public class TransactionReq { - - private Long customerId; - private Long accountId; - private Transaction transaction; - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the transaction - */ - public Transaction getTransaction() { - return transaction; - } - /** - * @param transaction the transaction to set - */ - public void setTransaction(Transaction transaction) { - this.transaction = transaction; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java deleted file mode 100644 index c5af5af..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/dto/WithrawMoneyReq.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.bank.dto; - -import java.math.BigDecimal; - -public class WithrawMoneyReq { - private Long accountId; - private BigDecimal amount; - private Long atmId; - private Long customerId; - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - /** - * @param customerId the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/ATM.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/ATM.java deleted file mode 100644 index 4085121..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/ATM.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "atm_info") -@Entity -public class ATM extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "atm_id") - private Long ATMId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "id") - private Long bankId; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(final Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - public ATM() { - // TODO Auto-generated constructor stub - } - - - @Override - public String toString() { - return "ATM [ATMId=" + ATMId + ", amount=" + amount + ", bankId=" + bankId + "]"; - } - - /** - * @param aTMId - * @param amount - * @param bankId - */ - public ATM(Long aTMId, BigDecimal amount, Long bankId) { - ATMId = aTMId; - this.amount = amount; - this.bankId = bankId; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java deleted file mode 100644 index d7d7e63..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/ATMDenomination.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Ref_ATM_Denm") -@Entity -public class ATMDenomination extends BaseEntity { - @Column(name = "atm_id") - private Long ATMId; - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noofdenomination") - private int noofDenomination; - - /** - * @return the aTMId - */ - public Long getATMId() { - return ATMId; - } - - /** - * @param aTMId - * the aTMId to set - */ - public void setATMId(Long aTMId) { - ATMId = aTMId; - } - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noofDenomination - */ - public int getNoofDenomination() { - return noofDenomination; - } - - /** - * @param noofDenomination - * the noofDenomination to set - */ - public void setNoofDenomination(int noofDenomination) { - this.noofDenomination = noofDenomination; - } - - public ATMDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param aTMId - * @param denomination - * @param noofDenomination - */ - public ATMDenomination(Long aTMId, BigDecimal denomination, int noofDenomination) { - ATMId = aTMId; - this.denomination = denomination; - this.noofDenomination = noofDenomination; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Account.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Account.java deleted file mode 100644 index 3579959..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Account.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -@Table(name = "account_details") -@Entity -public class Account extends BaseEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "account_id") - private Long accountId; - @Column(name = "amount") - private BigDecimal amount; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(final Customer customer) { - this.customer = customer; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(final Long accountId) { - this.accountId = accountId; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - - public Account() { - - } - - @Override - public String toString() { - return "Account [accountId=" + accountId + ", amount=" + amount + ", customer=" + customer + ", bank=" + bank - + "]"; - } - - /** - * @param accountId - * @param amount - * @param customer - * @param bank - */ - public Account(Long accountId, BigDecimal amount, Customer customer, Bank bank) { - this.accountId = accountId; - this.amount = amount; - this.customer = customer; - this.bank = bank; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/AuditLog.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/AuditLog.java deleted file mode 100644 index 0b3ec89..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/AuditLog.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.bank.model; - -import java.io.Serializable; -import java.sql.Timestamp; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - - -/*@JsonIgnoreProperties(ignoreUnknown = true)*/ -public class AuditLog implements Serializable { - - private String eventName; - private String eventType; - private Timestamp eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Timestamp getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Timestamp eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - - } - @Override - public String toString() { - return "AuditLog [eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" + eventDate - + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - /** - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(String eventName, String eventType,Timestamp eventDate, String userId, Object oldValue, - Object newValue) { - super(); - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - - - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Bank.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Bank.java deleted file mode 100644 index 90569a4..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Bank.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.bank.model; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -/** - * author Ram Dafale - */ - -@Table(name = "bank_details") -@Entity -public class Bank extends BaseEntity implements Serializable { - - @Id - // @SequenceGenerator(name = "bank_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.IDENTITY /* , generator = "bank_seq" */) - @Column(name = "id") - private Long bankId; - - @Column(name = "amount") - private BigDecimal amount; - @OneToMany - @JoinColumn(name = "id", referencedColumnName = "id") - List atmList = new ArrayList(); - - public Bank() { - } - - /** - * method name : getBankId() return type : Long decription : it we get all bank - * id - */ - public Long getBankId() { - return bankId; - } - - /** - * method name : setBankId(final Long bankId) method description : it will set - * the bank id - */ - public void setBankId(final Long bankId) { - this.bankId = bankId; - } - - /** - * method name : getAmount method description : it will get the total bank - * amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * method name : setAmount method parameters : BigDecimal method description : - * it will set bank amount - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } - - /** - * @param bankId - * @param amount - */ - public Bank(Long bankId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.amount = amount; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java deleted file mode 100644 index a1a0938..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/BankDenomination.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Table(name = "Bank_Denm") -@Entity -public class BankDenomination extends BaseEntity { - - @Id - @Column(name = "denomination") - private BigDecimal denomination; - @Column(name = "noOfDenomination") - private int noOfDenomination; - @Column(name = "bank_id") - private Long bankId; - - - - /** - * @return the bankId - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @param denomination - * the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } - - /** - * @return the noOfDenomination - */ - public int getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(int noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - public BankDenomination() { - // TODO Auto-generated constructor stub - } - - /** - * @param bankId - * @param denomination - * @param noOfDenomination - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination) { - - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - - @Override - public String toString() { - return "BankDenomination [denomination=" + denomination + ", noOfDenomination=" + noOfDenomination + ", bankId=" - + bankId + "]"; - } - - /** - * @param denomination - * @param noOfDenomination - * @param bankId - */ - public BankDenomination(BigDecimal denomination, int noOfDenomination, Long bankId) { - super(); - this.denomination = denomination; - this.noOfDenomination = noOfDenomination; - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((denomination == null) ? 0 : denomination.hashCode()); - return result; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - BankDenomination other = (BankDenomination) obj; - if (denomination == null) { - if (other.denomination != null) - return false; - } else if (!denomination.equals(other.denomination)) - return false; - return true; - } - -} \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java deleted file mode 100644 index 2b31305..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/BaseEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.bank.model; - -import javax.persistence.MappedSuperclass; - -@MappedSuperclass -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId - * the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Customer.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Customer.java deleted file mode 100644 index eb3c1bd..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Customer.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.bank.model; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -/** - * author Ram - */ -@Table(name = "customer_details") -@Entity -public class Customer extends BaseEntity implements Cloneable,Serializable { - - @Id - //@SequenceGenerator(name = "customer_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.IDENTITY/*, generator = "customer_seq"*/) - @Column(name = "id") - private Long customerId; - @Column(name = "customer_name") - private String customerName; - @Column(name = "pin") - private Long pin; - - // relational mapping of bank to customer - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - public Customer() { - // TODO Auto-generated constructor stub - } - - /** - * method name : getCustomerId method returnTypr : Long method description : to - * get customer id - */ - public Long getCustomerId() { - return customerId; - } - - /** - * method name : setCustomerId method parameter : Long method description : it - * will set customerId - */ - public void setCustomerId(final Long customerId) { - this.customerId = customerId; - } - - /** - * method Name : getCustomerName method return type : String method description - * : it will get he customer name - */ - public String getCustomerName() { - return customerName; - } - - /** - * method name : setCustomerName method parameter : String method description : - * it will set customerName - */ - public void setCustomerName(final String customerName) { - this.customerName = customerName; - } - - /** - * method Name : getPin method return type : Long method description : it will - * get he pin - */ - public Long getPin() { - return pin; - } - - /** - * method name : setPin method parameter : Long method description : it will set - * pin - */ - public void setPin(final Long pin) { - this.pin = pin; - } - - /** - * method name : setBank method parameter : Bank method description : it will - * set Bank - */ - public void setBank(final Bank bank) { - this.bank = bank; - } - - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", pin=" + pin + ", bank=" - + bank + "]"; - } - - /** - * @param customerId - * @param customerName - * @param pin - */ - public Customer(Long customerId, String customerName, Long pin) { - super(); - this.customerId = customerId; - this.customerName = customerName; - this.pin = pin; - } - - public Customer(String string, long l) { - - } - @Override - public Customer clone()throws CloneNotSupportedException{ - return (Customer)super.clone(); - } - public Customer( String customerName) { - super(); - - this.customerName = customerName; - - } - - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/RefMoney.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/RefMoney.java deleted file mode 100644 index 3d5d6d2..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/RefMoney.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -@Table(name="ref_money") -@Entity -public class RefMoney extends BaseEntity { - @Id - private BigDecimal denomination; - - /** - * @return the denomination - */ - public BigDecimal getDenomination() { - return denomination; - } - - /** - * @param denomination the denomination to set - */ - public void setDenomination(BigDecimal denomination) { - this.denomination = denomination; - } -public RefMoney() { - // TODO Auto-generated constructor stub -} -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Transaction.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Transaction.java deleted file mode 100644 index c958e83..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/model/Transaction.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.bank.model; - -import java.math.BigDecimal; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; -import javax.persistence.Table; - -import org.springframework.stereotype.Component; - -@Table(name = "transaction_details") -@Entity -@Component -public class Transaction extends BaseEntity{ - @Id - @SequenceGenerator(name = "transaction_seq", initialValue = 1, allocationSize = 1) - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "transaction_seq") - @Column(name = "transaction_id") - private Long transactionId; - @Column(name = "amount") - private BigDecimal amount; - @Column(name = "transaction_type") - private String transactionType; - - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - @ManyToOne(targetEntity = Account.class) - private Account account; - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(final Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customerId - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(final BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(final String transactionType) { - this.transactionType = transactionType; - } - - public Transaction() { - // TODO Auto-generated constructor stub - } - - /** - * @param customerId - * @param accountId - * @param amount - * @param transactionType - */ - public Transaction(BigDecimal amount, String transactionType) { - super(); - /* - * this.customerId = customerId; this.accountId = accountId; - */ - this.amount = amount; - this.transactionType = transactionType; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java deleted file mode 100644 index c08f97c..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/ATMDenoRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATMDenomination; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMDenoRepository extends JpaRepository { - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java deleted file mode 100644 index bb53cc1..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/ATMRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.ATM; -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface ATMRepository extends JpaRepository{ - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java deleted file mode 100644 index c5754c5..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/AccountRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.Account; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface AccountRepository extends JpaRepository{ - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java deleted file mode 100644 index 15a792a..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/BankRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; - -import org.springframework.stereotype.Repository; - -import com.bank.model.Bank; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -@Repository -public interface BankRepository extends JpaRepository { - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java deleted file mode 100644 index e603c13..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/CustomerRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Customer; -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface CustomerRepository extends JpaRepository { - - Optional findOneByCustomerName(String CustomerName); -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java deleted file mode 100644 index 5711e5c..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/DenominationRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.BankDenomination; - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface DenominationRepository extends JpaRepository{ - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java deleted file mode 100644 index ad5053d..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/RefMoneyRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.bank.repository; - -import java.math.BigDecimal; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.bank.model.RefMoney; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface RefMoneyRepository extends JpaRepository { - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java deleted file mode 100644 index ed3ce90..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/repository/TransactionRepository.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import com.bank.model.Account; -import com.bank.model.Transaction; - - -/** - * @author ram - * this interface provide various methods of JPAREPOSITORY - * to deal with operations - * - */ -public interface TransactionRepository extends JpaRepository{ - - - /* - * this query will find trasanction where account id is associated - */ - @Query(value="select * from transaction_details where account_account_id=?1",nativeQuery=true) - List findAllByAccountId(Long accountId); - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java deleted file mode 100644 index edeef45..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,166 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("atmService") -public class ATMServiceImpl implements IATMService { - - final Logger LOGGER = LoggerFactory.getLogger(ATMServiceImpl.class); - -//injectiong all required properties - @Autowired - private ATMRepository atmRepo; - @Autowired - private IBankService bankService; - @Autowired - private IAccountService accountService; - @Autowired - private ICustomerService customerService; - @Autowired - private TransactionRepository trans; - @Autowired - private IAtmDenoService atmDeno; - - - //will create new instance for atm - @Override - public ATM createATM(final ATM atm) throws ManagedException { - // TODO Auto-generated method stub - final ATM atm1 = atmRepo.save(atm); - if (atm1 != null) { - LOGGER.info("atm is added"); - return atm1; - } else { - LOGGER.error("no atm is added"); - throw new ManagedException("No such atm is created!!"); - } - } - - // will add money from bank to atm - @Transactional - @Override - public String addMoneyFromBank(final AddMoneyReq atmreq) throws ManagedException { - // TODO Auto-generated method stub - final Optional atm = atmRepo.findById(atmreq.getAtmId()); - if (atm.isPresent()) { - ATM atm1 = atm.get(); - final Long bankID = atmreq.getBankId(); - final Long bankId = atm1.getBankId(); - if (bankID.equals(bankId)) { - final BigDecimal amount = atmreq.getAmount(); - final Optional bankopt=bankService.getBankDetailsByID(atmreq.getBankId()); - final Bank bank=bankopt.get(); - BigDecimal bankAmount = bank.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(bankAmount) == -1) { - BigDecimal atmAmount = atm1.getAmount(); - atmAmount = atmAmount.add(amount); - atm1.setAmount(atmAmount); - bankAmount = bankAmount.subtract(amount); - bank.setAmount(bankAmount); - bankService.createBank(bank); - atmRepo.save(atm1); - atmDeno.atmDenominationDeposit(atmreq.getAmount(), atmreq.getAtmId()); - LOGGER.info("amount is added to your account"); - return "amount added"; - - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less than you want"); - } - } - else - { - LOGGER.error("amount is negative"); - throw new ManagedException("amount connot be negative"); - } - - } - else - { - LOGGER.error("no bank id exist"); - throw new ManagedException("no such bank id exist"); - } - } - else - { - LOGGER.error("no atm id exist"); - throw new ManagedException("no such atm id exist"); - } - - } - - // will withdraws monet atm - - @Transactional - @Override - public Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException { - final Optional atm = atmRepo.findById(withdraw.getAtmId()); - if (atm.isPresent()) { - final ATM atm1 = atm.get(); - BigDecimal amount = atm1.getAmount(); - if (amount.compareTo(BigDecimal.ZERO) > 0) { - if (amount.compareTo(withdraw.getAmount()) == 1) { - final Account account =accountService.getAccountDetails(withdraw.getAccountId()); - BigDecimal accountAmount = account.getAmount(); - if (accountAmount.compareTo(withdraw.getAmount()) == 1) { - amount = amount.subtract(withdraw.getAmount()); - atm1.setAmount(amount); - accountAmount = accountAmount.subtract(withdraw.getAmount()); - account.setAmount(accountAmount); - accountService.createAccount(account); - atmRepo.save(atm1); - Transaction transaction = new Transaction(); - transaction.setAccount(account); - transaction.setAmount(account.getAmount()); - final Customer customer = customerService.getCustomerDetails(withdraw.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.save(transaction); - LOGGER.info("amount is deducted"); - return withdraw.getAccountId(); - } - else - { LOGGER.error("low balance"); - throw new ManagedException("your account balance is less thsn amount you want to withdraw"); - } - } - else - { LOGGER.error("atm amount is less"); - throw new ManagedException("atm does not have this much of amount"); - } - } - else - { LOGGER.error("-ve amount not possible "); - throw new ManagedException("negative amount cannot possible"); - } - } - else - { LOGGER.error("no atm id exist"); - throw new ManagedException("no such id of atm exist"); - } - } -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java deleted file mode 100644 index b3dbada..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,164 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.model.Transaction; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.repository.TransactionRepository; - -@Service("accountService") -public class AccountServiceImpl implements IAccountService { - final Logger LOGGER = LoggerFactory.getLogger(AccountServiceImpl.class); - @Autowired - private AccountRepository accountRepository; - @Autowired - private ITransactionService trans; - @Autowired - private ICustomerService customerService; - @Autowired - private IBankService bankService; - @Autowired - private IBankDenominationService bankDenoService; - private BigDecimal balance; - - - // this will create account instance for customer - @Override - public Account createAccount(final Account account) throws ManagedException { - final Account acc = accountRepository.save(account); - if (acc != null) { - LOGGER.info("account created"); - return acc; - } else { - LOGGER.error("no account is created"); - throw new ManagedException("No account is created"); - } - } - //this will credit money to account - @Transactional - @Override - public Long depositMoney(final AccountTransaction account) throws ManagedException { - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - final Optional acc1 = accountRepository.findById(account.getAccountId()); - if (acc1.isPresent()) { - - final Account acc = acc1.get(); - balance = acc.getAmount(); - balance = balance.add(account.getAmount()); - acc.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - bankDenoService.bankDenominationDeposit(account.getAmount(),account.getBankId()); - - }else - { LOGGER.error("no bank id present"); - throw new ManagedException("no bank is present of given id"); - } - Transaction transaction = new Transaction(); - transaction.setAccount(acc); - transaction.setAmount(acc.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - transaction.setCustomer(customer); - transaction.setTransactionType("credit"); - trans.createTransaction(transaction); - LOGGER.info("AMOUNT IS ADDED"); - return account.getCustomerId(); - } else { - LOGGER.error("no amount is deposited"); - throw new ManagedException("zero amount deposited"); - } - } - else - { - LOGGER.error("-ve amount is not possible"); - throw new ManagedException("negative amount is not possible"); - } - } - - //this will debit money from account - @Transactional - @Override - public Long withdrawlMoney(final AccountTransaction account) throws ManagedException { - // TODO Auto-generated method stub - if (account.getAmount().compareTo(BigDecimal.ZERO) > 0) { - Optional acc1 = accountRepository.findById(account.getAccountId()); - if (acc1.isPresent()) { - final Account account1 = acc1.get(); ; - balance = account1.getAmount(); - balance = balance.subtract(account.getAmount()); - account1.setAmount(balance); - final Optional bank = bankService.getBankDetailsByID(account.getBankId()); - if (bank.isPresent()) { - bankDenoService.bankDenominationWithdraw(account.getAmount(), account.getBankId()); - final Bank bank1 = bank.get(); - bank1.setAmount(balance); - bankService.createBank(bank1); - - Transaction transaction=new Transaction(); - transaction.setAccount(account1); - transaction.setAmount(account1.getAmount()); - final Customer customer = customerService.getCustomerDetails(account.getCustomerId()); - if(customer!=null) - { - transaction.setCustomer(customer); - transaction.setTransactionType("debit"); - trans.createTransaction(transaction); - LOGGER.info("amount is deducted"); - return account.getCustomerId(); - } - else - { LOGGER.error("no customer exist"); - throw new ManagedException("No customer of such occunct exsit"); - } - }else - {LOGGER.error("no account exist"); - throw new ManagedException("No such account exist"); - } - - } else { - LOGGER.error("not enough amount to withdraw"); - throw new ManagedException("No amount withdraw"); - } - } - else - { - LOGGER.error("-ve value is not posssible"); - throw new ManagedException("negative amount is not possible"); - } - } - - - //It will give account details of perticular Id - @Override - public Account getAccountDetails(final Long id) throws ManagedException { - // TODO Auto-generated method stub - Account account = accountRepository.findById(id).get(); - if (account != null) { - LOGGER.info("account retrived"); - return account; - } else { - LOGGER.error("no such id exist"); - throw new ManagedException("no such element found"); - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java deleted file mode 100644 index 4839f4f..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AtmDenoServiceImpl.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.ATM; -import com.bank.model.ATMDenomination; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.ATMDenoRepository; -import com.bank.repository.ATMRepository; -import com.bank.repository.DenominationRepository; - -@Service -public class AtmDenoServiceImpl implements IAtmDenoService{ - - - @Autowired - private IRefServcie refService; - - @Autowired - private DenominationHelper denominationHelper; - - @Autowired - private ATMDenoRepository atmdenoRepository; - @Autowired - private ATMRepository atmRepo; - @Autowired - private DenominationRepository bankDeno; - @Autowired - IBankService bankService; - - - // this will create denominations for atm - @Override - public void atmDenominationCreate(List list, Long atmId) throws ManagedException { - - for(BigDecimal denom: list ) - { - final ATMDenomination first = new ATMDenomination(atmId,new BigDecimal(denom.intValue()), 0); - atmdenoRepository.save(first); - - } - } - - //this method provide logic (when you add money to atm ) for denominations adjustments - @Override - public void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException { - // TODO Auto-generated method stub - - List newList=refService.returnAll(); - - List list = new ArrayList<>(); - for(RefMoney deno:newList) - { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - ATMDenomination atmDeno=new ATMDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count=pair.getValue(); - System.out.println("key value"+myValue); - Optional deno=atmdenoRepository.findById(myValue); - ATMDenomination denomination=deno.get(); - System.out.println("denomination"+denomination); - System.out.println("count value"+count); - ATM atm=atmRepo.findById(atmId).get(); - BankDenomination bank=bankDeno.findById(myValue).get(); - int newNum=bank.getNoOfDenomination()-count; - bank.setNoOfDenomination(newNum); - bankDeno.save(bank); - denomination.setATMId(atmId); - denomination.setNoofDenomination(denomination.getNoofDenomination()+count); - - atmdenoRepository.save(denomination); - } - } - } - - - - diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AuditRegistrationSource.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AuditRegistrationSource.java deleted file mode 100644 index f8d9d16..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AuditRegistrationSource.java +++ /dev/null @@ -1,15 +0,0 @@ -/*package com.bank.service; - -import org.springframework.cloud.stream.annotation.Output; -import org.springframework.messaging.MessageChannel; - -public interface AuditRegistrationSource { - - - - @Output("auditRegistrationChannel") - MessageChannel auditRegistration(); - - -} -*/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java deleted file mode 100644 index 1c583f5..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/AuditServiceImpl.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.bank.service; - -import org.springframework.stereotype.Service; -import org.springframework.web.client.RestTemplate; - -import com.bank.model.AuditLog; - -@Service -public class AuditServiceImpl { - - //generate audit log - public AuditLog generateAudit(final AuditLog audit) - { - final RestTemplate restTemplate=new RestTemplate(); - final String uri="http://localhost:8082/audit"; - System.out.println("audit obnject " + audit); - final AuditLog audii=restTemplate.postForObject(uri, audit, AuditLog.class); - return audii; - } -} - \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index 1d2acb9..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.model.BankDenomination; -import com.bank.model.RefMoney; -import com.bank.repository.DenominationRepository; - -@Service -public class BankDenominationServiceImpl implements IBankDenominationService { - @Autowired - private DenominationRepository denominationRepo; - @Autowired - private IBankService bankServcie; - @Autowired - private DenominationHelper denominationHelper; - @Autowired - private IRefServcie refService; - - - //create denomination for bank - @Override - public void bankDenominationCreate(List list, Long bankId) throws ManagedException { - - // to get values from database - for (BigDecimal denom : list) { - final BankDenomination first = new BankDenomination(new BigDecimal(denom.intValue()), 0, bankId); - denominationRepo.save(first); - - } - - } - - - //this will provide logic: when you withdraws money denominations will get adjusted accordingly - - @Override - public void bankDenominationWithdraw(BigDecimal amount, Long bankId) throws ManagedException { - List newList = refService.returnAll(); - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getcountDenomination(amount, list); - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - System.out.println("key value" + myValue); - Optional deno = denominationRepo.findById(myValue); - BankDenomination denomination = deno.get(); - System.out.println("denomination" + denomination); - System.out.println("count value" + count); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() - count); - denominationRepo.save(denomination); - - } - - } - - @Override - public void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException { - - List newList = refService.returnAll(); - - List list = new ArrayList<>(); - for (RefMoney deno : newList) { - list.add(deno.getDenomination()); - } - Map denomValues = denominationHelper.getDenominatioValues(amount, list); - - BankDenomination bankDeno = new BankDenomination(); - - long i = 0; - Iterator> it = denomValues.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry pair = it.next(); - BigDecimal myValue = pair.getKey(); - Integer count = pair.getValue(); - - Optional deno = denominationRepo.findById(myValue); - BankDenomination denomination = deno.get(); - Bank bank = bankServcie.getBankDetailsByID(bankId).get(); - denomination.setBankId(bankId); - denomination.setNoOfDenomination(denomination.getNoOfDenomination() + count); - denominationRepo.save(denomination); - } - - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java deleted file mode 100644 index bb1f1c5..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; -import com.bank.repository.BankRepository; - -@Service("bankService") -public class BankServiceImpl implements IBankService { - - final Logger LOGGER = LoggerFactory.getLogger(BankServiceImpl.class); - @Autowired - private BankRepository bankRepository; - @Autowired - private IBankDenominationService bankDenoService; - - - // create new bank instance - @Override - public Bank createBank(final Bank bank) throws ManagedException { - final Bank bank1 = bankRepository.save(bank); - if (bank1 != null) { - - return bank1; - } else { - LOGGER.error("No bank is added"); - throw new ManagedException("No Bank is Added"); - } - } - - - @Override - public List getBankDetails() throws ManagedException { - final List list = bankRepository.findAll(); - if (list.isEmpty()) { - LOGGER.error("No banks found"); - throw new ManagedException("No bank found"); - } else { - return list; - } - } - - @Override - public Optional getBankDetailsByID(final long ID) throws ManagedException { - // TODO Auto-generated method stub - final Optional bank = bankRepository.findById(ID); - if (bank.isPresent()) { - return bank; - } else { - LOGGER.error("no bank of such id exist"); - throw new ManagedException("No such bank found"); - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java deleted file mode 100644 index f692e90..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.bank.service; - -import java.io.IOException; -import java.sql.Timestamp; -import java.time.LocalDateTime; - -import org.apache.commons.lang.SerializationUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -/*import org.springframework.cloud.stream.annotation.EnableBinding;*/ -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.AuditLog; -import com.bank.model.Customer; -import com.bank.repository.CustomerRepository; -import com.configrabbit.RabbitConfig; -import com.fasterxml.jackson.core.JsonGenerationException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -enum EventName { - CUSTOMER, ACCOUNT, ATM, BANK -} - -enum EventType { - CREATED, UPDATED -} - -@Service("customerService") -@Component -/* @EnableBinding(AuditRegistrationSource.class) */ -public class CustomerServiceImpl implements ICustomerService, Cloneable { - - final static Logger LOGGER = LoggerFactory.getLogger(CustomerServiceImpl.class); - @Autowired - private CustomerRepository customerRepository; - @Autowired - AuditServiceImpl auditService; - - @Autowired - RabbitTemplate template; - - @Override - public Customer createCustomer(final Customer customer) throws ManagedException { - final Customer custom = customerRepository.save(customer); - if (custom != null) { - return custom; - } else { - LOGGER.error("No customer is added"); - throw new ManagedException("no customer is created"); - } - } - - @Override - public Customer getCustomerDetails(final Long id) throws ManagedException { - - final Customer customer = customerRepository.findById(id).get(); - if (customer != null) { - return customer; - } else { - LOGGER.info("No customer of given id is exist"); - throw new ManagedException("no customer of such id exist"); - } - - } - - public static String fromJavaToJson(AuditLog audit) - throws JsonGenerationException, JsonMappingException, IOException { - ObjectMapper jsonMapper = new ObjectMapper(); - return jsonMapper.writeValueAsString(audit); - } - - @Override - public Customer updateCustomer(final Long id, final String name, final String userId) - throws ManagedException, CloneNotSupportedException { - // TODO Auto-generated method stub - final Customer customer = customerRepository.findById(id).get(); - - Customer oldcustmer = customer.clone(); - - if (customer != null) { - customer.setCustomerName(name); - customer.setUserId(userId); - Customer cust = customerRepository.save(customer); - Timestamp time = Timestamp.valueOf(LocalDateTime.now()); - AuditLog audit = new AuditLog(EventName.CUSTOMER.toString(), EventType.UPDATED.toString(), time, - cust.getUserId(), oldcustmer, cust); - - // AuditLog ob = auditService.generateAudit(audit); - - System.out.println("hii"); - String rabbitSendData = null; - try { - rabbitSendData = CustomerServiceImpl.fromJavaToJson(audit); - } catch (JsonGenerationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (JsonMappingException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - template.convertAndSend(RabbitConfig.ROUTING_KEY, rabbitSendData); - return cust; - } else { - LOGGER.info("No customer is updated as id not exist"); - throw new ManagedException("no customer is updated"); - } - - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java deleted file mode 100644 index 8621dc3..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/DenominationHelper.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -@Component -public class DenominationHelper { - - public Map getDenominatioValues(final BigDecimal amount , final List list) throws ManagedException { - final Map newMap=new HashMap(); - Random random = new Random(); - BigDecimal remainder = amount; - if(amount.intValue()>=0) - { - for(int i=0;i<=list.size();i++) - { - Integer randomIndex = random.nextInt(list.size()); - BigDecimal randomElement = list.get(randomIndex); - if ( !(randomElement.compareTo(remainder) >0) ) { - Integer count=remainder.divide(randomElement).intValue(); - remainder= remainder.remainder( randomElement); - - newMap.put(randomElement,count); - - if (remainder.compareTo(BigDecimal.ZERO) ==0) { - break; - } - } - list.remove(randomIndex); - - } - if (remainder.compareTo(BigDecimal.ZERO) !=0) { - System.out.println("cant Proceed "); - return null ; - } - - } - return newMap; - } - - - - public Map getcountDenomination(BigDecimal amount, List list) throws ManagedException - { - Map newMap = new HashMap(); - - List selectedList = new ArrayList(); - for (BigDecimal denom : list) { - if (denom.compareTo(amount) <= 0) { - selectedList.add(denom); - } else { - throw new ManagedException("selected list is empty"); - } - } - for (int i = 0; i <= selectedList.size(); i++) { - BigDecimal maxDen = Collections.max(selectedList); - Integer count = amount.divide(maxDen).intValue(); - amount = amount.remainder(maxDen); - newMap.put(maxDen, count); - - if (amount.compareTo(BigDecimal.ZERO) == 0) { - break; - } - selectedList.remove(maxDen); - } - // get index of particular element - if (amount.compareTo(BigDecimal.ZERO) != 0) { - throw new ManagedException("amount cannot be withdrawn"); - } - return newMap; - } -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IATMService.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IATMService.java deleted file mode 100644 index 91f56b9..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IATMService.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AddMoneyReq; -import com.bank.dto.WithrawMoneyReq; -import com.bank.model.ATM; - -/** - * @author ram - */ -public interface IATMService { - /** - * method name : createATM return type : ATM object parameter :object of ATM - * description : this method will return a atm which is created - */ - ATM createATM(final ATM atm) throws ManagedException; - - /** - * method name : addMoneyFromBank return type : String parameter :object of - * ATMMoneyReq description : this method will return a string if money is added - * to atm - */ - String addMoneyFromBank(final AddMoneyReq atm) throws ManagedException; - - /** - * method name : withrawMoney return type : String parameter :object of - * WithdrawMoneyReq description : this method will return a string if - * successfully money withraw - */ - Long withrawMoney(final WithrawMoneyReq withdraw) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IAccountService.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IAccountService.java deleted file mode 100644 index d207310..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IAccountService.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.dto.AccountTransaction; -import com.bank.model.Account; - -public interface IAccountService { - /** - * method name : createAccount return type : Account object parameter :object of - * Account class description : this method will return a account which is - * created - */ - Account createAccount(final Account account) throws ManagedException; - - /** - * method name : depositMoney return type : String parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully amount is added and add to transaction list - */ - Long depositMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : withdrawlMoney return type : String object parameter :object of - * AccountTransaction class description : this method will return a string if - * successfully withdraw and add to transaction list - */ - Long withdrawlMoney(final AccountTransaction account) throws ManagedException; - - /** - * method name : getAccountDetails return type : Account object parameter :Long - * id description : this method will return a account which is created of given - * id - */ - Account getAccountDetails(final Long id) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java deleted file mode 100644 index 47657d8..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IAtmDenoService.java +++ /dev/null @@ -1,15 +0,0 @@ - package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; - -public interface IAtmDenoService { - - - - - void atmDenominationCreate(List list,Long atmId)throws ManagedException; - void atmDenominationDeposit(BigDecimal amount, Long atmId) throws ManagedException; -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java deleted file mode 100644 index 124f9c5..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IBankDenominationService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -import com.bank.Exception.ManagedException; - -public interface IBankDenominationService { - - - void bankDenominationWithdraw(BigDecimal amount,Long bankId) throws ManagedException; - void bankDenominationDeposit(BigDecimal amount, Long bankId) throws ManagedException ; - void bankDenominationCreate(List list,Long bankId)throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IBankService.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IBankService.java deleted file mode 100644 index a464c98..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IBankService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Bank; - -public interface IBankService { - /* - * description : this method will return a bank which is created - */ - Bank createBank(final Bank bank) throws ManagedException; - - /* description : this method will return a list of all banks - */ - List getBankDetails() throws ManagedException; - - /* - * description : this method will return a bank of given id - */ - Optional getBankDetailsByID(final long Id) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java deleted file mode 100644 index 8256c10..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ICustomerService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.bank.service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Customer; - -/** - * @author ram - * - */ -public interface ICustomerService { - /** - * description : this method will return a customer which is - * created - */ - Customer createCustomer(final Customer customer) throws ManagedException; - - /** - * description : this method will return a customer of specified id - */ - Customer getCustomerDetails(final Long id) throws ManagedException; - /* - * description : this method will return a customer of specified id with updation - * @throws CloneNotSupportedException ,ManagedException - */ - Customer updateCustomer(final Long id,final String name, final String userId ) throws ManagedException, CloneNotSupportedException; -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java deleted file mode 100644 index 85867ad..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/IRefServcie.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; - -/** - * @author ram - * - */ -public interface IRefServcie { - - /** - * - * @param denomination - * @return - * @throws BankException - */ - - /** - * - * @return - * @throws ManagedException - */ - List returnAll() throws ManagedException; - void createDenomination(List list) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java deleted file mode 100644 index 9e8c997..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/ITransactionService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.bank.service; - -import java.util.List; -import java.util.Optional; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; - -/** - * @author ram - * - */ -public interface ITransactionService { - /** - * method name : createTransaction return type : Transaction object parameter - * :Transaction description : this method will return a transaction which is - * created - */ - Transaction createTransaction(final Transaction trans) throws ManagedException; - - /** - * method name : generateTransactionReport return type : List - * Object description : this method will return a list which of transactions - */ - List generateTransactionReport(Long accountId) throws ManagedException; - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java deleted file mode 100644 index 8a4a66f..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/RefServcieImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.bank.service; - -import java.math.BigDecimal; -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.RefMoney; -import com.bank.repository.RefMoneyRepository; -@Service -public class RefServcieImpl implements IRefServcie { - -@Autowired -private RefMoneyRepository refRepo; - @Override - public void createDenomination(List list) throws ManagedException{ - for(BigDecimal denomination: list ) - { - if(!refRepo.findById(denomination).isPresent()) - { - RefMoney refMoney=new RefMoney(); - refMoney.setDenomination(denomination); - refRepo.save(refMoney); - //return true; - } - else - { - throw new ManagedException("Denomination already exist!!!!"); - } - } - } - - @Override - public List returnAll() throws ManagedException { - - List list=refRepo.findAll(); - if(list.isEmpty()) - { - throw new ManagedException("no denomination found"); - } - else - { - return list; - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java deleted file mode 100644 index 213e1ea..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.bank.service; - -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.bank.Exception.ManagedException; -import com.bank.model.Transaction; -import com.bank.repository.TransactionRepository; -@Service -public class TransactionServiceImpl implements ITransactionService{ - final Logger LOGGER = LoggerFactory.getLogger(TransactionServiceImpl.class); - @Autowired - private TransactionRepository transact; - - @Override - public Transaction createTransaction(final Transaction trans) throws ManagedException { - - final Transaction newtransaction =transact.save(trans); - if(newtransaction!=null) - { - return newtransaction; - } - else - { - throw new ManagedException("no transaction has been created"); - } - } - - @Override - public List generateTransactionReport(Long accountId) throws ManagedException { - // TODO Auto-generated method stub - System.out.println(">>>>>>>>"+accountId); - List transopt=transact.findAllByAccountId(accountId); - System.out.println(">>>>>>>>"+transopt); - - return transopt; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/configrabbit/RabbitConfig.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/configrabbit/RabbitConfig.java deleted file mode 100644 index 7a0370c..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/java/com/configrabbit/RabbitConfig.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.configrabbit; - -import org.springframework.amqp.core.TopicExchange; -import org.springframework.amqp.core.Binding; -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.Queue; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -@Configuration -public class RabbitConfig { - //exchange will send the message through ROUTING_KEY to queue - public static final String ROUTING_KEY="sfg-message-queue"; - - //queue will recieve the message and make it durable - @Bean - Queue queue() - { - return new Queue(ROUTING_KEY, true); - } - - @Bean - TopicExchange exchange() - { - return new TopicExchange("spring-boot-exchange"); - - } - - @Bean - Binding binding(Queue queue, TopicExchange exchange) - { - return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY); - - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/resources/application.properties b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/resources/application.properties deleted file mode 100644 index 3d86cd8..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/main/resources/application.properties +++ /dev/null @@ -1,11 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/bankapp?useSSL=false -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true - -spring.rabbitmq.host = 127.0.0.1 -spring.rabbitmq.port = 5672 -spring.rabbitmq.username=guest -spring.rabbitmq.password=guest \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java deleted file mode 100644 index 15bba78..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/17BankInCapg/src/test/java/com/bank/testcases/AllTestCases.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.bank.testcases; - - - - - - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.mockito.Mockito.when; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Optional; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.web.client.RestTemplate; - -import com.bank.Exception.ManagedException; -import com.bank.controller.CustomerController; -import com.bank.dto.ATMReq; -import com.bank.dto.CreateCustomerRequest; -import com.bank.model.ATM; -import com.bank.model.Account; -import com.bank.model.Bank; -import com.bank.model.Customer; -import com.bank.repository.ATMRepository; -import com.bank.repository.AccountRepository; -import com.bank.repository.BankRepository; -import com.bank.repository.CustomerRepository; -import com.bank.service.ATMServiceImpl; -import com.bank.service.AccountServiceImpl; -import com.bank.service.BankServiceImpl; -import com.bank.service.CustomerServiceImpl; - -@RunWith(SpringRunner.class) -@SpringBootTest -@SpringBootConfiguration -@ComponentScan("application.properties") -public class AllTestCases { - - @Autowired - CustomerRepository customerRepository; - - @Autowired - CustomerServiceImpl customerServiceImpl; - - @Autowired - BankRepository bankRepository; - - @Autowired - BankServiceImpl bankServiceImpl; - - @Autowired - AccountRepository accountRepository; - - @Autowired - AccountServiceImpl accountServiceImpl; - - @Autowired - ATMRepository atmRepository; - - @Autowired - ATMServiceImpl atmServiceImpl; - - - @Test - public void createBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - when(bankRepository.save(bank)).thenReturn(bank); - // System.out.println(bank); - assertThat(bankServiceImpl.createBank(bank), is(notNullValue())); - } - - @Test - public void testAddBank() throws ManagedException { - final Bank bank = new Bank(1L, new BigDecimal(0)); - bankServiceImpl.createBank(bank); - - List departments = bankServiceImpl.getBankDetails(); - Assert.assertEquals(1, departments.size()); - } - - @Test - public void testAddCustomer() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - List employees = (List) customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(1, employees.size()); - } - - - @Test - public void testAddCustomerName() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getCustomerName(), employees.getCustomerName()); - } - RestTemplate restTemplate = new RestTemplate(); - @Autowired - CustomerController customerController; - - - - @Test - public void customerCreateRestTemplateTest() { - Customer customer = new Customer(); - customer.setCustomerName("Lokesh"); - customer.setPin(442001L); - - final String uri = "http://localhost:8080/customer/createCustomer"; - Optional ob = bankRepository.findById(1L); - Bank obj = ob.get(); - - CreateCustomerRequest createCustomerRequest = new CreateCustomerRequest(customer,1L); - String result = restTemplate.postForObject(uri, createCustomerRequest, String.class); - - //System.out.println(result); - assertEquals(result, customerController.createCustomer(createCustomerRequest)); - } - - - - @Test - public void viewCustByRestTemplateTest() { - - final String uri = "http://localhost:8080/getCustomer"; - - RestTemplate restTemplate = new RestTemplate(); - String result = restTemplate.getForObject(uri, String.class); - System.out.println(result); - assertEquals(result, customerController.getCustomer(1L)); - } - - - - @Test - public void testAddCustomerpin() throws ManagedException { - - Customer employee = new Customer(); - employee.setCustomerName("Lokesh"); - employee.setPin(442001L); - - customerServiceImpl.createCustomer(employee); - - Customer employees = customerServiceImpl.getCustomerDetails(1L); - Assert.assertEquals(employee.getPin(), employees.getPin()); - } - - - @Test - public void testAddAccount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - List information = (List) accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(1, information.size()); - } - - @Test - public void testAddAccountAmount() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAmount(), information.getAmount()); - } - - @Test - public void testAddAccountId() throws ManagedException { - - Account account = new Account (1L,new BigDecimal(100),new Customer(),new Bank(1L,new BigDecimal(0))); - - - accountServiceImpl.createAccount(account); - - Account information = accountServiceImpl.getAccountDetails(1L); - Assert.assertEquals(account.getAccountId(), information.getAccountId()); - } - - - @Test - public void createAtm() throws ManagedException { - Bank bank = new Bank(1L,new BigDecimal(1200)); - - Optional bnk = Optional.of(bank); - - ATM atm = new ATM(1L,new BigDecimal(5000), 1L); - - //ATMReq req = new ATMReq(1L,atm); - - - when(bankRepository.findById(Mockito.any(Long.class))).thenReturn(bnk); - when(atmRepository.save(atm)).thenReturn(atm); - assertThat(atmServiceImpl.createATM(atm), is(notNullValue())); - - } - - -} \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.gitignore b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.mvn/wrapper/maven-wrapper.jar b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.mvn/wrapper/maven-wrapper.properties b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/bootstrap.properties b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/bootstrap.properties deleted file mode 100644 index a2136c3..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/bootstrap.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.application.name=mongo-service -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27017 -spring.data.mongodb.database=mongodb -server.port=8082 -spring.cloud.config.uri=http://localhost:8888 \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/mvnw b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/mvnw.cmd b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/pom.xml b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/pom.xml deleted file mode 100644 index 68500f5..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/pom.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - 4.0.0 - - com.mongoDb - mongodbExample - 0.0.1-SNAPSHOT - jar - - mongodbExample - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - - - UTF-8 - UTF-8 - 1.8 - Edgware.SR3 - - - - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-amqp - - - - org.projectlombok - lombok - 1.16.20 - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - - org.springframework.cloud - spring-cloud-dependencies - ${spring-cloud.version} - pom - import - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/snapshot - - true - - - - spring-milestones - Spring Milestones - https://repo.spring.io/milestone - - false - - - - - diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java deleted file mode 100644 index 82ac709..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/MongoMain.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.mongo.db; - -import org.springframework.amqp.core.Binding; -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.MessageListener; -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.core.TopicExchange; -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; -import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; - -import com.mongo.db.rcvlistner.MsgListener; - -@SpringBootApplication -public class MongoMain { - public final static String MESSAGE_QUEUE = "sfg-message-queue"; - - @Bean - Queue queue() { - return new Queue(MESSAGE_QUEUE, false); - } - - @Bean - TopicExchange exchange() { - return new TopicExchange("spring-boot-exchange"); - } - - @Bean - Binding binding(Queue queue, TopicExchange exchange) { - return BindingBuilder.bind(queue).to(exchange).with(MESSAGE_QUEUE); - } - - @Bean - SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, - MessageListenerAdapter listenerAdapter) { - SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); - container.setConnectionFactory(connectionFactory); - container.setQueueNames(MESSAGE_QUEUE); - container.setMessageListener(listenerAdapter); - return container; - } - - @Bean - MessageListenerAdapter listenerAdapter(MsgListener receiver) { - return new MessageListenerAdapter(receiver, "receiveMessage"); - } - public static void main(String[] args) { - SpringApplication.run(MongoMain.class, args); - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java deleted file mode 100644 index a830375..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/controller/AuditController.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.mongo.db.controller; - -import java.util.List; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.service.IAuditService; -import com.mongo.db.vo.updateAuditRequest; - -/** - * @author trainee - * - */ -//@RequestMapping("/audit") -@RestController -public class AuditController { - - @Autowired - private IAuditService auditService; -/** - * - * @param audit - * @return - */ - @PostMapping - public ResponseEntitycreate(@RequestBody final AuditLog audit) - { - try { - auditService.createAudit(audit); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException exep) { - return new ResponseEntity(exep.getMessage(),HttpStatus.OK); - } - } - /** - * - * @param eventName - * @return - */ - @GetMapping("/{eventName}") - public ResponseEntitygetAudit(@PathVariable @NotNull final String eventName) - { - - try { - List list=auditService.getDetails(eventName); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @return - */ - @GetMapping - public ResponseEntitygetAllAudit() - { - - try { - List list=auditService.findall(); - return new ResponseEntity>(list,HttpStatus.OK); - } catch (AuditException e) { - - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param update - * @return - */ - @PutMapping - public ResponseEntityupdateAudit(@RequestBody final updateAuditRequest update) - { - - try { - AuditLog audit=auditService.update(update.getEventId(), update.getEventType()); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - - /** - * - * @param eventId - * @return - */ - @DeleteMapping("{eventId}") - public ResponseEntitydeleteAudit(@PathVariable final UUID eventId) - { - - try { - - String audit=auditService.deleteAudit(eventId); - return new ResponseEntity(audit,HttpStatus.ACCEPTED); - } catch (AuditException e) { - - return new ResponseEntity(e.getMessage(),HttpStatus.OK); - } - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java deleted file mode 100644 index 1b55caa..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/document/AuditLog.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.mongo.db.document; - -import java.util.Date; -import java.util.UUID; - -import javax.validation.constraints.NotNull; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -@Document -public class AuditLog { - - @Id - @NotNull - private UUID eventID=UUID.randomUUID(); - @NotNull - private String eventName; - private String eventType; - private Date eventDate; - private String userId; - private Object oldValue; - private Object newValue; - /** - * - * @return the eventID - */ - public UUID getEventID() { - return eventID; - } - /** - * @param eventID the eventID to set - */ - public void setEventID(UUID eventID) { - this.eventID = eventID; - } - /** - * @return the eventName - */ - public String getEventName() { - return eventName; - } - /** - * @param eventName the eventName to set - */ - public void setEventName(String eventName) { - this.eventName = eventName; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - /** - * @return the eventDate - */ - public Date getEventDate() { - return eventDate; - } - /** - * @param eventDate the eventDate to set - */ - public void setEventDate(Date eventDate) { - this.eventDate = eventDate; - } - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - /** - * @return the oldValue - */ - public Object getOldValue() { - return oldValue; - } - /** - * @param oldValue the oldValue to set - */ - public void setOldValue(Object oldValue) { - this.oldValue = oldValue; - } - /** - * @return the newValue - */ - public Object getNewValue() { - return newValue; - } - /** - * @param newValue the newValue to set - */ - public void setNewValue(Object newValue) { - this.newValue = newValue; - } - - public AuditLog() { - // TODO Auto-generated constructor stub - } - /** - * @param eventID - * @param eventName - * @param eventType - * @param eventDate - * @param userId - * @param oldValue - * @param newValue - */ - public AuditLog(UUID eventID, String eventName, String eventType, Date eventDate, String userId, - Object oldValue, Object newValue) { - super(); - this.eventID = eventID; - this.eventName = eventName; - this.eventType = eventType; - this.eventDate = eventDate; - this.userId = userId; - this.oldValue = oldValue; - this.newValue = newValue; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AuditLog [eventID=" + eventID + ", eventName=" + eventName + ", eventType=" + eventType + ", eventDate=" - + eventDate + ", userId=" + userId + ", oldValue=" + oldValue + ", newValue=" + newValue + "]"; - } - - - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java deleted file mode 100644 index 6479eb2..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/document/BaseEntity.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.mongo.db.document; - -public class BaseEntity { - private String userId; - - /** - * @return the userId - */ - public String getUserId() { - return userId; - } - - /** - * @param userId the userId to set - */ - public void setUserId(String userId) { - this.userId = userId; - } - - public BaseEntity() { - // TODO Auto-generated constructor stub - } - - /** - * @param userId - */ - public BaseEntity(String userId) { - super(); - this.userId = userId; - } - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BaseEntity [userId=" + userId + "]"; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java deleted file mode 100644 index c61912a..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/exception/AuditException.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mongo.db.exception; - -public class AuditException extends Exception{ - String msg; - - /** - * @param msg - */ - public AuditException(String msg) { - super(); - this.msg = msg; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/rcvlistner/MsgListener.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/rcvlistner/MsgListener.java deleted file mode 100644 index 6b479c6..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/rcvlistner/MsgListener.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.mongo.db.rcvlistner; - -import java.io.IOException; -import org.springframework.stereotype.Component; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.mongo.db.document.AuditLog; -import auditdemo.demoAudit.entity.AuditLogExternal; - -@Component -public class MsgListener { - - /* - * @Autowired AuditMongoRepository amd; - */ - public static Object fromJsonToJava(String json, Class type) - throws JsonParseException, JsonMappingException, IOException { - ObjectMapper jsonMapper = new ObjectMapper(); - return jsonMapper.readValue(json, type); - } - - public void receiveMessage(String message) { - AuditLogExternal value = null; - - try { - System.out.println("Message Number " + MsgListener.fromJsonToJava(message, AuditLog.class) + " received."); - } catch (JsonParseException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (JsonMappingException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java deleted file mode 100644 index b7d4db1..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/repo/AuditMongoRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.mongo.db.repo; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.data.mongodb.repository.MongoRepository; - -import com.mongo.db.document.AuditLog; - -/** - * @author trainee - * - */ -public interface AuditMongoRepository extends MongoRepository{ - - /** - * @param eventName - * @return - */ - List findByEventName(String eventName); - /** - * @param eventType - * @return - */ - AuditLog findByEventType(String eventType); - - - Optional findByeventID(UUID eventID); -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java deleted file mode 100644 index cd8286f..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/service/AuditServiceImpl.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; - -@Service("auditService") -public class AuditServiceImpl implements IAuditService{ - - @Autowired - private AuditMongoRepository auditRepo; - @Override - public AuditLog createAudit(AuditLog audit)throws AuditException { - AuditLog audi= auditRepo.save(audit); - if(audi!=null) - { - return audi; - } - else - { - throw new AuditException("audit not added"); - } - } - - - - @Override - public String deleteAudit(UUID id) throws AuditException { - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - {AuditLog aud=audit.get(); - auditRepo.delete(aud);; - return "deleted"; - } - else - { - throw new AuditException("not deleted"); - } - } - - @Override - public AuditLog update(UUID id,String eventType) throws AuditException { - //changes made after downgrading application - Optional audit=auditRepo.findByeventID(id); - if(audit.isPresent()) - { - AuditLog auditLog=audit.get(); - auditLog.setEventType(eventType); - AuditLog auu=auditRepo.save(auditLog); - return auu; - } - else - { - throw new AuditException("id not found!!!!"); - } - } - - - - @Override - public List getDetails(String eventName) throws AuditException { - // TODO Auto-generated method stub - List list=auditRepo.findByEventName(eventName); - if(list.isEmpty()) - { - throw new AuditException("List is empty"); - } - else - { - return list; - } - - } - - - - @Override - public List findall() throws AuditException { - // TODO Auto-generated method stub - return auditRepo.findAll(); - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java deleted file mode 100644 index db121ae..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/service/IAuditService.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.mongo.db.service; - -import java.util.List; -import java.util.UUID; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.exception.AuditException; - -public interface IAuditService { - - /** - * @method createAudit - * @param audit - * @return AuditLog object - * @throws AuditException - */ - AuditLog createAudit(AuditLog audit) throws AuditException; - /** - * @method getDetails - * @param eventName - * @return List - * @throws AuditException - */ - List getDetails(String eventName) throws AuditException; - /** - * @method deleteaudit - * @param id - * @return String - * @throws AuditException - */ - String deleteAudit(UUID id) throws AuditException; - /** - * @method update - * @param id - * @param eventType - * @return AuditLog - * @throws AuditException - */ - AuditLog update(UUID id,String eventType) throws AuditException; - /** - * @method findall - * @return List - * @throws AuditException - */ - List findall() throws AuditException; - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java deleted file mode 100644 index ac2a51a..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/java/com/mongo/db/vo/updateAuditRequest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mongo.db.vo; - -import java.util.UUID; - -public class updateAuditRequest { - - private UUID eventId; - private String eventType; - /** - * @return the eventId - */ - public UUID getEventId() { - return eventId; - } - /** - * @param eventId the eventId to set - */ - public void setEventId(UUID eventId) { - this.eventId = eventId; - } - /** - * @return the eventType - */ - public String getEventType() { - return eventType; - } - /** - * @param eventType the eventType to set - */ - public void setEventType(String eventType) { - this.eventType = eventType; - } - -} diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/resources/application.properties b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/resources/application.properties deleted file mode 100644 index 9d3e4e0..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/main/resources/application.properties +++ /dev/null @@ -1,15 +0,0 @@ -#Mongo -spring.data.mongodb.host=localhost -spring.data.mongodb.port=27017 -spring.data.mongodb.database=mongodb -server.port=8022 - -#Register with eureka -#eureka.client.service-url.defaultZone=http://localhost:8762/eureka - - - -#eureka.client.service-url.defaultZone=https://github.com/ramdafale/bank-config-server -#spring.application.name=mongo-client - - diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java deleted file mode 100644 index 86f4145..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongoTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/*package com.mongoDb.mongodbExample; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - -import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import java.util.UUID; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; - -import com.mongo.db.document.AuditLog; -import com.mongo.db.document.BaseEntity; -import com.mongo.db.exception.AuditException; -import com.mongo.db.repo.AuditMongoRepository; -import com.mongo.db.service.AuditServiceImpl; -import com.mongo.db.service.IAuditService; - -@RunWith(MockitoJUnitRunner.class) -public class MongoTest { - - @Mock - private AuditMongoRepository auditRepo; - - - @InjectMocks IAuditService auditServcie=new AuditServiceImpl(); - Date date=new Date(); - UUID id; - Timestamp time; - BaseEntity base1; - BaseEntity bsae2; - AuditLog audit; - AuditLog audit1; - AuditLog audit2; - @Before - public void init() - { - date=new Date(); - id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - time=new Timestamp(date.getTime()); - base1=new BaseEntity("1"); - bsae2=new BaseEntity("2"); - audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - audit1 =new AuditLog(UUID.fromString("38400000-8cf0-11cd-b23e-10b96e4ef00d"),"createnew","creation",time,"3",base1,bsae2); - } - @Test - public void auditcreateTest()throws AuditException - { Date date=new Date(); - UUID id=UUID.fromString("38400000-8cf0-11bd-b23e-10b96e4ef00d"); - Timestamp time=new Timestamp(date.getTime()); - BaseEntity base1=new BaseEntity("1"); - BaseEntity bsae2=new BaseEntity("2"); - AuditLog audit =new AuditLog(id,"create","creation",time,"3",base1,bsae2); - Mockito.when(auditRepo.save(audit)).thenReturn(audit); - AuditLog audi; - - audi = auditServcie.createAudit(audit); - assertEquals("created",audi,audit); - } - @Test(expected=AuditException.class) - public void falsecreateTest() throws AuditException - { - AuditLog audit1=null; - Mockito.when(auditRepo.save(audit1)).thenReturn(audit1); - AuditLog audi; - audi = auditServcie.createAudit(audit1); - } - -@Test -public void auditgetDetails()throws AuditException -{ - - - List list=new ArrayList(); - - list.add(audit); - list.add(audit1); - Mockito.when(auditRepo.findByEventName("create")).thenReturn(list); - List newList=auditServcie.getDetails("create"); - assertEquals(list, newList); - -} -@Test(expected=AuditException.class) -public void auditgetDetailsfalse()throws AuditException -{ - - - List list=new ArrayList<>(); - Mockito.when(auditRepo.findByEventName("mongo")).thenReturn(list); - List newList=auditServcie.getDetails("mongo"); - - -} - -@Test -public void auditupdatetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - assertEquals(auditt,newAudit); -} - -@Test(expected=AuditException.class) -public void auditupdatefalsecase() throws AuditException -{ - Optional opt=Optional.empty(); - when(auditRepo.findById(id)).thenReturn(opt); - //AuditLog auditt=opt.get(); - //when(auditRepo.save(auditt)).thenReturn(auditt); - AuditLog newAudit=auditServcie.update(id, "updation"); - - -} - -@Test -public void auditdeletetruecase() throws AuditException -{ - Optional opt=Optional.of(audit); - when(auditRepo.findById(id)).thenReturn(opt); - AuditLog auditt=opt.get(); - - String newAudit=auditServcie.deleteAudit(id); - - assertEquals("deleted",newAudit); -} - -} -*/ \ No newline at end of file diff --git a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java b/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java deleted file mode 100644 index 160469e..0000000 --- a/Rabbit MQ demo with object/RabbitMqAuditObjectDemo/mongodbClient2/src/test/java/com/mongoDb/mongodbExample/MongodbExampleApplicationTests.java +++ /dev/null @@ -1,17 +0,0 @@ -/*package com.mongoDb.mongodbExample; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class MongodbExampleApplicationTests { - - @Test - public void contextLoads() { - } - -} -*/ \ No newline at end of file diff --git a/Rabbit mq installations b/Rabbit mq installations deleted file mode 100644 index 95b2b3c..0000000 --- a/Rabbit mq installations +++ /dev/null @@ -1,29 +0,0 @@ -Install RabbitMQ on windows: - -1. Download RabbitMQ: -https://www.rabbitmq.com/install-windows.html - -2. Download and install Erlang: -http://www.erlang.org/downloads - -select the link: "OTP 20.3 Windows 64-bit Binary File (99142192)" - -3. Install the Server: -Run the RabbitMQ installer, rabbitmq-server-3.7.5.exe. It installs RabbitMQ as a Windows service and -starts it using the default configuration. - -4. Run RabbitMQ Service: -The service will run fine using its default settings. The RabbitMQ service starts automatically. You can -stop/reinstall/start the RabbitMQ service from the Start Menu. - -5. Maven Dependency: - - - org.springframework.boot - spring-boot-starter-amqp - - -6. Following to be added in application.properties of spring boot: - -spring.rabbitmq.host = 127.0.0.1 -spring.rabbitmq.port = 5672 diff --git a/RabbitDemoSimple/demoCommon/.classpath b/RabbitDemoSimple/demoCommon/.classpath deleted file mode 100644 index 9ae7bca..0000000 --- a/RabbitDemoSimple/demoCommon/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RabbitDemoSimple/demoCommon/.project b/RabbitDemoSimple/demoCommon/.project deleted file mode 100644 index f3900a6..0000000 --- a/RabbitDemoSimple/demoCommon/.project +++ /dev/null @@ -1,37 +0,0 @@ - - - demoCommon - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.wst.validation.validationbuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jem.workbench.JavaEMFNature - org.eclipse.wst.common.modulecore.ModuleCoreNature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.wst.common.project.facet.core.nature - org.eclipse.wst.jsdt.core.jsNature - - diff --git a/RabbitDemoSimple/demoCommon/.settings/.jsdtscope b/RabbitDemoSimple/demoCommon/.settings/.jsdtscope deleted file mode 100644 index 2418123..0000000 --- a/RabbitDemoSimple/demoCommon/.settings/.jsdtscope +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.jdt.core.prefs b/RabbitDemoSimple/demoCommon/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 45a6e0e..0000000 --- a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.m2e.core.prefs b/RabbitDemoSimple/demoCommon/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.common.component b/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.common.component deleted file mode 100644 index 6ce3563..0000000 --- a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.common.component +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.common.project.facet.core.xml b/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d74c55e..0000000 --- a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.container b/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.container deleted file mode 100644 index 3bd5d0a..0000000 --- a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.container +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.name b/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.name deleted file mode 100644 index 05bd71b..0000000 --- a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.name +++ /dev/null @@ -1 +0,0 @@ -Window \ No newline at end of file diff --git a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.validation.prefs b/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.validation.prefs deleted file mode 100644 index 04cad8c..0000000 --- a/RabbitDemoSimple/demoCommon/.settings/org.eclipse.wst.validation.prefs +++ /dev/null @@ -1,2 +0,0 @@ -disabled=06target -eclipse.preferences.version=1 diff --git a/RabbitDemoSimple/demoCommon/pom.xml b/RabbitDemoSimple/demoCommon/pom.xml deleted file mode 100644 index e7ea0b5..0000000 --- a/RabbitDemoSimple/demoCommon/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - 4.0.0 - com.example.common - demoCommon - jar - 0.0.1-SNAPSHOT - demoCommon Maven Webapp - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - - demoCommon - - diff --git a/RabbitDemoSimple/demoCommon/src/main/java/com/example/commonDemo/TransactionNew.java b/RabbitDemoSimple/demoCommon/src/main/java/com/example/commonDemo/TransactionNew.java deleted file mode 100644 index ccc60ef..0000000 --- a/RabbitDemoSimple/demoCommon/src/main/java/com/example/commonDemo/TransactionNew.java +++ /dev/null @@ -1,134 +0,0 @@ -/** - * - */ -package com.example.commonDemo; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.logging.Level; -import java.util.logging.Logger; - - - - -/** - * @author trainee - * - */ - -public class TransactionNew implements Serializable{ - - /** - * - */ - private static final long serialVersionUID = -7197575110101065396L; - int transactionId; - int customerId; - int accountId; - int amount; - String transactionType; - - public TransactionNew() { - // TODO Auto-generated constructor stub - } - - public TransactionNew(int transactionId, int customerId, int accountId, int amount, String transactionType) { - super(); - this.transactionId = transactionId; - this.customerId = customerId; - this.accountId = accountId; - this.amount = amount; - this.transactionType = transactionType; - } - - - @Override - public String toString() { - return "TransactionNew [transactionId=" + transactionId + ", customerId=" + customerId + ", accountId=" - + accountId + ", amount=" + amount + ", transactionType=" + transactionType + "]"; - } - - public int getTransactionId() { - return transactionId; - } - - public void setTransactionId(int transactionId) { - this.transactionId = transactionId; - } - - public int getCustomerId() { - return customerId; - } - - public void setCustomerId(int customerId) { - this.customerId = customerId; - } - - public int getAccountId() { - return accountId; - } - - public void setAccountId(int accountId) { - this.accountId = accountId; - } - - public int getAmount() { - return amount; - } - - public void setAmount(int amount) { - this.amount = amount; - } - - public String getTransactionType() { - return transactionType; - } - - public void setTransactionType(String transactionType) { - this.transactionType = transactionType; - } - - public byte[] getBytes() { - byte[]bytes; - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - try{ - ObjectOutputStream oos = new ObjectOutputStream(baos); - oos.writeObject(this); - oos.flush(); - oos.reset(); - bytes = baos.toByteArray(); - oos.close(); - baos.close(); - } catch(IOException e){ - bytes = new byte[] {}; - Logger.getLogger("bsdlog").log(Level.ALL, "unable to write to output stream" + e); - } - return bytes; - } - - public static TransactionNew fromBytes(byte[] body) { - TransactionNew obj = null; - try { - ByteArrayInputStream bis = new ByteArrayInputStream(body); - ObjectInputStream ois = new ObjectInputStream(bis); - obj = (TransactionNew) ois.readObject(); - ois.close(); - bis.close(); - } - catch (IOException e) { - e.printStackTrace(); - } - catch (ClassNotFoundException ex) { - ex.printStackTrace(); - } - return obj; - } - - -} - - diff --git a/RabbitDemoSimple/demoCommon/src/main/webapp/WEB-INF/web.xml b/RabbitDemoSimple/demoCommon/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 9f88c1f..0000000 --- a/RabbitDemoSimple/demoCommon/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - Archetype Created Web Application - diff --git a/RabbitDemoSimple/demoCommon/target/classes/META-INF/MANIFEST.MF b/RabbitDemoSimple/demoCommon/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index d617fcc..0000000 --- a/RabbitDemoSimple/demoCommon/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/RabbitDemoSimple/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.properties b/RabbitDemoSimple/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.properties deleted file mode 100644 index 1135b68..0000000 --- a/RabbitDemoSimple/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Thu Jun 07 12:58:15 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.example.common -m2e.projectName=demoCommon -m2e.projectLocation=C\:\\Users\\trainee\\Documents\\workspace-sts-3.9.4.RELEASE\\demoCommon -artifactId=demoCommon diff --git a/RabbitDemoSimple/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.xml b/RabbitDemoSimple/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.xml deleted file mode 100644 index e7ea0b5..0000000 --- a/RabbitDemoSimple/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - 4.0.0 - com.example.common - demoCommon - jar - 0.0.1-SNAPSHOT - demoCommon Maven Webapp - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - - demoCommon - - diff --git a/RabbitDemoSimple/demoCommon/target/classes/com/example/commonDemo/TransactionNew.class b/RabbitDemoSimple/demoCommon/target/classes/com/example/commonDemo/TransactionNew.class deleted file mode 100644 index 45b67f735146a2b3b2bbe57eb8a005ee4da53db7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3760 zcma)8`*Raj6#lkNn=~u};aQ+GrBssi5ndu%KxiovOiPhcsReYCENx1Xt;q&j5XAQr z9~Iw-;tL-*gN`kZIF3L2gMWj6iQ{*6(RGj62%^s`Pl6f7Ro&S=4emKq5jij3(| z(}`LI%dFYB5j>)&<60tqPKzXTDrcj@W79x>DL z)JP}wcg9n3bGL$OpMOw+quYq-Zd7BXiltaaGvRnj@5?45dV0Wy?+F`GEitGuB!-il zbeN;@jDn5fyUH2;*84*Il_T;G)CsHK!8U%&1t%k?luTsTeMMKZC3G2%uNh7&0TtE|YfW;_w({0K`v80M&_RgB{)(t~NUClqwd z&$kK&I_r=@)(LhRyRPQy=x6kViZeJ%>g)}(iPhV=E7xKfOtQ?gDd{F&)9_mP6Tz?! z%bUramLKP(GM+A}jM=2lTN#p#iz=SMC1PO~3XxU-Q)Y#y<-~Iemd0eYPqQ~g$@=TK=EN7| zjs?!Te7h4`Cevq_`*{b(iq6RqF=Av{wGkQPGa^^jx_oXc<$+1AHbiYrUac&2>Qw0y z3f9{y{{w)U?juGv9o6^8T9OaQn0;_zyTj^`w2ckxUIC; zMnCOnM2F>Xw{0`$kJhc=1gO^vPtbYgu4g(#k`Nu1Bth1IpBeOEBRp@V3<%wUf5_8% z8|{H#&@h8do^3POPPtL!2W+`X82sPsWX5L7xHMyf`b4`A85BBFa@1{$My4K2ZA)EF|?PScmEDI}a zt$gNcbD2}{a77@Er9k#n1ahDkQ*ky&juXg|q9Ho!iv8DND5?_{W_Y6DdS$3=m>P>RT zIUfCa?zn(WxX3ngsVKJX_>vJxv)P8P*m?Pt$JMX#4QH0I=iR`!#4VjvBC4VV2foAi Llob46?YsFOTn`$C diff --git a/RabbitDemoSimple/demoCommon/target/demoCommon.jar b/RabbitDemoSimple/demoCommon/target/demoCommon.jar deleted file mode 100644 index 34c4b37054abf438bcf3910bf7df494e448320b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4677 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 S02H<2x0XQcBf&LBBmJEIX diff --git a/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF b/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF deleted file mode 100644 index d617fcc..0000000 --- a/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.properties b/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.properties deleted file mode 100644 index 543c4f4..0000000 --- a/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Fri May 18 14:55:13 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.example.common -m2e.projectName=demoCommon -m2e.projectLocation=C\:\\Users\\trainee\\Documents\\workspace-sts-3.9.4.RELEASE\\demoCommon -artifactId=demoCommon diff --git a/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.xml b/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.xml deleted file mode 100644 index 02a624c..0000000 --- a/RabbitDemoSimple/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - 4.0.0 - com.example.common - demoCommon - war - 0.0.1-SNAPSHOT - demoCommon Maven Webapp - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - - demoCommon - - diff --git a/RabbitDemoSimple/demoCommon/target/maven-archiver/pom.properties b/RabbitDemoSimple/demoCommon/target/maven-archiver/pom.properties deleted file mode 100644 index d1d3396..0000000 --- a/RabbitDemoSimple/demoCommon/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Fri May 18 14:57:09 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.example.common -artifactId=demoCommon diff --git a/RabbitDemoSimple/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/RabbitDemoSimple/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/RabbitDemoSimple/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/RabbitDemoSimple/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 58e7730..0000000 --- a/RabbitDemoSimple/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1 +0,0 @@ -C:\Users\trainee\Documents\workspace-sts-3.9.4.RELEASE\demoCommon\src\main\java\com\example\commonDemo\TransactionNew.java diff --git a/RabbitDemoSimple/sampleRcv/.gitignore b/RabbitDemoSimple/sampleRcv/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/RabbitDemoSimple/sampleRcv/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/RabbitDemoSimple/sampleRcv/.mvn/wrapper/maven-wrapper.jar b/RabbitDemoSimple/sampleRcv/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/RabbitDemoSimple/sampleRcv/.mvn/wrapper/maven-wrapper.properties b/RabbitDemoSimple/sampleRcv/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/RabbitDemoSimple/sampleRcv/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/RabbitDemoSimple/sampleRcv/mvnw b/RabbitDemoSimple/sampleRcv/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/RabbitDemoSimple/sampleRcv/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/RabbitDemoSimple/sampleRcv/mvnw.cmd b/RabbitDemoSimple/sampleRcv/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/RabbitDemoSimple/sampleRcv/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/RabbitDemoSimple/sampleRcv/pom.xml b/RabbitDemoSimple/sampleRcv/pom.xml deleted file mode 100644 index da1cab7..0000000 --- a/RabbitDemoSimple/sampleRcv/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - 4.0.0 - - com.example - sampleRcv - 0.0.1-SNAPSHOT - jar - - sampleRcv - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-amqp - - - org.springframework.boot - spring-boot-starter-data-mongodb - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/SampleRcvApplication.java b/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/SampleRcvApplication.java deleted file mode 100644 index 5b3d537..0000000 --- a/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/SampleRcvApplication.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.example.sampleRcv; - -import org.springframework.amqp.core.Binding; -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.core.TopicExchange; -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; -import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; - -import com.example.sampleRcv.listener.MsgListener; - - -@SpringBootApplication -public class SampleRcvApplication { - - public final static String MESSAGE_QUEUE = "sfg-message-queue"; - - @Bean - Queue queue() { - return new Queue(MESSAGE_QUEUE, false); - } - - @Bean - TopicExchange exchange() { - return new TopicExchange("spring-boot-exchange"); - } - - @Bean - Binding binding(Queue queue, TopicExchange exchange) { - return BindingBuilder.bind(queue).to(exchange).with(MESSAGE_QUEUE); - } - - @Bean - SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, - MessageListenerAdapter listenerAdapter) { - SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); - container.setConnectionFactory(connectionFactory); - container.setQueueNames(MESSAGE_QUEUE); - container.setMessageListener(listenerAdapter); - return container; - } - - @Bean - MessageListenerAdapter listenerAdapter(MsgListener receiver) { - return new MessageListenerAdapter(receiver, "receiveMessage"); - } - - public static void main(String[] args) { - SpringApplication.run(SampleRcvApplication.class, args); - } -} diff --git a/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/dto/Transaction.java b/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/dto/Transaction.java deleted file mode 100644 index 342f343..0000000 --- a/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/dto/Transaction.java +++ /dev/null @@ -1,88 +0,0 @@ -/** - * - */ -package com.example.sampleRcv.dto; - -import java.io.Serializable; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -/** - * @author trainee - * - */ -@Document(collection="transactionCollection") -public class Transaction implements Serializable{ - - /** - * - */ - private static final long serialVersionUID = 1L; - @Id - int transactionId; - int customerId; - int accountId; - int amount; - String transactionType; - - public Transaction() { - // TODO Auto-generated constructor stub - } - - public Transaction(int transactionId, int customerId, int accountId, int amount, String transactionType) { - super(); - this.transactionId = transactionId; - this.customerId = customerId; - this.accountId = accountId; - this.amount = amount; - this.transactionType = transactionType; - } - - - @Override - public String toString() { - return "Transaction [transactionId=" + transactionId + ", customerId=" + customerId + ", accountId=" + accountId - + ", amount=" + amount + ", transactionType=" + transactionType + "]"; - } - - public int getTransactionId() { - return transactionId; - } - - public void setTransactionId(int transactionId) { - this.transactionId = transactionId; - } - - public int getCustomerId() { - return customerId; - } - - public void setCustomerId(int customerId) { - this.customerId = customerId; - } - - public int getAccountId() { - return accountId; - } - - public void setAccountId(int accountId) { - this.accountId = accountId; - } - - public int getAmount() { - return amount; - } - - public void setAmount(int amount) { - this.amount = amount; - } - - public String getTransactionType() { - return transactionType; - } - - public void setTransactionType(String transactionType) { - this.transactionType = transactionType; - } -} diff --git a/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/listener/MsgListener.java b/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/listener/MsgListener.java deleted file mode 100644 index 57f9aa8..0000000 --- a/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/listener/MsgListener.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.sampleRcv.listener; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.example.commonDemo.TransactionNew; -import com.example.sampleRcv.dto.Transaction; -import com.example.sampleRcv.repository.DemoRepository; - - -@Component -public class MsgListener { - - @Autowired - DemoRepository demoRepository; - - public void receiveMessage(TransactionNew message) { - System.out.println("Received <" + message + ">"); - Transaction transaction = new Transaction(message.getTransactionId(), message.getCustomerId(), message.getAccountId(), message.getAmount(), message.getTransactionType()); - demoRepository.save(transaction); - } -} diff --git a/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/repository/DemoRepository.java b/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/repository/DemoRepository.java deleted file mode 100644 index 4363a84..0000000 --- a/RabbitDemoSimple/sampleRcv/src/main/java/com/example/sampleRcv/repository/DemoRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -/** - * - */ -package com.example.sampleRcv.repository; - -import org.springframework.data.mongodb.repository.MongoRepository; -import org.springframework.stereotype.Repository; - -import com.example.sampleRcv.dto.Transaction; - -@Repository -public interface DemoRepository extends MongoRepository{ - -} diff --git a/RabbitDemoSimple/sampleRcv/src/main/resources/application.properties b/RabbitDemoSimple/sampleRcv/src/main/resources/application.properties deleted file mode 100644 index d2f9127..0000000 --- a/RabbitDemoSimple/sampleRcv/src/main/resources/application.properties +++ /dev/null @@ -1,10 +0,0 @@ -server.port= 8061 - -#RabbitMQ -spring.rabbitmq.host = 127.0.0.1 -spring.rabbitmq.port = 5672 - -#MongoDB -spring.data.mongodb.host=127.0.0.1 -spring.data.mongodb.port=27017 -spring.data.mongodb.database=myapp \ No newline at end of file diff --git a/RabbitDemoSimple/sampleRcv/src/test/java/com/example/sampleRcv/SampleRcvApplicationTests.java b/RabbitDemoSimple/sampleRcv/src/test/java/com/example/sampleRcv/SampleRcvApplicationTests.java deleted file mode 100644 index 3b63b5d..0000000 --- a/RabbitDemoSimple/sampleRcv/src/test/java/com/example/sampleRcv/SampleRcvApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.sampleRcv; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SampleRcvApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/RabbitDemoSimple/sampleSend/.gitignore b/RabbitDemoSimple/sampleSend/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/RabbitDemoSimple/sampleSend/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/RabbitDemoSimple/sampleSend/.mvn/wrapper/maven-wrapper.jar b/RabbitDemoSimple/sampleSend/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/RabbitDemoSimple/sampleSend/.mvn/wrapper/maven-wrapper.properties b/RabbitDemoSimple/sampleSend/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/RabbitDemoSimple/sampleSend/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/RabbitDemoSimple/sampleSend/mvnw b/RabbitDemoSimple/sampleSend/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/RabbitDemoSimple/sampleSend/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/RabbitDemoSimple/sampleSend/mvnw.cmd b/RabbitDemoSimple/sampleSend/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/RabbitDemoSimple/sampleSend/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/RabbitDemoSimple/sampleSend/pom.xml b/RabbitDemoSimple/sampleSend/pom.xml deleted file mode 100644 index 6f89717..0000000 --- a/RabbitDemoSimple/sampleSend/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - 4.0.0 - - com.example - sampleSend - 0.0.1-SNAPSHOT - jar - - sampleSend - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.1.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-amqp - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/RabbitDemoSimple/sampleSend/src/main/java/com/example/sampleSend/SampleSendApplication.java b/RabbitDemoSimple/sampleSend/src/main/java/com/example/sampleSend/SampleSendApplication.java deleted file mode 100644 index ef0f447..0000000 --- a/RabbitDemoSimple/sampleSend/src/main/java/com/example/sampleSend/SampleSendApplication.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.example.sampleSend; - -import org.springframework.amqp.core.TopicExchange; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Bean; - -@SpringBootApplication -public class SampleSendApplication { - - public final static String MESSAGE_QUEUE = "sfg-message-queue"; - - @Bean - TopicExchange exchange() { - return new TopicExchange("spring-boot-exchange"); - } - - public static void main(String[] args) { - SpringApplication.run(SampleSendApplication.class, args); - } -} diff --git a/RabbitDemoSimple/sampleSend/src/main/java/com/example/sampleSend/controller/AppController.java b/RabbitDemoSimple/sampleSend/src/main/java/com/example/sampleSend/controller/AppController.java deleted file mode 100644 index 0dd0e09..0000000 --- a/RabbitDemoSimple/sampleSend/src/main/java/com/example/sampleSend/controller/AppController.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.example.sampleSend.controller; - -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.example.commonDemo.TransactionNew; -import com.example.sampleSend.SampleSendApplication; - -@RestController -public class AppController { - - private RabbitTemplate rabbitTemplate; - - /** - * @param rabbitTemplate - */ - public AppController(RabbitTemplate rabbitTemplate) { - this.rabbitTemplate = rabbitTemplate; - } - - @RequestMapping("/") - public String sendMsg(@RequestBody TransactionNew transaction) { - rabbitTemplate.convertAndSend(SampleSendApplication.MESSAGE_QUEUE, transaction); - return "send"; - } -} diff --git a/RabbitDemoSimple/sampleSend/src/main/resources/application.properties b/RabbitDemoSimple/sampleSend/src/main/resources/application.properties deleted file mode 100644 index ab0692b..0000000 --- a/RabbitDemoSimple/sampleSend/src/main/resources/application.properties +++ /dev/null @@ -1,3 +0,0 @@ -server.port= 8060 -spring.rabbitmq.host = 127.0.0.1 -spring.rabbitmq.port = 5672 \ No newline at end of file diff --git a/RabbitDemoSimple/sampleSend/src/test/java/com/example/sampleSend/SampleSendApplicationTests.java b/RabbitDemoSimple/sampleSend/src/test/java/com/example/sampleSend/SampleSendApplicationTests.java deleted file mode 100644 index 31ce03e..0000000 --- a/RabbitDemoSimple/sampleSend/src/test/java/com/example/sampleSend/SampleSendApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.sampleSend; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SampleSendApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/Spring Security b/Spring Security deleted file mode 100644 index 84ab46e..0000000 --- a/Spring Security +++ /dev/null @@ -1,6 +0,0 @@ -https://github.com/chargeahead/SpringSecurity - -best tutorials follow next link also for db authentication -https://www.youtube.com/watch?v=QA9JJ-NFLo4 - -https://www.youtube.com/watch?v=uxbtIqaKsOA diff --git a/SpringJDBCTemplateExampleForLearning/.DS_Store b/SpringJDBCTemplateExampleForLearning/.DS_Store deleted file mode 100644 index 5172429f264de2441865cb4700216d4256da9242..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~J!%6%427R!7lt%jx}3%b$PET#pTHLgIFQEJ;E>dF^gR7ES*H$5cmnB-G%I%Z zD|S`@Z2$T80!#olbXV*=%*>dt@PRwdU#I)^a=X5>;#J@&VrHyNnC;iLL0pQvfVyTmjO&;ssLc!1UOG})p;=82 zR;?Ceh}WZ?+UmMqI#RP8R>OzYoz15hnq@nzF`-!xQ4j$Um=RcIKKc27r2jVm&svm< zfC&6E0=7P!4tu^-ovjbA=k?dB`g+i*aXG_}p8zI)6mRKa+;6_1_R^8c3Qa!(fk8n8 H{*=HsM+*^= diff --git a/SpringJDBCTemplateExampleForLearning/.classpath b/SpringJDBCTemplateExampleForLearning/.classpath deleted file mode 100644 index 4a77ee8..0000000 --- a/SpringJDBCTemplateExampleForLearning/.classpath +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SpringJDBCTemplateExampleForLearning/.project b/SpringJDBCTemplateExampleForLearning/.project deleted file mode 100644 index dfac213..0000000 --- a/SpringJDBCTemplateExampleForLearning/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - SpringJDBCTemplateExample - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/SpringJDBCTemplateExampleForLearning/.settings/org.eclipse.jdt.core.prefs b/SpringJDBCTemplateExampleForLearning/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 63864f1..0000000 --- a/SpringJDBCTemplateExampleForLearning/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=9 -org.eclipse.jdt.core.compiler.compliance=9 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=9 diff --git a/SpringJDBCTemplateExampleForLearning/.settings/org.eclipse.m2e.core.prefs b/SpringJDBCTemplateExampleForLearning/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/SpringJDBCTemplateExampleForLearning/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/SpringJDBCTemplateExampleForLearning/pom.xml b/SpringJDBCTemplateExampleForLearning/pom.xml deleted file mode 100644 index cbe105b..0000000 --- a/SpringJDBCTemplateExampleForLearning/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - 4.0.0 - - com.journaldev.spring - JdbcTemplate - 1.0-SNAPSHOT - - 4.3.0.RELEASE - 42.1.4 - - - - org.postgresql - postgresql - ${postgres.version} - - - org.springframework - spring-core - ${spring.framework} - - - org.springframework - spring-context - ${spring.framework} - - - org.springframework - spring-jdbc - ${spring.framework} - - - - \ No newline at end of file diff --git a/SpringJDBCTemplateExampleForLearning/sample_data_postgresql.sql b/SpringJDBCTemplateExampleForLearning/sample_data_postgresql.sql deleted file mode 100644 index 165a210..0000000 --- a/SpringJDBCTemplateExampleForLearning/sample_data_postgresql.sql +++ /dev/null @@ -1,13 +0,0 @@ -create table people ( -id serial not null primary key, -first_name varchar(20) not null, -last_name varchar(20) not null, -age integer not null -); - -insert into people (id, first_name, last_name, age) values -(1, 'Vlad', 'Boyarskiy', 21), -(2,'Oksi', ' Bahatskaya', 30), -(3,'Vadim', ' Vadimich', 32); - -commit; \ No newline at end of file diff --git a/SpringJDBCTemplateExampleForLearning/src/.DS_Store b/SpringJDBCTemplateExampleForLearning/src/.DS_Store deleted file mode 100644 index 7b5c75f2e0a9c2dff938e1cb0d1b7044fac7b894..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%Sr=55Ukcc1ia+vael!+7()Dl{6GSV2)cqs&wI*u`Ds=^5R#4H#fwx!cg@sx z&#-ma-UeW+_q!Wl31C5Y#KFVd{JHzgE{bt9KjUNbIzGLO54oS^pCi0>z%zDu#CTFa zV2^veVSmD(J4c)pkOERb3P=Gd@H++Av)vX~iHcG{3P^!(1^oNa=#IT`N{mkjLyQ2# zfpi$xF-s7e6U1IPC6b|8mJ+knYQ(TCC*LZs7fy*;4vU+4PTg!Zp;+8bzC}8$Cn`z- zDR8X7Wp0<=|8MC(%>Tzl+DQQ^@UIlGVZB+e_)67VXD{cyw$ZnA&-tXgaUCTL(T<7H ij=Ax6d>u)d*L=Lp5a`I75)X#wHB9j7tt-u#C&KU~; diff --git a/SpringJDBCTemplateExampleForLearning/src/main/.DS_Store b/SpringJDBCTemplateExampleForLearning/src/main/.DS_Store deleted file mode 100644 index 0ea0534fce4609c5de7b2e35dab2d81543b609bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jx&8b427Rziy)emlye1cFp9znaseVhNC+iTP*QKlwR!#lk!+x(K+lrr&3Nq@ z?N_XK0N7&xcniz{%;>Io_hD-O+&A+VNgfCz|y2#A0P{6>I1+iiB8s!;?)Km@)B`1hgFU3=-68lMgh zaRs0b42N+ZcL{3q0JWEnsf^GpOQ~6Eb;YnOXS`KjFC9~}92O^YpE}ve+vxZ7Ph)PRbBI<< ijaJNsx8j>`dClj1-b=^SC}%v%srnIcE;14L3j!agQ5tCg diff --git a/SpringJDBCTemplateExampleForLearning/src/main/java/.DS_Store b/SpringJDBCTemplateExampleForLearning/src/main/java/.DS_Store deleted file mode 100644 index 0a8bc21eef2735eaef7786d6a2b9eb2fa2ef83ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~J!%6%427R!7lt%jx}3%b$PET#pTHLgIFQCa5J>7ddY*ootW$?2Jc0B^niaeI z6+0^cw*P#40VV(&x+``bW@gM+IOC4%*XiSSx!>Md@hb2XF*8;s%=T+rA_5{H0wN#+ zBCsF=d5UB6yr5^&qlkbAEQ5f59~#}YmyXo+mcOwzbaxxbJPZYVAogWyZmVxJuorn6e-e#5lFME z)$DOooK662dE7n&3jlMvBR)M$&ClH@c2^lA(s{>#4R+Y#4W~)>fE17dQa}nwfnO`&y_YtBOjMKtQa}n^6!7muqdWG(F)=I`ggSdf}LubXW}^R!_E?P%NI#`&*R5dZMBf zkOJ2V+~;=T{r`pj!~B0u(oPCUfq$id%~tExlCM;~b@FoFYa9KQ?lot+8`nW$h;~ej icFc{p0TN)pcdTH$cuc2I{x{vfYfksZ!`Sn&jPY=|B_h z>4oa=U-)-p({#tz4bl6<=`nBVi@*EUKRuuEQ{=z3`(Zl{Jt~7!7iYj3a0Z+KXW-%t z*!?oUyLe?U=nOamf1Lq29|DG8G)#*5=)ja)0N@PfEYPKwkepx`4U-}~5Y|+nrn0pd ztm&`^i;IRyQPYX7`CxnUXY<1O>8KxaIB`_;*%@#KN(QcVxsdyRjZdc9 { - - public Person mapRow(ResultSet resultSet, int i) throws SQLException { - - Person person = new Person(); - person.setId(resultSet.getLong("id")); - person.setFirstName(resultSet.getString("first_name")); - person.setLastName(resultSet.getString("last_name")); - person.setAge(resultSet.getInt("age")); - return person; - } -} diff --git a/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/.DS_Store b/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/.DS_Store deleted file mode 100644 index 12db7cf64da79dd932ccfccbbd901c4eda211125..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKI|>3Z5S>vG!N$@uSMUZw^aNf&P!vH{5VYRPb9pr1d>UQtw2?P3dC6p6LSC`6 zBO*G#Y-b`95gEY^B@zm@)+3y3!9m+;d(#Yi0p zwti-h{ zq5pp-aYY5Fz+Wk#gT-nw$CI+Qb{=Q7w!qhL%elkNFn0c7o_bQ`6`Nzf VCbof2N8IT^{tTEdG%E0G1s?X~6^#G@ diff --git a/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/config/AppConfig.java b/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/config/AppConfig.java deleted file mode 100644 index e5254c6..0000000 --- a/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/config/AppConfig.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.journaldev.spring.config; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; -import org.springframework.core.env.Environment; -import org.springframework.jdbc.datasource.DriverManagerDataSource; - -@Configuration -@ComponentScan("com.journaldev.spring") -@PropertySource("classpath:database.properties") -public class AppConfig { - - @Autowired - Environment environment; - - private final String URL = "url"; - private final String USER = "dbuser"; - private final String DRIVER = "driver"; - private final String PASSWORD = "dbpassword"; - - @Bean - DataSource dataSource() { - DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(); - driverManagerDataSource.setUrl(environment.getProperty(URL)); - driverManagerDataSource.setUsername(environment.getProperty(USER)); - driverManagerDataSource.setPassword(environment.getProperty(PASSWORD)); - driverManagerDataSource.setDriverClassName(environment.getProperty(DRIVER)); - return driverManagerDataSource; - } -} diff --git a/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/dao/PersonDAO.java b/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/dao/PersonDAO.java deleted file mode 100644 index 7a4b981..0000000 --- a/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/dao/PersonDAO.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.journaldev.spring.dao; - -import java.util.List; - -import com.journaldev.model.Person; - -public interface PersonDAO { - Person getPersonById(Long id); - - List getAllPersons(); - - boolean deletePerson(Person person); - - boolean updatePerson(Person person); - - boolean createPerson(Person person); -} diff --git a/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/dao/PersonDAOImpl.java b/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/dao/PersonDAOImpl.java deleted file mode 100644 index d758539..0000000 --- a/SpringJDBCTemplateExampleForLearning/src/main/java/com/journaldev/spring/dao/PersonDAOImpl.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.journaldev.spring.dao; - -import java.util.List; - -import javax.sql.DataSource; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; - -import com.journaldev.model.Person; -import com.journaldev.model.PersonMapper; - -@Component -public class PersonDAOImpl implements PersonDAO { - - JdbcTemplate jdbcTemplate; - - private final String SQL_FIND_PERSON = "select * from people where id = ?"; - private final String SQL_DELETE_PERSON = "delete from people where id = ?"; - private final String SQL_UPDATE_PERSON = "update people set first_name = ?, last_name = ?, age = ? where id = ?"; - private final String SQL_GET_ALL = "select * from people"; - private final String SQL_INSERT_PERSON = "insert into people(id, first_name, last_name, age) values(?,?,?,?)"; - - @Autowired - public PersonDAOImpl(DataSource dataSource) { - jdbcTemplate = new JdbcTemplate(dataSource); - } - - public Person getPersonById(Long id) { - return jdbcTemplate.queryForObject(SQL_FIND_PERSON, new Object[] { id }, new PersonMapper()); - } - - public List getAllPersons() { - return jdbcTemplate.query(SQL_GET_ALL, new PersonMapper()); - } - - public boolean deletePerson(Person person) { - return jdbcTemplate.update(SQL_DELETE_PERSON, person.getId()) > 0; - } - - public boolean updatePerson(Person person) { - return jdbcTemplate.update(SQL_UPDATE_PERSON, person.getFirstName(), person.getLastName(), person.getAge(), - person.getId()) > 0; - } - - public boolean createPerson(Person person) { - return jdbcTemplate.update(SQL_INSERT_PERSON, person.getId(), person.getFirstName(), person.getLastName(), - person.getAge()) > 0; - } -} diff --git a/SpringJDBCTemplateExampleForLearning/src/main/resources/database.properties b/SpringJDBCTemplateExampleForLearning/src/main/resources/database.properties deleted file mode 100644 index 3c016a7..0000000 --- a/SpringJDBCTemplateExampleForLearning/src/main/resources/database.properties +++ /dev/null @@ -1,4 +0,0 @@ -driver=org.postgresql.Driver -url=jdbc:postgresql://127.0.0.1:5432/school -dbuser=postgres -dbpassword=postgres diff --git a/_config.yml b/_config.yml deleted file mode 100644 index fc24e7a..0000000 --- a/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-hacker \ No newline at end of file diff --git a/bank/.classpath b/bank/.classpath deleted file mode 100644 index 6d7587a..0000000 --- a/bank/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bank/.eclipse-pmd b/bank/.eclipse-pmd deleted file mode 100644 index 410e8c5..0000000 --- a/bank/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/bank/.project b/bank/.project deleted file mode 100644 index d022394..0000000 --- a/bank/.project +++ /dev/null @@ -1,40 +0,0 @@ - - - bank - - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - org.springframework.ide.eclipse.boot.validation.springbootbuilder - - - - - - org.springframework.ide.eclipse.core.springnature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.wst.common.project.facet.core.nature - - diff --git a/bank/.settings/org.eclipse.core.resources.prefs b/bank/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/bank/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/bank/.settings/org.eclipse.jdt.core.prefs b/bank/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 714351a..0000000 --- a/bank/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/bank/.settings/org.eclipse.wst.common.project.facet.core.xml b/bank/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d858295..0000000 --- a/bank/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/bank/.settings/org.springframework.ide.eclipse.prefs b/bank/.settings/org.springframework.ide.eclipse.prefs deleted file mode 100644 index a12794d..0000000 --- a/bank/.settings/org.springframework.ide.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -boot.validation.initialized=true -eclipse.preferences.version=1 diff --git a/bank/bin/.settings/org.eclipse.core.resources.prefs b/bank/bin/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/bank/bin/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/bank/bin/.settings/org.eclipse.jdt.core.prefs b/bank/bin/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 714351a..0000000 --- a/bank/bin/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/bank/bin/.settings/org.eclipse.wst.common.project.facet.core.xml b/bank/bin/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d858295..0000000 --- a/bank/bin/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/bank/bin/.settings/org.springframework.ide.eclipse.prefs b/bank/bin/.settings/org.springframework.ide.eclipse.prefs deleted file mode 100644 index a12794d..0000000 --- a/bank/bin/.settings/org.springframework.ide.eclipse.prefs +++ /dev/null @@ -1,2 +0,0 @@ -boot.validation.initialized=true -eclipse.preferences.version=1 diff --git a/bank/bin/mvnw b/bank/bin/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/bank/bin/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/bank/bin/mvnw.cmd b/bank/bin/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/bank/bin/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/bank/bin/pom.xml b/bank/bin/pom.xml deleted file mode 100644 index 77e0a5d..0000000 --- a/bank/bin/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - bank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/bank/bin/src/main/java/com/springboot/bank/BankApplication.class b/bank/bin/src/main/java/com/springboot/bank/BankApplication.class deleted file mode 100644 index 83bc78b5489464ed4435a71257ad09b6fd268ca0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1353 zcmb_cQE$^Q5I(ov+Jr(!*%&ZDW=|ati4Z(dgtSc{Rq8;ZWfJ1aN!-?3Vh7u)*bm{i zAb|w${3ygZ0a~F7hO~!V?D+D1zPs=4+xJgj0N@eaZ9Mx}F}P$bPoT7uJDt0?7}c}#t8Jmb`!<(xWzz>x(N8I75g z%F>9_UmyV;SSkz^G7%c@lb+$xgljHiWSD4`;r?BLX9*4Blo>-OBIRZ!%VBwb(Ig2+ zUdNxa_>@gK-NnFzMYaQ%?OmEEZm5ecV>X^qi%H<`a|~(uPpn$tsuq-~S%p&tCbC>< zOO>9k$l1AEMx`1KPz_5OSOG?@qO2^J?+r4i7GbF=a;~wy(pX)@R%u!lu(#)GRmg-- zgmm@66I`<*waeZCJt~ZKC+J0)bcv{dmmqy_WSwCDai=PdzsKPF(1OctSc5ABwtB;b za4U+w6Lx2amw8cS5!YjeS|!jOs+gt6ObfUF`LSVV!Vq{k{O<`)ldbLF;?~ zpAEF_$_uVS7k3_9gH8P65bh)H0%2$Ec(6Xjk`2jge Bo-zOc diff --git a/bank/bin/src/main/java/com/springboot/bank/controller/BankController.class b/bank/bin/src/main/java/com/springboot/bank/controller/BankController.class deleted file mode 100644 index 11b28f13e438c73974510a496d871b878e3aa98a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4318 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 diff --git a/bank/bin/src/main/java/com/springboot/bank/model/Bank.class b/bank/bin/src/main/java/com/springboot/bank/model/Bank.class deleted file mode 100644 index 77d3900fd55bcf1d0b02ff17377c5f1dc6d7d7c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4678 zcmeHKTW{P%6h2Nv_L9(qKq<6brs1}Mu*)SakWB)cG;IS8kw}Py#LKKb>`r6PtUR+( z_JQApR3v!kMK-hGv_{k{r%(*09b|ZN-*WXiix~N$fasL z<|n-2>9ApXkyM?w*0#~+>bMbVUj&UU9F}0(frS_taMfw-w;v17Ixs`HT^|Rot5v7z z!0jLU%F0mesuO8sI}k0UwB=T6WgM7xcYOpcxDSOA5x2rW;z3{FRM}X1?+kG0ZtI{Q zDx95GJQT>zLyfc!%(+{#b64 zhjh(NB${>il{nOUTn*?~A@B8szlHK$<2H2Q?!V-29qz@nGwV`GyNNWlf#Ix54PPG#_;iiFX@iSQYks3(J1m8=(O)NN?iShaF6P?n!EL5rAH%<5yI z%nC!}2`iZG3WN7}vRXOp3MRvzjx3}9)kAK(%;RJv))s8^vx~sKmBD`sJT1cZKLcf& zs%Dl~SSU>|;9hKIg|X20EY4ReI~YxNkfAEHDC5iydID|5(HU|uyXZg{%sftVJ|v5Q zF{%$yf{EZ09!Zj|T1i5BA~4wp<&Ydm8vi-Kv*69aQHIEYw4#U)3gDi>FDaZoOs%oQ zVE8AAxwg!tVSVL`U!)R#wNgN_R|Y9;!Dk38VC*Y{?4Mv}m;U4+OJe81Qt{65~W&+H};ZnW)E2#}f0kFpP>47AUVvMU08l9yT50 z>#?q50h6j8m$J!h6Kdq8iT8P-ysRC#in>gG&8YjNWX6L?aDRYJ%`l~nyWa|v$_Q*} zmVRBLl180U-23ba+tvP-_6O%(VB&)9fEyFzt8fe6o`ajf9Jo<))8;G*v?eug^Dd^> z@B3j}L~#jrVA0hc4~~XqZ#X$^yAqqLEs=rtPQtZ@ZTWQ+F3lUwGSnTg1w>5OSltj^Rc8@K~__`{RXgxB!?IwDt*-N9$|cewS_ z;v2ugTYtvu@8F%-0Iwyy&m|~$2i}e6-h=mX<|4xf84UGIhGqD0jA05{6B)7??qxE3 z1S?|<=`KFbkYOW}p#h(aF{CnNG3;bAd1Z8i9qMheG)w?}%eR_PYUpB7{^-`BKCL%1*~aqdDg(7d&E$dxtC-a-6Eh zN{@RZ0*wrKmxY|byp!*}uQXF_?rh3n7z+JU41<8-PRJtQqNn-@YDpkb6QiZ#d7SFHY%{MZ)^}BVYJxoxru` z@*!@ui9W5sI|Od#U$YfOGOEIRr26u?hJcj`V|}5MepjZ_KvZt`rhQ6NDsS}w=4o| zg=6OhV{y8uDR|rsScD~Oz}zF&<8%r8O)FObE!`7ai2_)np5!srZ6jpL?dujp`N;sg ze{nrF&z9B`E!}8ZlhG!0unQ~ct2TD&PCluPX;K1x33W zW@Sa-MuB8PsnI-Tr2Sh#%37e~6$iOqO43*1A%VqfG4x$770j5( z6(^|%YZchW!5F*(Kj@nyiqQ%@J98DyyxG|C;}|c7TGz&~2zcwl8*dp(@ETmlQ3XeJ z998je4WAOsKw~_w|390|&B5!1x%p)74Y*ZUe;eoC#HWsPci=62zm20++>PkjKVjjQ z`FCH!`+wu81WWkV=zz}$_|`k>wI9Mq$=t{A3C^5HXc`dOMubn{vjRd%qbD3p2oH=1 zEAV*%A^(b&fy25H;cnvZ>??8(CWLJx!acZeln?r1e4diFPQ R{5?KD;#0*Fy9H07^FMJXN+bXP diff --git a/bank/bin/src/main/java/com/springboot/bank/repository/BankDAO.class b/bank/bin/src/main/java/com/springboot/bank/repository/BankDAO.class deleted file mode 100644 index f296085c9de1734c92297a6431c6de9eeb2ce42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmZ8dT}lHn5dNlJn|5t&``|U2m%gnCiik?2(0YMv2y1GaEJ-Tt)qL;(9!gA#2z4Mc zWWJwC=Ii_86TlL4h8|%VyyAOlEZ@p^$(7sl(0XH=+PTPUY2UcltqUeP-|^dYzq?s6 z6olDPu#>jot9q+dB$OL>@JipCohFQb$&1V*j5emRG9G+_xcINF#8WHRe}k?>7FR+z z+f>&T;quWcXM+h*+xTF#mtMVg4CjO*QyC_N$%zNUG=bS6z2(`2kUsU&wK@z4gnrsV ajsj;X_b>oE)*(i@jafQnLQ9Nsf&LFTu2FUX diff --git a/bank/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class b/bank/bin/src/main/java/com/springboot/bank/repository/CustomerDAO.class deleted file mode 100644 index 85a53f04982068528718fbd901f8d597180bf217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZ8dT}lHn5dNlJn|5urK6nlDpbx@|Ad09&3f2o`Ls(P0$&zG+y_yd_Ko2Em3l()> zW?;UbVP^aFxdCv26NUldGI+&nX)IsK56P9Qd1$<`Rq0&hrL^zd>&68Wo$vT<8=|YV zzq?s5WQ6%nw3fEwi*lt^B;-ridZq8pS||LM;H>8oCQDOU8C##=bMaqah^I!r{4Bf@ zdxJsBpF-%oCbpiX#la0YBPU-T(jq diff --git a/bank/bin/src/main/java/com/springboot/bank/service/BankService.class b/bank/bin/src/main/java/com/springboot/bank/service/BankService.class deleted file mode 100644 index 128ab9421088e1d0dbb9c5889cbdcdfbd076197b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1080 zcmbVLOK%e~5FUq;$5Pr7C~qVyr?iT8FL0q1hw_k+0vr-5adf=X)a|alvYn_o@Vk&e zf;&G7F|!S7k$4miYkOwr{eAQG+sDrU@DLufpdsK<@H#7%vDuNDt4zBx3zau^I&m&$ z6J?LHfPQW?W_u)zPTwt95wKBv6v|GsH4p zsZ=s9D!h=%(AnuapR*67vD9ajz4tu^ zhS^l}-(m8u4=K;VgE z-J#Q}*jL`Lyi_Kd>WawK3h4BQ{HXocrWjdxhEbU!2w3Y6nFTvrr#1qTk(+sqFAN9Y zIM;7I{1)7y4PtEz?$L{V1+2a@AyA298c}EppjD%N20Ght8JZ-wNZMX%lTXlo*G)da o>KD>BV1rJ!0s5}h8eZitTnD~yz-FzxS)aGyKHW|7x(#=~0|mK7E*c4S6j?M=nP9X>9|yDkgS^NBSYdFZnw1GPj)tQrn79B| z8GQC!LKy^J-@ecc+OgNRzdIZ-xczOZoXqiono2828SW~jop4es%V0g;EuH>B8cYeh z`lVFTeZ}CVZtoF;m3unH0Ja!xof~@J7;V3HpP_F$_trQQh8xCsmbjZ zJZvAFC?}3N`bk_X?(`8VyTen=&>?pdwA5CEVf%1`T;_!~j(dImT(}8OgtwQEke@31 zH?VXvYXWLBz5)oXvq{R+AhoXO+TIS&r7bd%RBlw(nKE%SPR^T!ON~Nu85i806gYE+ z@9}>`7|%=Vygz9#P&w~wF4Y8$bfig)NRdb!&(TeEx;VK%MpwlTIw3RLjkOw+HGX%l zR!?G3IP|Kzz9AhxGh`wiw`GBbqH69A3Z7YlbbDM{UaAxyOGV3gOn;~^%FHdI`~0C_ z{0zl~;&?n4ydW}cpT&NIiz{#J4jWLzDTTRAu>t0VEdjZIoM7RzvmX9e8G!HEwd8UiHt}xJ(*KkdeJjGMCh~!j(2|Q_*5sK65CTV)eB!B{ju_!N>C-u-TOCv?Bf>Mfu>riz;QEF1q>1qMqKesQ`b;^tbU77^HmOgWD z`m|ZNXH;bCZv^u(O2KPWk(G3=|Bz1j9v#3AT^@Xo>QVrG8ulJ$u<=k@OGW#TPL~$$ z0^JMfxke8_0BiJaQ*V{tA-(;-b=aWxdUZqc-vHrnu=)M=jbC8<5Bh4sEo%J?pyyR; zJ)ThT8oXYOy#a5Mq}$YAp+9e(X?TZ5PUW`zj7sjE8o76B<=%zPGsu0nMs8Fiw*~K$ TEiL!}B5xDf+=GwE>W}{hKLCZL diff --git a/bank/bin/src/main/java/com/springboot/bank/service/CustomerService.class b/bank/bin/src/main/java/com/springboot/bank/service/CustomerService.class deleted file mode 100644 index 8ac7b74c3cea3e1903cfa801bf3c880357f82e8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcma)4O>fjN5FM9gvzu<&vQWN}te&<#B$r-jD=r020S>!V;^;V|)NNu%ws%E;84^fv z=SLyNX`^-vJ&5^ z@Y2J+r`w&@?+BjKw)8gj^yj1MiIE>;M1& diff --git a/bank/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class b/bank/bin/src/main/java/com/springboot/bank/service/CustomerServiceImpl.class deleted file mode 100644 index c5be0e25ca7894f5104df65c148d8c7dde7b3a24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3380 zcmeHKTW{Mo6h3s_*m2UPO|M(qmCc&M?nN4gy=>V9LDB&M)CO3x0(+z-#%3##0!g{; z-`L~+NP!O6-uI)19m=NdHO8c7*&c>HSQ4d=-#PrwIXv`lzrXzj06v3HTF@ZymCm(%#_JNxZi)y zW7~oy0-v9ln7~RrF}2GSfpd|!yt}=>Mc~GFg|s5$dvYX<=%;*JN@bZ9N*bISZ5LL( z6q+Z9UHVc;VZSDDrrUc)pt++G-hwp(Ycr=GYprw}E|R5Bzn7XDm5z8qQHflnB`eLf zLNl59f_9b?4raOqPPbs9+XhV(Hxyl@8ME<_T4dm_aujNw z0p$u@90KQ9@K=0eA4HZbZE1-vtVn6hoD8(jsb9mNfJzTe0fK&2vHT6lB(oM+pjJ^v z?dzP67v-L)Pm8&Pq#0%oMQt!#T-s7=A%|QGCpPOFt67YJ;C85zcL{<4x1MvCTP9M| zjg%bp{z;oGNxaRje?Wt-x>y zJC6?N6Q{@+MVWM&HzuB=>?}`frb2t~Ay#4qa(~3N774F_dBU2o$FE|ZyGpOXA6U1C zRe<)Snb5|5MgyzlUm6;aYB5=_QGks5>6ZtgSY6B(Yry7mX�+yP1w|_ z3Vf~F_%9YbCe!h@g)h62tKF^MEck7>OURG^dL;kfLMoaSmfL|Ubj-gMZg05m>v8T_ zQyvNlEJu@fSmb9%EG_UXd!Int&uGCztbRYjEwKdw9(r8_2&_I4#$Z!C#G{jeJAh|m z{GG)gKnvPKzOBG2UeA^P7Tg%1^D~_PVg14zSpOAA4Y-0=Hv^yvSMlob zh=OZy9q$A_fDe)BM){q<&8dZt@QvqfxEUqy?FGEo7V_SKjrZXFcmeO`0^SB}qAv}& Q2ch!`*VKat==GyN0E0_Fm;e9( diff --git a/bank/bin/src/main/resources/application.properties b/bank/bin/src/main/resources/application.properties deleted file mode 100644 index 359e798..0000000 --- a/bank/bin/src/main/resources/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -<<<<<<< HEAD -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -======= -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/bank/bin/src/test/java/com/springboot/bank/BankApplicationTests.class b/bank/bin/src/test/java/com/springboot/bank/BankApplicationTests.class deleted file mode 100644 index 9bf1c99f936400428a7fee8641e617838efe5887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1228 zcmcgsU2oGc6ur*+844|h0TUpZJ#{aMgb+d$A#Hp}lLAPz4DskBUh6HfBipIQFGB(e z-uY38>!hQTs3_urhuk>v@ww;v9{c-`&tC!H0o-kaN8q8+NocvT;R#!?Fj0AE3N7R; zR?3Dklc(VUhW(<*M8d34a*ANnh6aH_wIpM57QTs3cwz~(o(L)IQvzF~y(0pRXDa1w z=o09!urIV$x&xPpcmJK#+^B59Q;L}jkyROJp;esm+&rd!cRJ@Z#!u+)@=V^-2wT_#p( zTDN?(M}?uKO!={pxX;HpgJV`^NWDS_^i_$;Y7}MCHKr!M0K#3}sK|#7T<$>=t`OKB zMJrcLtaI(yxvn3fl-Fe*b3J8fBm%=oB`iB)TDb4!&xV}~L*P;LZ%1HEpoiiuKeLfy zDKg#0{kJ0LhjJl|z(o7bH&|KA zasu6GX(JTfT(GP}{2;1LbMAyO+ygwfcsBreIBG%*W4pR5wr~XCe}T@2q5lbb-zrQW uqr(6`1B|^I1y^BM{kw*<9$a6dw(>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/bank/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties b/bank/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties deleted file mode 100644 index ac4821f..0000000 --- a/bank/bin/target/classes/META-INF/maven/com.springboot/bank/pom.properties +++ /dev/null @@ -1,17 +0,0 @@ -<<<<<<< HEAD -#Generated by Maven Integration for Eclipse -#Thu May 17 10:00:13 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=C\:\\Users\\Lohit\\Desktop\\bank -artifactId=bank -======= -#Generated by Maven Integration for Eclipse -#Wed May 16 18:21:54 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=C\:\\Users\\Lohit\\Desktop\\bank -artifactId=bank ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/bank/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml b/bank/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml deleted file mode 100644 index 77e0a5d..0000000 --- a/bank/bin/target/classes/META-INF/maven/com.springboot/bank/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - bank - Demo project for Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/bank/bin/target/classes/application.properties b/bank/bin/target/classes/application.properties deleted file mode 100644 index 359e798..0000000 --- a/bank/bin/target/classes/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -<<<<<<< HEAD -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -======= -spring.datasource.url= jdbc:mysql://localhost:3306/sys -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update ->>>>>>> a53b592d6e45294abf4d2c1a52bb4a8929e5f30e diff --git a/bank/mvnw b/bank/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/bank/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/bank/mvnw.cmd b/bank/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/bank/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/bank/pom.xml b/bank/pom.xml deleted file mode 100644 index d09d388..0000000 --- a/bank/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - MyBankDemo - project for Bank Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - log4j - log4j - 1.2.17 - - - - org.mockito - mockito-all - 1.9.5 - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/bank/src/main/java/com/springboot/bank/BankApplication.java b/bank/src/main/java/com/springboot/bank/BankApplication.java deleted file mode 100644 index 1387b62..0000000 --- a/bank/src/main/java/com/springboot/bank/BankApplication.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.springboot.bank; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class BankApplication { - - public static void main(String[] args) { - SpringApplication.run(BankApplication.class, args); - } -} diff --git a/bank/src/main/java/com/springboot/bank/controller/ATMController.java b/bank/src/main/java/com/springboot/bank/controller/ATMController.java deleted file mode 100644 index 15ee78f..0000000 --- a/bank/src/main/java/com/springboot/bank/controller/ATMController.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import java.math.BigDecimal; -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; -import com.springboot.bank.service.ATMService; - -/** - * @author Sumit - * - */ - -@RestController -public class ATMController { - - final Logger LOGGER = Logger.getLogger(ATMController.class); - - @Autowired - ATMService atmService; - - @PostMapping(value = "/createATM") - public ResponseEntity createATM(@RequestBody WrapperBankATM wrapperBankATM) throws BankException { - ATM atmData = null; - try { - atmData = atmService.createATM(wrapperBankATM); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - - @PostMapping(value = "/addMoney/{atmId}/{bankId}/{moneyToBeAddedToATM}") - public ResponseEntity addMoneyFromBank(@PathVariable Long atmId, @PathVariable Long bankId, - @PathVariable BigDecimal moneyToBeAddedToATM) throws BankException { - ATM atmData = null; - try { - atmData = atmService.addMoneyFromBank(atmId, bankId, moneyToBeAddedToATM); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - - @PostMapping(value = "/withdrawMoneyFromATM") - public ResponseEntity withdrawMoney(@RequestBody ATMDetails atmDetails) throws BankException { - ATM atmData = null; - try { - atmData = atmService.withdrawMoney(atmDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (atmData == null) - throw new BankException("atm details not added"); - else - return new ResponseEntity(atmData, HttpStatus.OK); - } - -} diff --git a/bank/src/main/java/com/springboot/bank/controller/AccountController.java b/bank/src/main/java/com/springboot/bank/controller/AccountController.java deleted file mode 100644 index 3f9c0d8..0000000 --- a/bank/src/main/java/com/springboot/bank/controller/AccountController.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.service.AccountService; - -/** - * @author Sumit - * - */ - -@RestController -public class AccountController { - - @Autowired - AccountService accountService; - - final Logger LOGGER = Logger.getLogger(AccountController.class); - - @PostMapping(value = "/createAccount") - public ResponseEntity createAccount(@RequestBody WrapperBankCustomerAccount wrapperBankCustomerAccount) - throws BankException { - Account accountData = null; - try { - accountData = accountService.createAccount(wrapperBankCustomerAccount); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not added"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/depositMoney") - public ResponseEntity depositMoney(@RequestBody AccountDetails accountDetails) throws BankException { - Account accountData = null; - try { - accountData = accountService.depositMoney(accountDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/withdrawMoneyFromAccount") - public ResponseEntity withdrawMoney(@RequestBody AccountDetails accountDetails) throws BankException { - Account accountData = null; - try { - accountData = accountService.withdrawMoney(accountDetails); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } - - @PostMapping(value = "/viewAccount/{accountId}") - public ResponseEntity getAccountDetails(@PathVariable Long accountId) throws BankException { - Account accountData = null; - try { - accountData = accountService.getAccountDetails(accountId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (accountData == null) - throw new BankException("Account details not found"); - else - return new ResponseEntity(accountData, HttpStatus.OK); - } -} diff --git a/bank/src/main/java/com/springboot/bank/controller/BankController.java b/bank/src/main/java/com/springboot/bank/controller/BankController.java deleted file mode 100644 index 22b501c..0000000 --- a/bank/src/main/java/com/springboot/bank/controller/BankController.java +++ /dev/null @@ -1,59 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.service.BankService; - -/** - * @author Sumit - * - */ - -@RestController -public class BankController { - - final Logger LOGGER = Logger.getLogger(BankController.class); - - @Autowired - private BankService bankService; - - @PostMapping(value = "/createBank") - public ResponseEntity addBank(@RequestBody Bank bank) throws BankException { - Bank bankData = null; - try { - bankData = bankService.createBank(bank); - } catch (Exception e) { - LOGGER.error(e.getMessage()); - } - if (bankData == null) - throw new BankException("Bank details not added"); - else - return new ResponseEntity(bankData, HttpStatus.OK); - } - - @GetMapping(value = "/viewBankDetails/{bankId}") - public ResponseEntity getBankDetails(@PathVariable Long bankId) throws BankException { - Bank bank = null; - try { - bank = bankService.getBankDetails(bankId); - } catch (Exception e) { - LOGGER.error(e.getMessage()); - } - if (bank == null) - throw new BankException("No such Id of Bank exixts"); - else - return new ResponseEntity(bank, HttpStatus.OK); - } -} diff --git a/bank/src/main/java/com/springboot/bank/controller/BankDenominationController.java b/bank/src/main/java/com/springboot/bank/controller/BankDenominationController.java deleted file mode 100644 index c977506..0000000 --- a/bank/src/main/java/com/springboot/bank/controller/BankDenominationController.java +++ /dev/null @@ -1,91 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.WrapperATMDenomination; -import com.springboot.bank.dto.WrapperAccountDenomination; -import com.springboot.bank.dto.WrapperBankDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.BankDenomination; -import com.springboot.bank.service.BankDenominationService; - - - -/** - * @author Ram - * - */ -@RestController -public class BankDenominationController { - - @Autowired - BankDenominationService bankDenominationService; - - @PostMapping("/totalDenom") - public ResponseEntity getTotalDenominationForBank(@RequestBody WrapperBankDenomination wrapperBankDenomination ) throws BankException { - BankDenomination bankDenomination = new BankDenomination(); - try { - bankDenominationService.addDenominationNew(wrapperBankDenomination.getAmount()); - } catch (BankException e) { - System.out.println(e.getMessage()); - } - if (bankDenomination == null) { - throw new BankException("not found"); - } else { - return new ResponseEntity(bankDenomination, HttpStatus.OK); - } - } - - /** - * @param wrapperBankDenomination - * @return - * @throws BankException - */ -@PostMapping("/") public ResponseEntity getTotalDenominationForATM(@RequestBody WrapperATMDenomination wrapperATMDenomination ) throws BankException { - BankDenomination bankDenomination = new BankDenomination(); - try { - bankDenominationService.addDenominationNew(wrapperATMDenomination.getAmount()); - } catch (BankException e) { - System.out.println(e.getMessage()); - } - if (bankDenomination == null) { - throw new BankException("not found"); - } else { - return new ResponseEntity(bankDenomination, HttpStatus.OK); - } - } - - - - - -/** -* @param wrapperBankDenomination -* @return -* @throws BankException -*/ -@PostMapping("/") public ResponseEntity getTotalDenominationForATM(@RequestBody WrapperAccountDenomination wrapperAccountDenomination ) throws BankException { - BankDenomination bankDenomination = new BankDenomination(); - try { - bankDenominationService.addDenominationNew(wrapperAccountDenomination.getAmount()); - } catch (BankException e) { - System.out.println(e.getMessage()); - } - if (bankDenomination == null) { - throw new BankException("not found"); - } else { - return new ResponseEntity(bankDenomination, HttpStatus.OK); - } - } - - - -} \ No newline at end of file diff --git a/bank/src/main/java/com/springboot/bank/controller/CustomerController.java b/bank/src/main/java/com/springboot/bank/controller/CustomerController.java deleted file mode 100644 index b9b7fae..0000000 --- a/bank/src/main/java/com/springboot/bank/controller/CustomerController.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Customer; -import com.springboot.bank.service.CustomerService; - -/** - * @author Sumit - * - */ - -@RestController -public class CustomerController { - - final Logger LOGGER = Logger.getLogger(CustomerController.class); - - @Autowired - private CustomerService customerService; - - @PostMapping(value = "/createCustomer") - public ResponseEntity createCustomer(@RequestBody WrapperBankCustomer wrapperBankCustomer) - throws BankException { - Customer customerData = null; - try { - customerData = customerService.createCustomer(wrapperBankCustomer); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (customerData == null) - throw new BankException("Customer details not added"); - else - return new ResponseEntity(customerData, HttpStatus.OK); - } - - @GetMapping(value = "/viewCustomer/{customerId}") - public ResponseEntity getCustomerDetails(@PathVariable Long customerId) throws BankException { - Customer customerData = null; - try { - customerData = customerService.getCustomerDetails(customerId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (customerData == null) - throw new BankException("No such Id of Bank exixts"); - else - return new ResponseEntity(customerData, HttpStatus.OK); - } - -} diff --git a/bank/src/main/java/com/springboot/bank/controller/TransactionController.java b/bank/src/main/java/com/springboot/bank/controller/TransactionController.java deleted file mode 100644 index ffe7623..0000000 --- a/bank/src/main/java/com/springboot/bank/controller/TransactionController.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * - */ -package com.springboot.bank.controller; - -import java.util.Optional; -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.service.TransactionService; - -/** - * @author Sumit - * - */ - -@RestController -public class TransactionController { - - final Logger LOGGER = Logger.getLogger(TransactionController.class); - - @Autowired - private TransactionService transactionService; - - @PostMapping(value = "/createTransaction") - public ResponseEntity createTransaction(@RequestBody Transaction transaction) throws BankException { - String transactionData = null; - try { - transactionData = transactionService.createTransaction(transaction); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (transactionData == null) - throw new BankException("Transaction details not added"); - else - return new ResponseEntity(transactionData, HttpStatus.OK); - } - - @PostMapping(value = "/viewTransaction/{customerId}") - public ResponseEntity> getTransactionDetails(@PathVariable Long customerId) - throws BankException { - Optional transactionData = null; - try { - transactionData = transactionService.getTransactionDetails(customerId); - } catch (BankException e) { - LOGGER.error(e.getMessage()); - } - if (transactionData == null) - throw new BankException("Transaction details not found"); - else - return new ResponseEntity>(transactionData, HttpStatus.OK); - } - -} diff --git a/bank/src/main/java/com/springboot/bank/dto/ATMDetails.java b/bank/src/main/java/com/springboot/bank/dto/ATMDetails.java deleted file mode 100644 index f1bc7c1..0000000 --- a/bank/src/main/java/com/springboot/bank/dto/ATMDetails.java +++ /dev/null @@ -1,110 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import java.math.BigDecimal; - -/** - * @author Sumit - * - */ -public class ATMDetails { - - private Long bankId; - private Long atmId; - private Long accountId; - private BigDecimal amount; - - /** - * - */ - public ATMDetails() { - super(); - } - - /** - * @param bankId - * @param atmId - * @param accountId - * @param amount - */ - public ATMDetails(Long bankId, Long atmId, Long accountId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.atmId = atmId; - this.accountId = accountId; - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - - /** - * @param atmId - * the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "ATMDetails [bankId=" + bankId + ", atmId=" + atmId + ", accountId=" + accountId + ", amount=" + amount - + "]"; - } -} diff --git a/bank/src/main/java/com/springboot/bank/dto/AccountDetails.java b/bank/src/main/java/com/springboot/bank/dto/AccountDetails.java deleted file mode 100644 index da690a6..0000000 --- a/bank/src/main/java/com/springboot/bank/dto/AccountDetails.java +++ /dev/null @@ -1,111 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import java.math.BigDecimal; - -/** - * @author Sumit - * - */ -public class AccountDetails { - - private Long bankId; - private Long customerId; - private Long accountId; - private BigDecimal amount; - - /** - * - */ - public AccountDetails() { - super(); - } - - /** - * @param bankId - * @param customerId - * @param accountId - * @param amountToBeAdded - */ - public AccountDetails(Long bankId, Long customerId, Long accountId, BigDecimal amount) { - super(); - this.bankId = bankId; - this.customerId = customerId; - this.accountId = accountId; - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - - /** - * @return the amountToBeAdded - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amountToBeAdded - * the amountToBeAdded to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "AccountDetails [bankId=" + bankId + ", customerId=" + customerId + ", accountId=" + accountId - + ", amount=" + amount + "]"; - } - -} diff --git a/bank/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java b/bank/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java deleted file mode 100644 index 3399a32..0000000 --- a/bank/src/main/java/com/springboot/bank/dto/WrapperATMDenomination.java +++ /dev/null @@ -1,139 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.BankDenomination; - -/** - * @author Ram - * - */ -public class WrapperATMDenomination { - - -private BankDenomination bankDenomination; -private Integer amount; -private Long bankId; -private Long atmId; - /** - * @param bankDenomination - * @param amount - * @param bankId - * @param atmId - */ - public WrapperATMDenomination(BankDenomination bankDenomination, Integer amount, Long bankId, Long atmId) { - this.bankDenomination = bankDenomination; - this.amount = amount; - this.bankId = bankId; - this.atmId = atmId; - } - /** - * @return the bankDenomination - */ - public BankDenomination getBankDenomination() { - return bankDenomination; - } - /** - * @param bankDenomination the bankDenomination to set - */ - public void setBankDenomination(BankDenomination bankDenomination) { - this.bankDenomination = bankDenomination; - } - /** - * @return the amount - */ - public Integer getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(Integer amount) { - this.amount = amount; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - /** - * @param atmId the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperATMDenomination [bankDenomination=" + bankDenomination + ", amount=" + amount + ", bankId=" - + bankId + ", atmId=" + atmId + "]"; - } - /* (non-Javadoc) - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((amount == null) ? 0 : amount.hashCode()); - result = prime * result + ((atmId == null) ? 0 : atmId.hashCode()); - result = prime * result + ((bankDenomination == null) ? 0 : bankDenomination.hashCode()); - result = prime * result + ((bankId == null) ? 0 : bankId.hashCode()); - return result; - } - /* (non-Javadoc) - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - WrapperATMDenomination other = (WrapperATMDenomination) obj; - if (amount == null) { - if (other.amount != null) - return false; - } else if (!amount.equals(other.amount)) - return false; - if (atmId == null) { - if (other.atmId != null) - return false; - } else if (!atmId.equals(other.atmId)) - return false; - if (bankDenomination == null) { - if (other.bankDenomination != null) - return false; - } else if (!bankDenomination.equals(other.bankDenomination)) - return false; - if (bankId == null) { - if (other.bankId != null) - return false; - } else if (!bankId.equals(other.bankId)) - return false; - return true; - } - - - - - -} diff --git a/bank/src/main/java/com/springboot/bank/dto/WrapperAccountDenomination.java b/bank/src/main/java/com/springboot/bank/dto/WrapperAccountDenomination.java deleted file mode 100644 index c6c1c92..0000000 --- a/bank/src/main/java/com/springboot/bank/dto/WrapperAccountDenomination.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.BankDenomination; - -/** - * @author Ram - * - */ -public class WrapperAccountDenomination { - - - private BankDenomination bankDenomination; - private Integer amount; - private Long bankId; - private Long accountId; - /** - * @param bankDenomination - * @param amount - * @param bankId - * @param accountId - */ - public WrapperAccountDenomination(BankDenomination bankDenomination, Integer amount, Long bankId, Long accountId) { - this.bankDenomination = bankDenomination; - this.amount = amount; - this.bankId = bankId; - this.accountId = accountId; - } - /** - * @return the bankDenomination - */ - public BankDenomination getBankDenomination() { - return bankDenomination; - } - /** - * @param bankDenomination the bankDenomination to set - */ - public void setBankDenomination(BankDenomination bankDenomination) { - this.bankDenomination = bankDenomination; - } - /** - * @return the amount - */ - public Integer getAmount() { - return amount; - } - /** - * @param amount the amount to set - */ - public void setAmount(Integer amount) { - this.amount = amount; - } - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - /** - * @param bankId the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - /** - * @param accountId the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperAccountDenomination [bankDenomination=" + bankDenomination + ", amount=" + amount + ", bankId=" - + bankId + ", accountId=" + accountId + "]"; - } - - - -} diff --git a/bank/src/main/java/com/springboot/bank/dto/WrapperBankATM.java b/bank/src/main/java/com/springboot/bank/dto/WrapperBankATM.java deleted file mode 100644 index cf8211c..0000000 --- a/bank/src/main/java/com/springboot/bank/dto/WrapperBankATM.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.ATM; - -/** - * @author Sumit - * - */ -public class WrapperBankATM { - - ATM atm; - Long bankId; - - /** - * - */ - public WrapperBankATM() { - super(); - } - - /** - * @param atm - * @param bankId - */ - public WrapperBankATM(ATM atm, Long bankId) { - this.atm = atm; - this.bankId = bankId; - } - - /** - * @return the atm - */ - public ATM getAtm() { - return atm; - } - - /** - * @param atm - * the atm to set - */ - public void setAtm(ATM atm) { - this.atm = atm; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankATM [atm=" + atm + ", bankId=" + bankId + "]"; - } - -} diff --git a/bank/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java b/bank/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java deleted file mode 100644 index 3ccb164..0000000 --- a/bank/src/main/java/com/springboot/bank/dto/WrapperBankCustomer.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Customer; - -/** - * @author trainee - * - */ -public class WrapperBankCustomer { - - Customer customer; - Long bankId; - - /** - * - */ - public WrapperBankCustomer() { - super(); - } - - /** - * @param customer - * @param bankId - */ - public WrapperBankCustomer(Customer customer, Long bankId) { - super(); - this.customer = customer; - this.bankId = bankId; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankCustomer [customer=" + customer + ", bankId=" + bankId + "]"; - } -} diff --git a/bank/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java b/bank/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java deleted file mode 100644 index 0e789a3..0000000 --- a/bank/src/main/java/com/springboot/bank/dto/WrapperBankCustomerAccount.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.Account; - -/** - * @author Sumit - * - */ -public class WrapperBankCustomerAccount { - - private Account account; - private Long customerId; - private Long bankId; - - /** - * - */ - public WrapperBankCustomerAccount() { - super(); - } - - /** - * @param account - * @param customerId - * @param bankId - */ - public WrapperBankCustomerAccount(Account account, Long customerId, Long bankId) { - super(); - this.account = account; - this.customerId = customerId; - this.bankId = bankId; - } - - /** - * @return the account - */ - public Account getAccount() { - return account; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankCustomerAccount [account=" + account + ", customerId=" + customerId + ", bankId=" + bankId - + "]"; - } - -} diff --git a/bank/src/main/java/com/springboot/bank/dto/WrapperBankDenomination.java b/bank/src/main/java/com/springboot/bank/dto/WrapperBankDenomination.java deleted file mode 100644 index c8144f0..0000000 --- a/bank/src/main/java/com/springboot/bank/dto/WrapperBankDenomination.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - */ -package com.springboot.bank.dto; - -import com.springboot.bank.model.BankDenomination; - -/** - * @author Sumit - * - */ -public class WrapperBankDenomination { - - BankDenomination bankDenomination; - Integer amount; - Long bankId; - - /** - * - */ - public WrapperBankDenomination() { - super(); - } - - /** - * @param bankDenomination - * @param amount - * @param bankId - */ - public WrapperBankDenomination(BankDenomination bankDenomination, Integer amount, Long bankId) { - super(); - this.bankDenomination = bankDenomination; - this.amount = amount; - this.bankId = bankId; - } - - /** - * @return the bankDenomination - */ - public BankDenomination getBankDenomination() { - return bankDenomination; - } - - /** - * @param bankDenomination - * the bankDenomination to set - */ - public void setBankDenomination(BankDenomination bankDenomination) { - this.bankDenomination = bankDenomination; - } - - /** - * @return the amount - */ - public Integer getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(Integer amount) { - this.amount = amount; - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "WrapperBankDenomination [bankDenomination=" + bankDenomination + ", amount=" + amount + ", bankId=" - + bankId + "]"; - } - -} diff --git a/bank/src/main/java/com/springboot/bank/exception/BankException.java b/bank/src/main/java/com/springboot/bank/exception/BankException.java deleted file mode 100644 index 7abad68..0000000 --- a/bank/src/main/java/com/springboot/bank/exception/BankException.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.exception; - -/** - * @author Sumit - * - */ -public class BankException extends Exception { - - public BankException(String message) { - super(message); - } -} diff --git a/bank/src/main/java/com/springboot/bank/model/ATM.java b/bank/src/main/java/com/springboot/bank/model/ATM.java deleted file mode 100644 index 24b399c..0000000 --- a/bank/src/main/java/com/springboot/bank/model/ATM.java +++ /dev/null @@ -1,99 +0,0 @@ - -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Sumit - *It will represents the ATM entity - */ -@Entity -@Table(name = "atm") -public class ATM { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long atmId; - // @Required - private BigDecimal money; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - private static final Logger LOGGER = Logger.getLogger( ATM.class.getName() ); - - /** - * - */ - public ATM() { - super(); - } - - /** - * @param atmId - * @param money - * @param bank - */ - public ATM(BigDecimal money, Bank bank) { - this.money = money; - this.bank = bank; - LOGGER.info("Inside the ATM Entity"); - - } - - /** - * @return the atmId - */ - public Long getAtmId() { - return atmId; - } - - /** - * @param atmId - * the atmId to set - */ - public void setAtmId(Long atmId) { - this.atmId = atmId; - } - - /** - * @return the money - */ - public BigDecimal getMoney() { - return money; - } - - /** - * @param money - * the money to set - */ - public void setMoney(BigDecimal money) { - this.money = money; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "ATM [atmId=" + atmId + ", money=" + money + ", bank=" + bank + "]"; - } -} diff --git a/bank/src/main/java/com/springboot/bank/model/Account.java b/bank/src/main/java/com/springboot/bank/model/Account.java deleted file mode 100644 index b54e015..0000000 --- a/bank/src/main/java/com/springboot/bank/model/Account.java +++ /dev/null @@ -1,125 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Sumit - *It will represents the Account Entity. - */ -@Entity -@Table(name = "account") -public class Account { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long accountId; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - private BigDecimal amount; - - - - private static final Logger LOGGER = Logger.getLogger( Account.class.getName() ); - - /** - * - */ - public Account() { - super(); - } - - /** - * @param accountId acted as primary key of the table account - * @param bank - * @param customer - * @param amount - */ - public Account(Bank bank, Customer customer, BigDecimal amount) { - this.bank = bank; - this.customer = customer; - this.amount = amount; - LOGGER.info("Inside the account Entity"); - } - - /** - * @return the accountId - */ - public Long getAccountId() { - return accountId; - } - - /** - * @param accountId - * the accountId to set - */ - public void setAccountId(Long accountId) { - this.accountId = accountId; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Account [accountId=" + accountId + ", bank=" + bank + ", customer=" + customer + ", amount=" + amount - + "]"; - } -} diff --git a/bank/src/main/java/com/springboot/bank/model/Bank.java b/bank/src/main/java/com/springboot/bank/model/Bank.java deleted file mode 100644 index a677462..0000000 --- a/bank/src/main/java/com/springboot/bank/model/Bank.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author Sumit - *It will represents the BANK entity - */ -@Table(name = "bank") -@Entity -public class Bank { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "bankId") - private Long bankId; - private BigDecimal amount; - - private static final Logger LOGGER = Logger.getLogger( Bank.class.getName() ); - - - /** - * - */ - public Bank() { - super(); - } - - /** - * @param bankId - * @param amount - */ - public Bank(BigDecimal amount) { - this.amount = amount; - LOGGER.info("Inside the BAnk Entity"); - } - - /** - * @return the bankId - */ - public Long getBankId() { - return bankId; - } - - /** - * @param bankId - * the bankId to set - */ - public void setBankId(Long bankId) { - this.bankId = bankId; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Bank [bankId=" + bankId + ", amount=" + amount + "]"; - } -} \ No newline at end of file diff --git a/bank/src/main/java/com/springboot/bank/model/BankDenomination.java b/bank/src/main/java/com/springboot/bank/model/BankDenomination.java deleted file mode 100644 index 01ec788..0000000 --- a/bank/src/main/java/com/springboot/bank/model/BankDenomination.java +++ /dev/null @@ -1,136 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToOne; - -/** - * @author Sumit - * - */ - -@Entity -public class BankDenomination { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long denominationId; - @OneToOne(targetEntity = Bank.class) - private Bank bank; - private Integer noOfDenomination; - private Integer denomination; - - - private static final Logger LOGGER = Logger.getLogger( ATM.class.getName() ); - /** - * - */ - public BankDenomination() { - - super(); - LOGGER.info("Inside the BankDenomination Entity"); - } - - - - /* (non-Javadoc) - * @see java.lang.Object#toString() - */ - @Override - public String toString() { - return "BankDenominationNew [denominationId=" + denominationId + ", bank=" + bank + ", noOfDenomination=" - + noOfDenomination + ", denomination=" + denomination + "]"; - } - - - - /** - * @return the denominationId - */ - public Long getDenominationId() { - return denominationId; - } - - /** - * @param denominationId - * the denominationId to set - */ - public void setDenominationId(Long denominationId) { - this.denominationId = denominationId; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - - /** - * @return the noOfDenomination - */ - public Integer getNoOfDenomination() { - return noOfDenomination; - } - - /** - * @param noOfDenomination - * the noOfDenomination to set - */ - public void setNoOfDenomination(Integer noOfDenomination) { - this.noOfDenomination = noOfDenomination; - } - - - - /** - * @return the denomination - */ - public Integer getDenomination() { - return denomination; - } - - - - /** - * @param denomination the denomination to set - */ - public void setDenomination(Integer denomination) { - this.denomination = denomination; - } - - - - /** - * @param denominationId - * @param bank - * @param noOfDenomination - * @param denomination - */ - public BankDenomination(Long denominationId, Bank bank, Integer noOfDenomination, Integer denomination) { - super(); - this.denominationId = denominationId; - this.bank = bank; - this.noOfDenomination = noOfDenomination; - this.denomination = denomination; - } - - - -} \ No newline at end of file diff --git a/bank/src/main/java/com/springboot/bank/model/Customer.java b/bank/src/main/java/com/springboot/bank/model/Customer.java deleted file mode 100644 index 9d6ac17..0000000 --- a/bank/src/main/java/com/springboot/bank/model/Customer.java +++ /dev/null @@ -1,131 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.util.logging.Logger; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import org.springframework.lang.NonNull; - -/** - * @author Sumit - *It will represents the CUstomer Entity. - */ - -@Entity -@Table(name = "customer") -public class Customer { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long customerId; - @Column(nullable = false, length = 100) - private String customerName; - @NonNull - private Integer customerPin; - @ManyToOne(targetEntity = Bank.class) - private Bank bank; - - private static final Logger LOGGER = Logger.getLogger( Customer.class.getName() ); - - - // @JoinTable(name = "bank_customer", joinColumns = @JoinColumn(name = - // "customerId"), inverseJoinColumns = @JoinColumn(name = "bankId")) - - /** - * - */ - public Customer() { - super(); - } - - /** - * @param customerId - * @param customerName - * @param customerPin - * @param bank - */ - public Customer( String customerName, Integer customerPin, Bank bank) { - this.customerName = customerName; - this.customerPin = customerPin; - this.bank = bank; - LOGGER.info("Inside the Customer Entity"); - - } - - /** - * @return the customerId - */ - public Long getCustomerId() { - return customerId; - } - - /** - * @param customerId - * the customerId to set - */ - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - /** - * @return the customerName - */ - public String getCustomerName() { - return customerName; - } - - /** - * @param customerName - * the customerName to set - */ - public void setCustomerName(String customerName) { - this.customerName = customerName; - } - - /** - * @return the customerPin - */ - public Integer getCustomerPin() { - return customerPin; - } - - /** - * @param customerPin - * the customerPin to set - */ - public void setCustomerPin(Integer customerPin) { - this.customerPin = customerPin; - } - - /** - * @return the bank - */ - public Bank getBank() { - return bank; - } - - /** - * @param bank - * the bank to set - */ - public void setBank(Bank bank) { - this.bank = bank; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Customer [customerId=" + customerId + ", customerName=" + customerName + ", customerPin=" + customerPin - + ", bank=" + bank + "]"; - } -} diff --git a/bank/src/main/java/com/springboot/bank/model/Transaction.java b/bank/src/main/java/com/springboot/bank/model/Transaction.java deleted file mode 100644 index e25f521..0000000 --- a/bank/src/main/java/com/springboot/bank/model/Transaction.java +++ /dev/null @@ -1,145 +0,0 @@ -/** - * - */ -package com.springboot.bank.model; - -import java.math.BigDecimal; -import java.util.logging.Logger; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -/** - * @author Sumit - * - */ - -@Entity -@Table(name = "transaction") -public class Transaction { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long transactionId; - @ManyToOne(targetEntity = Customer.class) - private Customer customer; - @ManyToOne(targetEntity = Account.class) - private Account account; - private BigDecimal amount; - private String transactionType; - - - private static final Logger LOGGER = Logger.getLogger( Bank.class.getName() ); - - - /** - * - */ - public Transaction() { - super(); - } - - /** - * @param transactionId - * @param customer - * @param account - * @param amount - * @param transactionType - */ - public Transaction(Customer customer, Account account, BigDecimal amount, String transactionType) { - this.customer = customer; - this.account = account; - this.amount = amount; - this.transactionType = transactionType; - LOGGER.info("Inside the Transaction Entity"); - - } - - /** - * @return the transactionId - */ - public Long getTransactionId() { - return transactionId; - } - - /** - * @param transactionId - * the transactionId to set - */ - public void setTransactionId(Long transactionId) { - this.transactionId = transactionId; - } - - /** - * @return the customer - */ - public Customer getCustomer() { - return customer; - } - - /** - * @param customer - * the customer to set - */ - public void setCustomer(Customer customer) { - this.customer = customer; - } - - /** - * @return the account - */ - public Account getAccount() { - return account; - } - - /** - * @param account - * the account to set - */ - public void setAccount(Account account) { - this.account = account; - } - - /** - * @return the amount - */ - public BigDecimal getAmount() { - return amount; - } - - /** - * @param amount - * the amount to set - */ - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - /** - * @return the transactionType - */ - public String getTransactionType() { - return transactionType; - } - - /** - * @param transactionType - * the transactionType to set - */ - public void setTransactionType(String transactionType) { - this.transactionType = transactionType; - } - - /* - * @return toString() representation of given object - */ - @Override - public String toString() { - return "Transaction [transactionId=" + transactionId + ", customer=" + customer + ", account=" + account - + ", amount=" + amount + ", transactionType=" + transactionType + "]"; - } -} diff --git a/bank/src/main/java/com/springboot/bank/repository/ATMDAO.java b/bank/src/main/java/com/springboot/bank/repository/ATMDAO.java deleted file mode 100644 index 52ddab8..0000000 --- a/bank/src/main/java/com/springboot/bank/repository/ATMDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.ATM; - -/** - * @author trainee - * - */ -public interface ATMDAO extends JpaRepository { - -} diff --git a/bank/src/main/java/com/springboot/bank/repository/AccountDAO.java b/bank/src/main/java/com/springboot/bank/repository/AccountDAO.java deleted file mode 100644 index 1d89cdb..0000000 --- a/bank/src/main/java/com/springboot/bank/repository/AccountDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Account; - -/** - * @author trainee - * - */ -public interface AccountDAO extends JpaRepository{ - -} diff --git a/bank/src/main/java/com/springboot/bank/repository/BankDAO.java b/bank/src/main/java/com/springboot/bank/repository/BankDAO.java deleted file mode 100644 index 6776960..0000000 --- a/bank/src/main/java/com/springboot/bank/repository/BankDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Bank; - -/** - * @author Sumit - * - */ -public interface BankDAO extends JpaRepository { - -} diff --git a/bank/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java b/bank/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java deleted file mode 100644 index 115117e..0000000 --- a/bank/src/main/java/com/springboot/bank/repository/BankDenominationDAO.java +++ /dev/null @@ -1,16 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.BankDenomination; - -/** - * @author Sumit - * - */ - -public interface BankDenominationDAO extends JpaRepository { - -} diff --git a/bank/src/main/java/com/springboot/bank/repository/CustomerDAO.java b/bank/src/main/java/com/springboot/bank/repository/CustomerDAO.java deleted file mode 100644 index 7928958..0000000 --- a/bank/src/main/java/com/springboot/bank/repository/CustomerDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Customer; - -/** - * @author Sumit - * - */ -public interface CustomerDAO extends JpaRepository { - -} diff --git a/bank/src/main/java/com/springboot/bank/repository/TransactionDAO.java b/bank/src/main/java/com/springboot/bank/repository/TransactionDAO.java deleted file mode 100644 index bfc04e7..0000000 --- a/bank/src/main/java/com/springboot/bank/repository/TransactionDAO.java +++ /dev/null @@ -1,15 +0,0 @@ -/** - * - */ -package com.springboot.bank.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import com.springboot.bank.model.Transaction; - -/** - * @author Sumit - * - */ -public interface TransactionDAO extends JpaRepository { - -} diff --git a/bank/src/main/java/com/springboot/bank/service/ATMService.java b/bank/src/main/java/com/springboot/bank/service/ATMService.java deleted file mode 100644 index ff020b0..0000000 --- a/bank/src/main/java/com/springboot/bank/service/ATMService.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; - -/** - * @author trainee - * - */ -public interface ATMService { - - ATM createATM(WrapperBankATM wrapperBankATM) throws BankException; - - ATM addMoneyFromBank(Long atmId, Long bankId, BigDecimal moneyToBeAddedToATM) throws BankException; - - ATM withdrawMoney(ATMDetails atmDetails) throws BankException; - -} diff --git a/bank/src/main/java/com/springboot/bank/service/ATMServiceImpl.java b/bank/src/main/java/com/springboot/bank/service/ATMServiceImpl.java deleted file mode 100644 index 99df3a3..0000000 --- a/bank/src/main/java/com/springboot/bank/service/ATMServiceImpl.java +++ /dev/null @@ -1,142 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.ATMDetails; -import com.springboot.bank.dto.WrapperBankATM; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.ATM; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.repository.ATMDAO; -import com.springboot.bank.repository.AccountDAO; -import com.springboot.bank.repository.BankDAO; - -/** - * @author Sumit - * - */ -@Service("ATMService") -public class ATMServiceImpl implements ATMService { - - @Autowired - ATMDAO atmDao; - - @Autowired - BankDAO bankDao; - - @Autowired - AccountDAO accountDao; - - /* - * @see - * com.springboot.bank.service.ATMService#createATM(com.springboot.bank.model. - * ATM) - */ - @Override - public ATM createATM(WrapperBankATM wrapperBankATM) throws BankException { - ATM ATMData = wrapperBankATM.getAtm(); - Long bankId = wrapperBankATM.getBankId(); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - if (bank == null) - throw new BankException("Id not found"); - else { - ATMData.setBank(bank); - ATMData = atmDao.save(ATMData); - } - return ATMData; - } - - @Override - public ATM addMoneyFromBank(Long atmId, Long bankId, BigDecimal moneyToBeAddedToATM) throws BankException { - - Optional atmList = atmDao.findById(atmId); - ATM atmdata = null; - ATM atm = atmList.get(); - if (atm == null) - throw new BankException("Atm with such Id doesnt exist"); - else { - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - if (bank == null) - throw new BankException("Bank with such Id doesnt exist"); - else { - BigDecimal bankMoney = bank.getAmount(); - BigDecimal finalAmount = bankMoney.subtract(moneyToBeAddedToATM); - if (finalAmount.compareTo(BigDecimal.ZERO) == 1) { - BigDecimal atmMoney = atm.getMoney().add(moneyToBeAddedToATM); - atm.setMoney(atmMoney); - bank.setAmount(finalAmount); - atmdata = atmDao.save(atm); - bankDao.save(bank); - } else - throw new BankException("Bank doesnt have enough money"); - } - return atmdata; - } - } - - @Override - public ATM withdrawMoney(ATMDetails atmDetails) throws BankException { - Long atmId = atmDetails.getAccountId(); - Long bankId = atmDetails.getBankId(); - Long accountId = atmDetails.getAccountId(); - BigDecimal amountToBeWithdrawn = atmDetails.getAmount(); - Account account = null; - Bank bank = null; - ATM atm = null; - if (accountId == 0 || bankId == 0 || atmId == 0) { - throw new BankException("Id cannot be zero"); - } - else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account exists"); - } else { - newAccountBalance = amountToBeWithdrawn.subtract(account.getAmount()); - if (newAccountBalance.compareTo(BigDecimal.ZERO) == 1) { - account.setAmount(newAccountBalance); - accountDao.save(account); - } else { - throw new BankException("Account Balance cannot be negative"); - } - } - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such id of Bank exists"); - } else { - BigDecimal newBankBalance = amountToBeWithdrawn.subtract(bank.getAmount()); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 1) { - bank.setAmount(newBankBalance); - bankDao.save(bank); - } else { - throw new BankException("Bank Balance cannot be negative"); - } - } - Optional atmList = atmDao.findById(atmId); - atm = atmList.get(); - if (atm == null) { - throw new BankException("No such id of ATM exists"); - } else { - BigDecimal newBankBalance = amountToBeWithdrawn.subtract(bank.getAmount()); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 1) { - atm.setMoney(newAccountBalance); - atmDao.save(atm); - } else { - throw new BankException("ATM Balance cannot be negative"); - } - } - } - return atm; - } -} diff --git a/bank/src/main/java/com/springboot/bank/service/AccountService.java b/bank/src/main/java/com/springboot/bank/service/AccountService.java deleted file mode 100644 index 0e0d7e7..0000000 --- a/bank/src/main/java/com/springboot/bank/service/AccountService.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; - -/** - * @author Sumit - * - */ -public interface AccountService { - - Account createAccount(WrapperBankCustomerAccount wrapperBankCustomerAccount) throws BankException; - - Account depositMoney(AccountDetails accountDetails) throws BankException; - - Account withdrawMoney(AccountDetails accountDetails) throws BankException; - - Account getAccountDetails(Long accountId) throws BankException; -} diff --git a/bank/src/main/java/com/springboot/bank/service/AccountServiceImpl.java b/bank/src/main/java/com/springboot/bank/service/AccountServiceImpl.java deleted file mode 100644 index 6bd0562..0000000 --- a/bank/src/main/java/com/springboot/bank/service/AccountServiceImpl.java +++ /dev/null @@ -1,192 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; - -import javax.transaction.Transactional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.AccountDetails; -import com.springboot.bank.dto.WrapperBankCustomerAccount; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Customer; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.repository.AccountDAO; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.CustomerDAO; - -/** - * @author Sumit - * - */ -@Service("accountService") -public class AccountServiceImpl implements AccountService { - - @Autowired - BankDAO bankDao; - - @Autowired - CustomerDAO customerDao; - - @Autowired - AccountDAO accountDao; - - @Autowired - TransactionService transactionService; - - /* - * @see - * com.springboot.bank.service.AccountService#createAccount(com.springboot.bank. - * wrapper.WrapperBankCustomerAccount) - */ - @Override - public Account createAccount(WrapperBankCustomerAccount wrapperBankCustomerAccount) throws BankException { - - Account account = wrapperBankCustomerAccount.getAccount(); - if (account == null) - throw new BankException("Account not found"); - else { - Long bankId = wrapperBankCustomerAccount.getBankId(); - // System.out.println(bankId); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - // System.out.println(bank); - if (bank == null) { - throw new BankException("Bank with such Id doesnt exist"); - } else { - account.setBank(bank); - } - Long customerId = wrapperBankCustomerAccount.getCustomerId(); - Optional customerList = customerDao.findById(customerId); - Customer customer = customerList.get(); - if (customer == null) { - throw new BankException("Customer with such Id doesnt exist"); - } else { - account.setCustomer(customer); - account = accountDao.save(account); - } - } - return account; - } - - @Transactional - @Override - public Account depositMoney(AccountDetails accountDetails) throws BankException { - - Long accountId = accountDetails.getAccountId(); - Long bankId = accountDetails.getBankId(); - Long customerId = accountDetails.getCustomerId(); - BigDecimal amountToBeAdded = accountDetails.getAmount(); - Account account = null; - Bank bank = null; - Customer customer = null; - if (accountId == 0 || bankId == 0 || customerId == 0 || amountToBeAdded.compareTo(BigDecimal.ZERO) == 0) - throw new BankException("Id or amount cannot be zero"); - else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account id exists"); - } else { - newAccountBalance = amountToBeAdded.add(account.getAmount()); - Optional customerList = customerDao.findById(customerId); - customer = customerList.get(); - if (customer == null) { - throw new BankException("No such customer account exists"); - } else { - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such bank account exists"); - } else { - account.setAmount(newAccountBalance); - accountDao.save(account); - Transaction transaction = new Transaction(customer, account, amountToBeAdded, - "Money Deposited"); - transactionService.createTransaction(transaction); - BigDecimal newBankBalance = amountToBeAdded.add(bank.getAmount()); - bank.setAmount(newBankBalance); - bankDao.save(bank); - } - } - } - } - return account; - } - - @Transactional - @Override - public Account withdrawMoney(AccountDetails accountDetails) throws BankException { - Long accountId = accountDetails.getAccountId(); - Long bankId = accountDetails.getBankId(); - Long customerId = accountDetails.getCustomerId(); - BigDecimal amountToBeWithdrawn = accountDetails.getAmount(); - Account account = null; - Bank bank = null; - Customer customer = null; - if (accountId == 0 || bankId == 0 || customerId == 0) { - throw new BankException("Id or amount cannot be zero"); - }else { - Optional accountList = accountDao.findById(accountId); - account = accountList.get(); - BigDecimal newAccountBalance; - if (account == null) { - throw new BankException("No such account exists"); - } else { - newAccountBalance = account.getAmount().subtract(amountToBeWithdrawn); - if (newAccountBalance.compareTo(BigDecimal.ZERO) == -1) { - throw new BankException("Account Balance cannot be 0 or negative"); - } else { - Optional bankList = bankDao.findById(bankId); - bank = bankList.get(); - if (bank == null) { - throw new BankException("No such bank id exists"); - } else { - BigDecimal newBankBalance = bank.getAmount().subtract(amountToBeWithdrawn); - if (newBankBalance.compareTo(BigDecimal.ZERO) == 0 - || newBankBalance.compareTo(BigDecimal.ZERO) == -1) { - throw new BankException("Bank Balance cannot be 0 or negative"); - } else { - Optional customerList = customerDao.findById(customerId); - customer = customerList.get(); - if (customer == null) { - throw new BankException("No such customer id exists"); - } else { - Transaction transaction = new Transaction(customer, account, amountToBeWithdrawn, - "Money Withdrawn"); - transactionService.createTransaction(transaction); - account.setAmount(newAccountBalance); - accountDao.save(account); - bank.setAmount(newBankBalance); - bankDao.save(bank); - - } - } - } - } - } - } - return account; - } - - @Override - public Account getAccountDetails(Long accountId) throws BankException { - Optional accountList = accountDao.findById(accountId); - Account account = null; - account = accountList.get(); - if (account == null) - throw new BankException("Account id doesnt exist"); - else { - account = accountDao.save(account); - } - return account; - } -} diff --git a/bank/src/main/java/com/springboot/bank/service/BankDenominationService.java b/bank/src/main/java/com/springboot/bank/service/BankDenominationService.java deleted file mode 100644 index b9e1dba..0000000 --- a/bank/src/main/java/com/springboot/bank/service/BankDenominationService.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.dto.WrapperBankDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.BankDenomination; - -/** - * @author Sumit - * - */ -public interface BankDenominationService { - - - - void addDenominationNew(Integer amount) throws BankException; - -} diff --git a/bank/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java b/bank/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java deleted file mode 100644 index dfc4dad..0000000 --- a/bank/src/main/java/com/springboot/bank/service/BankDenominationServiceImpl.java +++ /dev/null @@ -1,89 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.Random; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.WrapperBankDenomination; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.BankDenomination; -import com.springboot.bank.model.BankDenomination; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.BankDenominationDAO; - -/** - * @author Sumit - * - */ -@Service("bankDenominationService") -public class BankDenominationServiceImpl implements BankDenominationService { - - @Autowired - private BankDenominationDAO bankDenominationDAO; - - @Autowired - BankDAO bankDao; - - /* - * @Override public BankDenomination addDenomination(WrapperBankDenomination - * wrapperBankDenomination) throws BankException { Long bankId = - * wrapperBankDenomination.getBankId(); Integer amount = - * wrapperBankDenomination.getAmount(); BankDenomination bankDenomination = - * wrapperBankDenomination.getBankDenomination(); Bank bank = null; Integer - * noOf2000s = null; Integer noOf500s = null; Integer noOf100s = null; Integer - * temperoryCount = 0; if (amount / 2000 != 0) { noOf2000s = amount / 2000; - * amount = amount % 2000; System.out.println(noOf2000s); temperoryCount = - * temperoryCount + noOf2000s; bankDenomination.setNoOf2000s(noOf2000s); } if - * (amount != 0 & amount / 500 != 0) { noOf500s = amount / 500; amount = amount - * % 500; temperoryCount = temperoryCount + noOf500s; - * bankDenomination.setNoOf500s(noOf500s); } - * - * if (amount != 0 & amount / 100 != 0) { noOf100s = amount / 100; amount = - * amount % 100; temperoryCount = temperoryCount + noOf100s; - * bankDenomination.setNoOf100s(noOf100s); } - * - * Optional bankList = bankDao.findById(bankId); if (bankList.isPresent()) - * { bank = bankList.get(); bankDenomination.setBank(bank); - * bankDenomination.setNoOfDenomination(temperoryCount); - * bankDenominationDAO.save(bankDenomination); } else { throw new - * BankException("bank is not present"); } return bankDenomination; } - */ - - @Override - public void addDenominationNew(Integer amount) throws BankException { - - List list1 = new ArrayList(); - list1.add(2000); - list1.add(500); - list1.add(100); - list1.add(200); - Random rand = new Random(); - Integer remainder = amount; - System.out.println("list >>>>" + list1); - for (int i = 0; i <= list1.size(); i++) { - Integer randomIndex = rand.nextInt(list1.size()); - // System.out.println("randomIndex >>" + randomIndex); - Integer randomElement = list1.get(randomIndex); - // System.out.println("randomElement >>" + randomElement); - if (randomElement.compareTo(remainder) == 0 || randomElement.compareTo(remainder) == -1) { - BankDenomination bankDenominationNew = new BankDenomination(); - bankDenominationNew.setNoOfDenomination(remainder / randomElement); - bankDenominationNew.setDenomination(randomElement); - remainder = remainder % randomElement; - System.out.println(bankDenominationNew); - if (remainder == 0) { - break; - } - } - list1.remove(randomIndex); - } - - } -} \ No newline at end of file diff --git a/bank/src/main/java/com/springboot/bank/service/BankService.java b/bank/src/main/java/com/springboot/bank/service/BankService.java deleted file mode 100644 index ef543af..0000000 --- a/bank/src/main/java/com/springboot/bank/service/BankService.java +++ /dev/null @@ -1,22 +0,0 @@ - -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; - -/** - * @author Ram - * @nterface BankService - * Description : It has 2 methods declaration in it. whichever class will implements, - * will provide implemenatation for this methods. - * - */ -public interface BankService { - - Bank createBank(Bank bank) throws BankException; - - Bank getBankDetails(Long bankId) throws BankException; -} \ No newline at end of file diff --git a/bank/src/main/java/com/springboot/bank/service/BankServiceImpl.java b/bank/src/main/java/com/springboot/bank/service/BankServiceImpl.java deleted file mode 100644 index 9418e16..0000000 --- a/bank/src/main/java/com/springboot/bank/service/BankServiceImpl.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.math.BigDecimal; -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.repository.BankDAO; - -/** - * @author Sumit - * @Service("bankService") - * Description : It provide implementation for BankServices method. - * 1.It Helps to create new bank - * 2.getBankDetails - */ -@Service("bankService") -public class BankServiceImpl implements BankService { - - - //Injecting properties of BankDAO - @Autowired - private BankDAO bankDao; - - /* - * BankService#createBank - * Desc: this method helps to create a new bank with default amount 0. - * - */ - @Override - public Bank createBank(Bank bank) throws BankException { - Bank bankData = null; - final BigDecimal amount = bank.getAmount(); - /*if (amount.compareTo(BigDecimal.ZERO) == -1) - throw new BankException("amount cannot be zero or less than zero"); - else {*/ - bankData = bankDao.save(bank); - return bankData; - } - - /* - *BankService#getBankDetails - *Desc : It will helps to get information about details of bank passing a Id of it. - *Exception : it will throw exception if Id not found. - */ - @Override - public Bank getBankDetails(Long bankId) throws BankException { - Optional bankList = bankDao.findById(bankId); - if (bankList.isPresent()) { - Bank bank = bankList.get(); - return bank; - } else - throw new BankException("Bank details not found"); - } -} diff --git a/bank/src/main/java/com/springboot/bank/service/CustomerService.java b/bank/src/main/java/com/springboot/bank/service/CustomerService.java deleted file mode 100644 index 8d49086..0000000 --- a/bank/src/main/java/com/springboot/bank/service/CustomerService.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Customer; - -/** - * @author Sumit - *@entity CustomerService - *Desc: It has 2 methods declared which helps to create customer and get customer details. - */ -public interface CustomerService { - - Customer createCustomer(WrapperBankCustomer wrapperBankCustomer) throws BankException; - - Customer getCustomerDetails(Long customerId) throws BankException; -} diff --git a/bank/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java b/bank/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java deleted file mode 100644 index 85382f4..0000000 --- a/bank/src/main/java/com/springboot/bank/service/CustomerServiceImpl.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.Optional; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Bank; -import com.springboot.bank.model.Customer; -import com.springboot.bank.repository.BankDAO; -import com.springboot.bank.repository.CustomerDAO; - -/** - * @author Sumit - *@Service("customerService") - *Desc: This class provide implementation for creating customer and - */ -@Service("customerService") -public class CustomerServiceImpl implements CustomerService { - - - - //injecting properties of CustomerDAO - @Autowired - CustomerDAO customerDao; - //injecting properties of BankDAO - @Autowired - BankDAO bankDao; - - /* - * CustomerService#createCustomer - * DESC: it will create a new customer having bankId associated with it. - * It calls save method to save he state of customer object into database. - */ - - - @Override - public Customer createCustomer(WrapperBankCustomer wrapperBankCustomer) throws BankException { - Customer customer = null; - Customer customerData = null; - customer = wrapperBankCustomer.getCustomer(); - // System.out.println(customer); - Long bankId = wrapperBankCustomer.getBankId(); - Optional bankList = bankDao.findById(bankId); - Bank bank = bankList.get(); - customer.setBank(bank); - customerData = customerDao.save(customer); - // System.out.println(customerData); - return customerData; - } - /* - * CustomerService#createCustomer - * DESC: it will show customer details having customerId associated with it. - * It calls findById method to find that entity by id and return the object to responce. - */ - @Override - public Customer getCustomerDetails(Long customerId) throws BankException { - Optional customerList = customerDao.findById(customerId); - if (customerList.isPresent()) { - Customer customer = customerList.get(); - return customer; - } else - throw new BankException("Bank details not found"); - } -} diff --git a/bank/src/main/java/com/springboot/bank/service/TransactionService.java b/bank/src/main/java/com/springboot/bank/service/TransactionService.java deleted file mode 100644 index 197cc77..0000000 --- a/bank/src/main/java/com/springboot/bank/service/TransactionService.java +++ /dev/null @@ -1,20 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.Optional; -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Transaction; - -/** - * @author Sumit - *this interface has 2 methods which create a statements for an Customer - *and generate a report for statements - */ -public interface TransactionService { - - String createTransaction(Transaction transaction) throws BankException; - - Optional getTransactionDetails( Long customerId) throws BankException; -} diff --git a/bank/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java b/bank/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java deleted file mode 100644 index f061ed1..0000000 --- a/bank/src/main/java/com/springboot/bank/service/TransactionServiceImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * - */ -package com.springboot.bank.service; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.springboot.bank.exception.BankException; -import com.springboot.bank.model.Account; -import com.springboot.bank.model.Customer; -import com.springboot.bank.model.Transaction; -import com.springboot.bank.repository.CustomerDAO; -import com.springboot.bank.repository.TransactionDAO; - -/** - * @author Sumit - * - */ -@Service("transactionService") -public class TransactionServiceImpl implements TransactionService { - - //Injecting properties of TransactionDAO - @Autowired - private TransactionDAO transactionDao; - //Injecting properties of CustomerDAO - @Autowired - private CustomerDAO customerdao; - - /* - * - *TransactionService#createTransaction - * DESC: it will create a statement for a account of a customer - * which contain typeOfPayment,AMount etc. - * Exception: It throws exception if user enter acoount id or customr ID 0. - */ - @Override - public String createTransaction(Transaction transaction) throws BankException { - - Customer customer = transaction.getCustomer(); - Long customerId = customer.getCustomerId(); - Account account = transaction.getAccount(); - Long accountId = account.getAccountId(); - - if (accountId == 0) { - throw new BankException("accountId cannot be 0"); - } else if (customerId == 0) { - throw new BankException("customerId cannot be 0"); - } else { - transactionDao.save(transaction); - return "Transaction details added successfully"; - } - } - - - /* - * - *TransactionService#getTransactionDetails - * DESC: it will get details statement for a account of a customer - * which contain typeOfPayment,AMount etc. - */ - - @Override - public Optional getTransactionDetails(Long customerId) throws BankException { - - if (customerId == 0) { - throw new BankException("customerId cannot be 0"); - } else { - Optional transactionList = transactionDao.findById(customerId); - return transactionList; - } - } -} diff --git a/bank/src/main/resources/application.properties b/bank/src/main/resources/application.properties deleted file mode 100644 index 91dd5af..0000000 --- a/bank/src/main/resources/application.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.datasource.url= jdbc:mysql://localhost:3306/mybank -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -logging.level.root=info - diff --git a/bank/src/test/java/com/springboot/bank/BankApplicationTests.java b/bank/src/test/java/com/springboot/bank/BankApplicationTests.java deleted file mode 100644 index 3bccdd0..0000000 --- a/bank/src/test/java/com/springboot/bank/BankApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.springboot.bank; - -import static org.mockito.Mockito.mock; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; -import com.springboot.bank.service.AccountService; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class BankApplicationTests { - - AccountService accountServiceMock = mock(AccountService.class); - - -} diff --git a/bank/src/test/java/com/springboot/bank/CustomerServiceTest.java b/bank/src/test/java/com/springboot/bank/CustomerServiceTest.java deleted file mode 100644 index 1d754ac..0000000 --- a/bank/src/test/java/com/springboot/bank/CustomerServiceTest.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * - */ -package com.springboot.bank; - -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import org.junit.Before; -import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -import com.springboot.bank.dto.WrapperBankCustomer; -import com.springboot.bank.model.Customer; -import com.springboot.bank.repository.CustomerDAO; -import com.springboot.bank.service.CustomerService; - -/** - * @author Sumit - * - */ -public class CustomerServiceTest { - - @Mock - private CustomerDAO daoMock; - - @InjectMocks - private CustomerService service; - - @Before - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - } - - @Test - public void testAddCustomer_returnsNewCustomer() { - - - } - -} \ No newline at end of file diff --git a/bank/target/classes/META-INF/MANIFEST.MF b/bank/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index 3bf6f1f..0000000 --- a/bank/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,10 +0,0 @@ -Manifest-Version: 1.0 -Implementation-Title: MyBankDemo -Implementation-Version: 0.0.1-SNAPSHOT -Built-By: Ram -Implementation-Vendor-Id: com.springboot -Build-Jdk: 1.8.0_171 -Implementation-URL: https://projects.spring.io/spring-boot/#/spring-bo - ot-starter-parent/bank -Created-By: Maven Integration for Eclipse - diff --git a/bank/target/classes/META-INF/maven/com.springboot/bank/pom.properties b/bank/target/classes/META-INF/maven/com.springboot/bank/pom.properties deleted file mode 100644 index ad067d4..0000000 --- a/bank/target/classes/META-INF/maven/com.springboot/bank/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Mon May 21 23:16:57 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.springboot -m2e.projectName=bank -m2e.projectLocation=C\:\\Users\\Ram\\Desktop\\bank -artifactId=bank diff --git a/bank/target/classes/META-INF/maven/com.springboot/bank/pom.xml b/bank/target/classes/META-INF/maven/com.springboot/bank/pom.xml deleted file mode 100644 index d09d388..0000000 --- a/bank/target/classes/META-INF/maven/com.springboot/bank/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.springboot - bank - 0.0.1-SNAPSHOT - jar - - MyBankDemo - project for Bank Spring Boot - - - org.springframework.boot - spring-boot-starter-parent - 2.0.2.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - test - - - - mysql - mysql-connector-java - - - - log4j - log4j - 1.2.17 - - - - org.mockito - mockito-all - 1.9.5 - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/bank/target/classes/application.properties b/bank/target/classes/application.properties deleted file mode 100644 index 91dd5af..0000000 --- a/bank/target/classes/application.properties +++ /dev/null @@ -1,7 +0,0 @@ -spring.datasource.url= jdbc:mysql://localhost:3306/mybank -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -logging.level.root=info - diff --git a/bank/target/classes/com/springboot/bank/BankApplication.class b/bank/target/classes/com/springboot/bank/BankApplication.class deleted file mode 100644 index ab7e0187aa68fffbce082eacd21f5746fdb9c6ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcma)4O-~y!5Pc4Tgl+g}!bgE#5JCz$;0xjs6sbhwv;wKA(nC+)tyv7acI5RI{uU>y z9{2(MQB}tVDG|zn%Zz8ne)Hap|Ni^)4B!Nx8>lfHq^98I#44R7#yFk`eaFwqe3?vg zl?tbfZlKPvek*+t9<;Lth*akG91S5pwg!{g;1JdtNSCKQW`n0pno)u@DZH`+6+Bo zvsY!;RuuBy*gGCHj)L47fh}xclVsS6fRpYF?l2c+*`L=bo(G>A?c{^wL!+-%R#~rd zrVpik*^3Z1Bh8&T$PCfQR5q0t%8zX0%`%R?Xoj7ym3FF-V^u2OL~G;1vIuoBms^l7 zDrbmfASe0DAkJy;GbH=i2hD>12vDOFt&(hmB2J!>U+g`h`54L(SziWS_&~Pxa)JB` vMax*l8fE))sEBdP#VK$v1Qv4w5Q*YGLW9qf|#z4n0rzBRaY diff --git a/bank/target/classes/com/springboot/bank/controller/ATMController.class b/bank/target/classes/com/springboot/bank/controller/ATMController.class deleted file mode 100644 index 1eaa0cfecb36b5afb10b554104ca6978fa52a45a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3745 zcmcInYgZFT7=9)RtYA4> zYuSaYpI;W} zO*wAClx3M)Q)baAjIEm~r%+ICQlMS>rHpbPSUDvykP5TwRbOkP+dC=OyIiq-tE5&f z&&n3nv~4@S^exBs1g-@3s_x%&Wl3#1?uMCF()P@IGUq$)mMM1y%;}2nY+A0$Q*G;{ zWn2D~Ky)CnDiE7>@~RzC9FF54;_WzsqXxPJjyH%Xj&2+iXe%hc8X~bANY${JElSTz zCK>|L2I`KZ1+4;yQvbZW;OFwTf#{4ylL63%F*C=NUwJql= z=_{ftkO@aV?>pulSC-4logo9bb=&p**sl40*<4m$nfR-DCdS{=xt;$er^-Q64D<^O zg=JUm>@l^8T?zV^u?n{ID=q`~U%!8op?H;;@1kZ}a*6?53MJB}%9>fr&ewD3w&VF} z0>y%%T+0JltkCUtvkv3adl`FMYG(S%-9z2xEiSA373KLePJSz?S(Avvz=4Ap!ia%k zf%9QtKVM35oWQ8S;wu0grnrV%JNj@jj(6}b<7XM9mFLL9t8S%JvXO@VWvd57tNjE&4`puhoi=*J`N!mNbxz^oBKeY7e!0I8coZ4XMSAcj3=BQRUg+{tT0MhkwM> z6U=>2O%dwpq}gcT@F|828j8?D2L^Z?C+Of1`Z0__j0OP=RxNG^K-;*E8-b=VEaF4T z9w9_Gk)qBtwH-(FADW075C(1;xUI*&gB=uEMkXZom5|s!4q`tVrO+yM*8gf8{-RGh zWm94z7636k@)UPsn23FcBNHtejNXoLqF{7-n;j_Jm);;-1GN8zyASX44#3Qz*);JntsW% zoqX1H12Zd~71MH^z;g=)<(ZR~<(8dbYIDaxyFl-CM-UG=%2=pagOBUv(XX|yi*&Zy}jLf;nAiphtgxhU- zN(L%St-#a4NG-X*H6MAhR8rn`vSO<22X0Y$p;!o~N}XC#mV%&Urj=h};?xW?8m!Y| z=gbRBl`7dZFd#4zMGdua#?JGpu?-gEsR#UQf4D7S4@7RrRtW4@7tV~zB`CpFCjMthUi%y#Qm)9QIy`N4HJ zx1P}K8j52Zws&C!rwxn>3`Zp(x;EoDj57iY9~k&3Lyht5L_f~P@hQ%cC@i6r@_m_S zkaiCa)fG`D&`m0#t8pxj3m9iKmFKyhz@GYIt2U&>(EJWuV%dju9muIb+68}rZDl~_ zaw@0IUeN{4v@|FP4Gqm3_)OqbRO^Xgc?Uknq=9P!$D2yrWN~EJ)yjSx*D)m!o4X@$ zB9coL6Ey+ip1_QD_lCfg2)r#R(cSIfTGN^q7>nfpJ34_tSJ?cgWgr=VNF|L)7ZA+w z>By5!8Ugdv&FEPxET>8rG%&{w7)7wRJ8a;-z|knV1|J3DIaP9fJ4m^XS{KMPFM*I{ z(^ZnaS8sf=^;%o)V%=svK;0c4#gWEifz*3A_0B*hcHoO9mAJ^^B3Bz8!uScaY~H}v z0w<$f&>Uz?3;DBV2TM6mu7w#rU^Z;r@Z4f3qJxo*Ef z?!#vvF5PNw_nWJ>S_|Dazme7H>{jkuf$_**5qWvZU}%M8JCZAdU;4d+?_NEXRsOKcAp6uhGBIckvZ2|M?md3!^{b z>MKnDKus~~>807Wio-`LW>0YU6!!;t#}3iK5xPH$VVtP|7_M3j0nj#PakHXn47YHb zvbz|fJ4jMzioWeb+rKo?W%STEu>y{$C*W zaiX|L?3aoC3b9W#!Ttnawu=3$2JBB;#{R4o>~agRPZIkSu}>5G46)A=`%PlMz17$) zELN$)rr diff --git a/bank/target/classes/com/springboot/bank/controller/BankController.class b/bank/target/classes/com/springboot/bank/controller/BankController.class deleted file mode 100644 index 9594887bc0955f7a5eccc169e748671b2a488307..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmb_eYf~Fl7=BJdSuTMhlvcdZ*p`+6?Y5NCORz0aN^8SKs3_K|C!0gqHtfdT6KKcr z_xM#EZB=IUqci>}^*I}w1ZSZc$4NHlvgf@#&wDxf^RHij12BPtg@nL)$KSHUa^QN! zyzgr}FTJO><9j;rOC=T9GhENsmKItBdY;H_X_ur|w3qTvl%oY&b4&B{b1MP^IX@`c zvMilVWtaTo#1lK`7mF&$3UnIXt18%b9VL*-#aRxkuOqX2M=3e5Qt`CArPkcg&6m`) z=lNP{*Y`q!Ymvn&f{j3KsU1IfYUh>oLVH6x+7F)FvL;|pSG2$52C6`{ty8Y&>YD<| z;mn#q%dB5e9Z2G63Y|!G;0^Ry=oL6|0HzdYcg=ndT+BuZ@L6+$C7to*of7Vg@TEtz=Ppf z;VptMMZE8M{BKG(wJzH$DlC(BHOF}9=hWLV_smh{C>9pd0;6$JRj`=MTtQ3E15M5w@I0) z;wF;19W%INVOHSuffDyv3#)8Fl`w@l+!aVHJrEd*&8Vnu>H-9P3-^q>_XTdmfNe@i z)UQlG6-d7>*#+9n$vaX@0l`@GH$YaN@IV_>A}BqMr^c&Sv_4A?YeLt>vv`j!EXjWz3G|rj zE}F5QakriGR*oGUlN@>R^0$kt+dM5ec8|Q|(<^>P&rdl1J$Dj#)9gnY2hf7Id47N& zM6%}1TigSs-@&`IH^_MlS10L*kvgi#t zOhyh5vW0`j6F9^DA@;trbZ{7HWH7>PFaSoX7WV+qHa@_ENYeyzoFypLi3KcD=MvAK zK=N;zNLmmUmiaZ~rOqyjtY9?;`@dTOA2o^nBK;qy{>wx$ lLF|*newCQ7AAtQaKHtM`SU42>7Y*1Gkc5#yzLs4M@DJOr1rPuL diff --git a/bank/target/classes/com/springboot/bank/controller/BankDenominationController.class b/bank/target/classes/com/springboot/bank/controller/BankDenominationController.class deleted file mode 100644 index 1a408959bfbc3247b5bc45a765483529259803a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3601 zcmcJRYf}?f7{~u7K^H<$sv?4|H$Vxu6@@AWX%V4X!=(hVh^^fuhp>|D(%lm%AEBM; z=jhwk>A@2l;`Gh(la0M{-Jc-yzN-ZcAb&!R|cvC>R(wamYK7htT~x_CDTfv zF;G!1l9b+xot6Uq37s*2>-9cMC9$|b({#a6c3#ffzMaa+VaIV*(HURhZo>7lr2rN@ zD=$}FZ^=wa%kj+xE3I5_&9t@!%;AD^S8Y#bsP^Qb?bvEaAlx3C6{s3Y}JY zMBsG7cH~4MpOW5;MY{rL5^mbc&03xv+?O6!sYRQP#I?a4iX?rxn3ZaVQRT|Pjk#Wc zU*JW%R(VFb<}=S)UY5mu<)ZPJmdm12%jUH7mtDt~qlBu~Xgo6dOoI^Q?`>SuZk(xSL5W! zCZODj6)RU@Ftw)I&WOOZ-9HAieDLuCF~f8erzn79-!SEQORs0 z{`UB^A9-vFGlJ*AK$#cl(RF)SF89RDb}rS$z85#O$*HW0`FVLTlyo|nTK^gQ_s47D zi0C7*0_-V)TL)p^AGbjB8}z!DeFx&-FU1r@l5W9E%P~7R{amhm7VHTIXQjiK?u*Ma zh}tNdMquFsUIh03pimXp`(`K`ewHaBAW;%U%d+i2_l#vf=MEnB7$imND{%*3JB8392S99h9CsV OA_-xk7;?~ES>RuJfdm`? diff --git a/bank/target/classes/com/springboot/bank/controller/CustomerController.class b/bank/target/classes/com/springboot/bank/controller/CustomerController.class deleted file mode 100644 index 6f437e5cf67a50b929ad2cf98814d9d3edfc05e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3021 zcmcImYj+b>6x}yzJG7(^%1a8;SU{S#Fd}V%rdDVv1xX(^7(jg8Om5Sm=}ertX<@na z@Ay?*N>$d$=*^N@vToTt|Cup`bi-q2z0KTX_rhEdw0_1CQm7Gz-$no2%K!%F+T|snw;W#dU!b zDc8%JvM8-hWft80dQ;jGs6r}Gb z6D>p24eE}e6I~2a%68OBX*;XDdy*Ih22-vj3mNIz!MeKHp*L-Uz8o6BSEi77`z%jM zt!n8NcrY5OC#PNWz9)-C<;{~CwewXZFNb!P`?{36q#7MUmgl(u>npIE9`&XIw* zz<5~3Rqc!!*r`h}q-i_vNL}(6hj0ETCuc*kZ<7OsIt7z+gfbP%uw9ikv$m6KCfAzl z>t)7`g+;l}9a$(5K)?BN+(-8Fc})hq)ymsP?DoyBt1nB+*Yj@fX)@qcA_fBo4q_Y^ z3{13$eT!;~;S??kr2lQu!_xawEPF7FcVf7NcS#S{%(C)*nP-5Gj3%0@Car_Ulnlym zGKMKkGm^^lTu?(#**|4OL5t zjDhzA&IeWA2D!WOK5iJeE^wx$#BJ6@nk}m2$1sltfynAzfpeimD%Vd#fWT+57`S^& zU?v1`TS|g{c6j%nHQcKAwkmmnSgm{Clv)a$ZKrAk1k)PcTwUjB!Le^_ zkH10j69#_7v1iqiaME|0Rr~zSM#lTuH4j=5L$U4#?*zeV` zf5bBt?3o7k`_vhZ{lP1+KWY>EW%@rw{nJEoh1jnV`wX$qw!r==K5G~I=S|onkc1II Jw$3gK_#2o{UvdBd diff --git a/bank/target/classes/com/springboot/bank/controller/TransactionController.class b/bank/target/classes/com/springboot/bank/controller/TransactionController.class deleted file mode 100644 index fc5f5c88398713feb517fc63763356600811e65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3059 zcmb_e`*Raj7(F)$UD~ElDi4c5E6=7B7Nk5R1%Xl?l2S~uiuk(O+@=fZZrr_Tt&V?> zzpA64GNV5_wB|XyB0D6!%yUzw5!sq*bAj6%FzOSg@xO< z=ZXTO1wW|RvL>AsWmo;m^b@<_S1KyV3ykQN%S9EexsDPzQ%K4qY&?!9(X^nS(PG`x z?y6dHL$_2_*FDeI(&QNmT#Dj1U@Zr7RjvEMQ@f;y#a<>FKiIJ4mVte}uKjg4P-VL9 zn{ho?UlmAC}{Q}^quB^5lB#7OcAz9XwkGH}g(b2Fn?T!Oxk$lCbIn*3=(i;pkF!#BmYLP}3#sy9$iLN%^ zv2U;zw=78MqFeE#t_S2{`F~GuCZ^G%HvN#l%9PJ1R?@mE*(KL2$BXEJAL@Bos~Jmy zZELbxH-gy--3QW?s8&H+4fh_os6MN!P~Y&&8+lVcxhyPfAH+$VvM?oZI*I1) zy_LlQoEFIUPI0Tco6HSh3}>=9i#I4bJ7Hdhp{$UO-4nS^o=sCtXK@}E$eRiRKM>dx z@0rGY$>)}~7%W_$jP3X&}S1Cf9lV)nUB@0&sPMG%Xp=$f_ z7Oq>kCUB&y#T^#=B4P#X_9T+)X%zQa$ zueoYH2Fm`@sfXHMRl(izS7xXum0jZek$PqGV91;1e?N;N9tj*zz!%ZgmUezS9>1iw zmi@X{W;3^vqe8JliFjjwH@4b63+!z_wl->;N7t2v_j@PMLP=mpyYv>A=13<#=Dz6H z14rF*%|W_9MtSSQ=CrZv_W6)RI*&NrGSB06j^8vtuTmH`M|gC_SJ+ r3-%B3(H8cP+pvGa98IC5=<6;%<=Vl9wBT&Ak%FQ@3d>vdRssG7r0ipR diff --git a/bank/target/classes/com/springboot/bank/dto/ATMDetails.class b/bank/target/classes/com/springboot/bank/dto/ATMDetails.class deleted file mode 100644 index a4b60d6108861846e0257ec3ad225df8a2230adc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1861 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 E0o@~}yZ`_I diff --git a/bank/target/classes/com/springboot/bank/dto/WrapperBankATM.class b/bank/target/classes/com/springboot/bank/dto/WrapperBankATM.class deleted file mode 100644 index 17d497fd5bfee991d3a1709b4aab544145fcdfd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1384 zcmaiz+fEZv6o&s@N>7d!TMM4B1ueGaFbb#_1rjhJF{yF^sUgOTX*;Qd?F<<%yZSGbB>zz}p z*D>7`p3rT07)l@5_00_CupljZs!)gq4zbmySX4FCu*j@snrtSq95oHbs2)vgD0)4G zW!7M+6pW7_Qy1d15zuAKNdBXsRR#4?B&};GqNI@7cTU~5xogQt<%d&Tk#f+ML&-l& zj6b%VE2QE6N?FM8{RU5K{3?DYYZuVIaTCKWt{LC4fHgH3Dbeqm83){N#Ow#2=a{zDU1qPA1h>* zSqIKTLLxN^glsU}=0Ai;@1z23f5_Tn{iGu0pO`z$J-$G>#?qXll3O~*3ik!sKj;1& SYokJUBSOnpU47x#_2pmE!wH%I diff --git a/bank/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class b/bank/target/classes/com/springboot/bank/dto/WrapperBankCustomer.class deleted file mode 100644 index d5e2f9ad4907ff6376609d5c8f2b4120542332ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1444 zcma)*ZEw<06vzLUF`iasg0T6pjp<-KSKa1b;CQhm8WZAP%wQJdivkUHLQ6{Vb7|sO zqKO~C4`n>3Eu+*f*$Zy(y*=lDe&^rApT9qU1K7u56d{31*BHv%dQ4YR4gPU&1mXyvs_6A||lXSFKsw z0)=AfHsX{v_NMLL3W>dnQ#t-%>}-mP{pW3*gl7TiqW?Wh#4O{?;%T6E78IP@Mifs3 z*5<;__3=a-^i(s39f8e&$;o}3jmS{~+bHm-+!e@p5!?c$Hb;~slu@B!;33qhotih) z8N7zK!3B;+3^j72nsdg?t|_zPGoR3`rpF1t&A>5@kVJBt~MixmrOHL40 zagR04WJ3ApigX diff --git a/bank/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class b/bank/target/classes/com/springboot/bank/dto/WrapperBankCustomerAccount.class deleted file mode 100644 index 30646c547965d7b60a1a3fafa96d3ce0192081e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1738 zcma)*eNWR+6vm&sjlEf39CP3+yFFx@H!)mUNw;OA~=a z6F-0-%6Lv&SgD=ipWbuZbD#6O=RE!W=f^Jq>)1{pBCx8OUAcE+=|;P0nzr0jjL&k* zHsyDga&n?syR_fy_iVGPSv#s~_6<9Mn83ub@BZ@HzY1|MPuj_{P zy5DVT)?207(F8JeQ&l<*#nO52y^PtP^q#t2&~sNW6}&`nUu>ixa7)4n z;v7v$NFd44Z3!tPsVQyE_F5#cSSVhjC>`qg4lP{=l>0bJr7lLxZO%}&e}*th(*C5$ zLNJG=QY6JrVVM-2xQLUsd1$k@1hQAu-M6&_9#RtqMcvoCeZAAttR#v83&VYw|KJ&J zD~%;Avl+_NTtA>!rr6+&6$vsPk)7Ds29Z|$sjiD_{uW%JsU@*WJuBx2u663Jv+Co3 z*hO7muYzJvsZ-^=Yw@ilo(YJLOj(n#fJK_=q1m@oZC__U&kXOv3U?2)WT7bi)=@;* zTNFjuS42t`A1tb>)c|qlNhJf%`xdU^dAk#sRm!Tl@;UK=zxg9wm zkT*j>cr*+`cBLm@N_9pBRDWXWC{s8`sYEk6LnTu^!y3goj-R;kG{+khpW*ocdd#u$ V5ej&Z3XXj6)k_y{QmF{G{sPO$RK@@R diff --git a/bank/target/classes/com/springboot/bank/dto/WrapperBankDenomination.class b/bank/target/classes/com/springboot/bank/dto/WrapperBankDenomination.class deleted file mode 100644 index dcabeb159c0f2b1228e78e146565f9ce290a38aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1856 zcmb7^ZBNrs6vzJ;#-5yjV-KRJLws1vMjfD{0|Yc0l0}S|88p7=wq_Q$mXyxVrHMeI zi66iZWjv?tSl4tWyjbt)?YaN+I}dk%{{H+8U=`ajj0q@Bv#T5*S-R0~n5L~XRO5@% zvQ6c^r5+t=)(*YD&+3FMhp>w=|lCas&rJNt?V@pwWdv5e9-SGP^yJ#cg>d8 zQG&8nfvDOwdj?6()CTgqhOM8=hHh^Pj2ET4K;${aNMamQ zDO^HIV5+7Y+Us7op;__+i;$4aahQy9p?tXL3BuX- zI+!JhupTBTR^KOA3~}iTabDc(^pKF(ZC2?!%=lHj!U@D}bKmBX7RU@KxVzODWP$vE z(B0nY>7ABl#ZeNFM~r{rBafkf&Nq^fu*8F=2xR>@UNEW79+ec9vBFbMx5}W@%6?b( z7FGRK8)B-)@sLVfD!6yViTRin*8)QQn7-Nug`PS>oW^czBaU?e@remHQ@D?!Kyu&g zSxxPw&i7<)L>-p6c$lYg9H&1M{?VM$6FjBPN;66;4=i0ldS0ft6d@{G`$VF7vZ1X;Osg1lTl!R$aUM`wXstq8^-}WD1^^A0!_HSqlZ3r~KXe4T0o?AX^k}djtr# zl`F7-J0T#mL6BFWAa`*u48+$uw<3E4@@51Gw}wGzRz0nz(<-3y3(`S)@eE~|dUT2h r>D5y_B0JCa6W5+)yGr&cHU`j>&IljStb9Nj2R``9`4m2Ln!fc9BhP-N diff --git a/bank/target/classes/com/springboot/bank/exception/BankException.class b/bank/target/classes/com/springboot/bank/exception/BankException.class deleted file mode 100644 index bc0fb220b30d379598570c69e60c8f477ce1e0e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 391 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 diff --git a/bank/target/classes/com/springboot/bank/model/Customer.class b/bank/target/classes/com/springboot/bank/model/Customer.class deleted file mode 100644 index 5dfefaa9665bfc7b3462c40b028784086a0f06c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2792 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 U_V_yJ%fl>bmuHWJd=K^i09IeQXaE2J diff --git a/bank/target/classes/com/springboot/bank/repository/ATMDAO.class b/bank/target/classes/com/springboot/bank/repository/ATMDAO.class deleted file mode 100644 index 6326d873342443017957136673af9933021636df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmbV|O^U)m5QSg+7mb^_gj;)~tB4Q~7efX?=K_`3Hi=1BXxkAznu|HW97>Fih=?l} zRke8VKEC=p9e)7~(DhIg=p|gpO=(l3V`e8~GHYp7$(z)%-OKR%YZA^pGz2~}`XQN< z(Q+1NDsdiK0zEs2$t2T#_T1mGs#3SI{F=m~0iI?eob4Q-F&#)D;%1LRP_i6knL zRTfpXc2%H8%(FYlxl-I%znHHA^aLJr z+L0{D8o5ext$cuiz>J;wDS2~L={>tbrsPTHHQlzo*0jEK3ye10IHi|asRbUcsHbm= zK)A__CEvI3r3zfMLJ%K4(-6nins??6{TCT{EENbdTEo%C@1q%$8ytSE{=cN*OX*sXI2!Z}G y*M{8I`qLr4$42qLkZm diff --git a/bank/target/classes/com/springboot/bank/repository/BankDenominationDAO.class b/bank/target/classes/com/springboot/bank/repository/BankDenominationDAO.class deleted file mode 100644 index 0c6692205303725368ad45e60c82c06a18eb9066..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369 zcmbV|L23d)5Ji7$bmF*inN!#h%xWZ%ATDG;&=b^*ZPVjS*U-}%asuz15QX3RPqx$K94@>~Qpp&MO^P5e*e4jtn?~%`+sKwOWo} z3X^?q9r;#5{E_@t$H~96i{!7)6(3A_s~dM@2|F7v<4{wfA7&Wd2lNnK_861Po&Eq0 Ct!^>^ diff --git a/bank/target/classes/com/springboot/bank/repository/TransactionDAO.class b/bank/target/classes/com/springboot/bank/repository/TransactionDAO.class deleted file mode 100644 index 0162a54ea7621f834d6da80501d3e10dd1a70a87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354 zcmbV|!D_-l5QhKN)>OR|d=A}9dx{7`@lXOn?F&recG;NhgvqM(+Q;gl5737aqZCP{ zrygeJ^7DUu^L_aI0`P!ggpR^E<5Jg^IB!$tpi}Z2EvDky1(tXHD&%X*f@A+QUq-l5 zxX)=vx*%`$GR;jEBJ>mF#3&~ zoJb1&m9w70R+_{|a!rquf03ujU*;vRP0^N)TfBt5jc0KqtI%!cw)rE_L3G}C=%4T4 E2(sUC*8l(j diff --git a/bank/target/classes/com/springboot/bank/service/ATMService.class b/bank/target/classes/com/springboot/bank/service/ATMService.class deleted file mode 100644 index b87803fe173fb456f370af3892b32f40f1e74889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcma)3O;5r=5Pb_srHb$?493L0cd@m4OKDob)>7H4X7)=124LRmdC5(uXcno4hMQ3dD; zoHr@c7f05@-yOWDN|L!P=yB$3Ue^Scqxfh0*cNHjjC1AJa%|EGX_KpLk5&6Sb9(6qfQ9Ah5*(wi`m5kU)b;Xp@kXx0c!6Niwjzlg>^O zg7%fZiHcUS7PN)7YPCvfYYnE=w%_#l+2dzF=^voSbM&;u=iZr3Heo~TIb`(N%%s7sh%9zEIsgmW6+F2{r+}qjXH`@!t zc?}_fg(u8WGnF@sgQ)|V6IRyK5D{4a|Dgy(Os~*tIszLys!egNVW(t!jyo>bZf!o$ zC}4Dt6g|6O_1Psmlee0SMaMHe+bNa=?(T5h!GQjNYZk0A$32UYiIVat{K<wN5X9ze=uHT+xWI1!%#~n^_ zurUUKdL0Sq32Z`xhRt*Es<3F_3msdqRUkTG7jrG+62HE_0^Uy(22-s#;@SDs0TnVc z-x$Z8_=<*Yq;%s~9d}_n{X*gbx6Ys(U~1SYu(DdreUT)=DDD=}+jB{#O>%(d&Bd`C zY3Vu&xU`aKk0;AOFQoRVsQ(>l9-d#Ur%8NXwc7BY$oV6qc%6>za{P=8?n8b)mg2Z1 ziC@BFk^tTDCIb=dE!kqSEN86>&P8jG7r9X@ieJ)yWk@@hbOtz@S*^0X6veMtepScK zFs?AEXJRnaQxI2KDdhXy2)xbER)Nw2YpWK{nF_LW#)1eagPW?jNQd_a?kY-y`+?)> zSQTdnX@jx;DL!4O=F$u?Fdo5t=~i6YNNbjqo2)_aT-aTKv^(xaZ>rBRqj! z9NN+_iPjo?f~L-fcNDawv0m-4fs1e99=DQ03Q1n})?pi4cd?>w#~$odGl_@>AT+Gh z(4?VX!<`zJma#a5!?R-{{>lY(e!U{MwRsXpWCR4a?gybM9Wf&1ARLuJkdfl{Wu!Di z3nCRYqUAvk%RxqT0>{%aBerD%xpdr!zlReOD26Vh(TGgIW%o!rVML6?1Wp-IBR+v| zNCHNr9N2VNE@VU}@k9;!-wb4UQh|r3W8SR{u!~!0qEB{H?0b3tzYq0jQPJLwR>r)I z5#7g_-H)Sa=V87dB}V%+BmES=yvR7e!bo3cl;2`}rHxMeL7CF$3ZCW&X{{?tl^WGL zgMtd*Yj{TKvjDH+St5qX<2;^YD?%3INL$GLNLnYY_Sz^-5O?-1HgN`Wk4MLHtVnn*{b`sZWkFJLK^QVqR9H7*81yc}5Jq7jQnZgQs#?N_McVA{PO_4oRSIY6P1#*T-j*92*ByV;}Tpq z^eLAahGyu#r#2YcOb@*kfXgJ7Zs$A&-o$NBx%k(!!0U{<3UFoEQ_8S3C@aB~LEl#M zqSFR_omK=Mq9qPdi&Em>9%K*u1`-z!|pA z^5*ywt#JWGyn#n?6)q-en2&ht`x8d-7moZJPT?Q4+CORCf6H4N9v3>E5XU zI-C*P@Qi4}v!WHxi3jk!=)nu(7+oR_|1#5uz9<`>t#|M)T@)5al=WGVL|;&l7IOA` zOotGbiT(HunbGiKAKu4rY4{bymqkkcH@{gWK@{C0feEHaj7- z1eq*A>{F~`zI=);?B|P29{=UP^4s+5b*^-CD5lp3T($-ua;QAf1b)xIKTw(f0igg8 A)Bpeg diff --git a/bank/target/classes/com/springboot/bank/service/AccountService.class b/bank/target/classes/com/springboot/bank/service/AccountService.class deleted file mode 100644 index 9a9f30416b7e7ac6508a594f91c45569256a4515..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcma)(O-{ow5QU#hX&|)Fic1ub@CH_0@w-aJq6@^*aYn%8$N~f_gj>kej@RIC8N#bWxno7IbM;V~YFr15p z;F-`VzlrB09m7Cc5{?=%!`(P)gC@@KTPuo!?726&s7hyYvd!4!pmiuW31zDs6Nd2W zQBvWQ(Pe;bhNCtoT4{J~^f|%MPpB}Za#N$}iDCMG&?eO-Iia$0&2WRIa`%Z9%Z5Kn z$^8T|oQ|Wf4Ms+%YqG*HkK-b@C6FpxCb>-hJ-wCnv TtJD9}8DRIj#{c&`p@ZQ&MhvB4 diff --git a/bank/target/classes/com/springboot/bank/service/AccountServiceImpl.class b/bank/target/classes/com/springboot/bank/service/AccountServiceImpl.class deleted file mode 100644 index 1a4ce62687abe465923ec67aa71369ba03b45ed2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6254 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 diff --git a/bank/target/classes/com/springboot/bank/service/BankDenominationService.class b/bank/target/classes/com/springboot/bank/service/BankDenominationService.class deleted file mode 100644 index 3342e6f1afa84a019ce4eb4cad2d80256a0d19c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmX^0Z`VEs1_l!b9(D#MMh4^L{9OIwf}+g4^rZa!68)saylnmA)S|M?&uKQ9;}&d$KX$RLoFSeB@tlbDyT@1K;Fnq0!jAe5Mrf~?#xwVaVbOv4AE z(lf6lH9fV+S~HB1fy=cbIkf;}Y%x0nCnJM4HkYKr)PUUr*8$WWoL^d$oa&aDlgh{- qgTtYEAe-4385kLufnH`{UU>^ diff --git a/bank/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class b/bank/target/classes/com/springboot/bank/service/BankDenominationServiceImpl.class deleted file mode 100644 index 315778a5d6890b6d25e8ef60ebada084d3b661ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2512 zcmbVNOKclO82-k!y^gbeIDO$3NDCD5aJ!V0KH`!#uNG4`E=ilxP#$Z0l5XSOHS2XA z!o`?$T-$O?-*TO)x;$f-OB%ug z+pe1nrcpATIU|?9E(^YfsKCJgFe$KId2V$!Hk=bUl5Jz| zq**P9(R2lR9xARNmgq^#vHT%{O+CHS0^w1&DC5|KgpSSFBCs`UIdYxMAwU$YqfiMEa(qG1fb%PbaKD?A|=1$Omhn_bK}zMPX@S_K*(UnG_YIst&%b9dFFD~s`zp2MIw%F?ANeQAn|}}9Z%p% zR(ioKRb_5g#h2-A6JaL~;28~13v6k+Q66;kpqIsFt^zw-ldD5C-8-Y9e+|1qbd#o2 zbnQ6$km$f6JgdQ2(+Aj|TCVug)^Qlm(Xd?7~;Mm{^A(GaRq@B8^Wv~Vhhxcw2qT_K_F_D%hF*+2is-TQlE7$ z)5^pt9j7rY5cA!-Qea0$dZrFv z*6|9iu!O{6+4ST^Uc>g_&1iU4psyWXZC<|81Edkhj6&rMUf1ykcC!K%=})-1+1A^l z^rnuy(r=}Hy>1jmRU+1*E#{_GrgJ*3DQrePX}b&D8Z~W~L`8os9c0OZJ17uQU^z@E z*0ljv6~uX!!yYlKn4$^(I*O_5pn21B2sr^^@yQ5us{O8=p>#=LbA2^llC})oZ{*&9 z8B%SjrhNtJcGr5=S}w0K*MXKGRrn{{Bs)X{o2PuUFn``GHyAHI?V+;0!faDWFh<^<+&O7+ojPf1l8|Z|- zK^EegjLvZ@^#_H5_VIC!RWfZqy!yzcn z;7hpFhDjA4p-g`fK0Z9kqV!xug)@!5U!b%~8w>QHdR@1+NNY=!^doYQ0Y^0m4c!_J oXz1gFkoX$|fu#E{jQ@eoKZ&>ymU$$E8$qC*H1;;1cPe=IUo>c#6951J diff --git a/bank/target/classes/com/springboot/bank/service/BankService.class b/bank/target/classes/com/springboot/bank/service/BankService.class deleted file mode 100644 index 90716f05d0e50627234275d09e2f14c5da080516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 zcma)&L23d)5Ji8fapD-oTf`vPAnx2r;%dN!C+O)EL+jW*%(UX!TzCKv6;fk}aUsN2 z*DroQe*N>;@dRLseuM_$)%dNdiqg6)^**RnyN#;2+*`wHE@JgFM`#fSYrWSh*Dh1b zbj>CZVpFmXTssN#VR8?*^`D$yV6(UX3_|=k7%qbKu8PnhjP4=%*K@&Me-Qc^hdRtV z2W|6;Fc~I)sT1$Ahcc}Et~9)`Im^{IHH>Rkn?Ptvi9kbIc|u!sB&sFvvut8?Z#Oc( I)L!(y0e#kO00000 diff --git a/bank/target/classes/com/springboot/bank/service/BankServiceImpl.class b/bank/target/classes/com/springboot/bank/service/BankServiceImpl.class deleted file mode 100644 index 723b10ede30b24f2c79e24be07fc6ff5e8e5fae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1803 zcma)6U2hvj6g^`*abi1dNL!~(OGyiLojB=2Khi)#z^>a8YA02LBEj2uJ#nY;?pnL! zl>8K4_zguutpEvl<~Je4nO!G1;3_=q&exrL&pG$r`Qxvje+6(C%`8#^6*usls26I# z(+UFPw4}f9L@GScu5xNz>?HF|uh-2YBQX6!9!RGv{f@KUdZApC#kj!D|LH~`Ya`TU zAW&|Mx)iEj5NQ*HhjI9Nb$dul%9GS zg!@iQNk4M-q#JvZ#}}Mx-vlppsM>TpzOH?3HU!e;getB;~P25;Yt>l1+I=t%Rg}nco$a%COgVhy?}WUxL96j z#AV@0^W3TFPF=a$lijsR2+S9d#Y7(0@j({v3zSB=|8Ld{xPcOL63GMVUMeR6hU$)j z{JRt>YQ~lqgPtzdL{f-GvJT{cNO3d`fiq-l6IEA6>MoOgdl*n7@H?mH$4cN7@F6}D znAp>PyLPzQW*ZE9N?PiOTHoldvmGatV&-rM_p-RlDvXJrI4xiW_n8$PJq=Z)Y*tv* z-`G1J7w`!vO`048&L8D!Sjq`}Dp0fp=i3Rxd3M-VHTg+hWK3I!Z6kyV_%Im z+d1P_OG{>YC?~Nhq-xI^I&N_LF`*8G?!lE_IH@#uu2?T%ddXH?AJ5v zZ?N%O4Bt{Mk{WQ2nyfJTeLg>{xWY=c)Du*tV^k$nQ6s86F5>~}#4yLtB2D8V?X6VF h*(2^h<_^{W)4peSxc-9c6gJ~*C#XLVIyAD>YoNQZmchM&Cmy4t9#;&2p&y$D bda3?t4W8pJt@n=#IQZ{qvB?~e)}jGwQ>m@jO>)33$!=zM1M*Y+ z;&0FyhYmWU{p@Fdj^p^8&80y$rTwsbZtr>C=e?f4{{8I_05>5ugaq`8UDw@)V_I8f z+xGObVQuTKbau>&)R&sBXV;}uYOPo5jhcpt!00n$$IxqrwWY6@pUH}+Au2HW22cX= zN*jFHumy6(pv#VI*skf>&R&q*2~hcTz%81_-ID=g1*r7>|N85Rl;h@dY@0`I6jL?(&rMLGcD7b7YJu2 zHUuI|c2&j@##;#txr;as11%Z`k$ zRCI5|Fpdiv-sy9z53>Z`MT)7iCA|(=fpq4z_$rN;61a>j0z(8)bXKZ#KCiz_-=b}8 z6^2061mZ}|u{Od=;RxM^C|#XW_e$@IXts)G*pH8wr7rmy=RG-`zy zuHu>oos^EACNPcbOeqo!!rb;<#tYu_JrKeD1xiAqUoye1x24mD+z(r zD^#l(lIWSk{bH}t=@~Nt$aBZx%@c8~r=pgnXP7m%o|#_v`)0gWp{c-URWd(H;B&A8 z4w>!)N4nCY?d*w92k`}MP`0G1EnO+L>(r**w5l;A@l-X+F9lBb>MwcfNn(bv?{vJb z%BvfKmT&WK=z&hM7nB!gZ(pH`fgPjPB-%*FhV~IIvT(xu1`y(F%=+Pch_fii7)Pjf^uIkN&nJcd5uWQD z1;>HxbBzANNeE;7D*)haoaA2tPynZJnj?e2{SeM_9^oqK!~D%1jXQH@+qX-^TWw0MpBm94F_b)E@4z-L4_Z0k=%icmJK_)i|-VF;_aeUyI0Fb5i_Z229@ zCu5JF{cnlD(Eo#RjTIEacU*^H_+E??rOdD5qWT|hvY zanWCod}QDM69ShN#g3UNMP+O)a6Rs5%{(h@#G7cW%-4F#vizVhl~b_^B#`elbie1e z5AAY=Z-S<0W10S{V{{Yqqz$AmAaKBc1tgsMA^KdWT=n=oVq}P8BwGY0Z6{9o^=y4R F{{ctUle+)_ diff --git a/bank/target/classes/com/springboot/bank/service/TransactionServiceImpl.class b/bank/target/classes/com/springboot/bank/service/TransactionServiceImpl.class deleted file mode 100644 index f62346d227aeffedc8292c40f3fac36c1fffb77c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2505 zcmb7F?N%FA6x}x;41`c)NQG`GSozYe70+@8u6Lo(&nd%rwuN-o;;W_vH7(w8-8sSyecr$ ztyi+`qpnd)ClLvZ;kts?1a5VU`Uip}UPp#)*q3g*wgQvcsUG;-e)$9@a8tnzfr<0a zYI`Sf3zGsvp@RxlHiSo=mY`^{03L;G5>uFFDd@hc>lU>~Mm=E#ZVb<1PQk3e`1z;; z=Ok1QRPywcLN$Q}yrE!`Q_~47$!WeTFklj7Su>lI6Lt5vA8!eaYAuk3YDV{!o~g*p zd;)2_?P+m|9@!Ajpw(05ek==I(F0X?Mh`$>B?$%ngLnsP3RVSXyHPrKY?D~W2Is=j z4heQLjG%R!bm%WI_2VIZLvqekrK=gHlhLYGS%J4N`?*2OJwS(`8x^9eE|mhL7oN?^$%ip{5lLhog15RnN1IS30lDqelD6yx+zDzcXMnOIFj?KV9d{KC4rhPKg#4y8M4kMT)29@;ZX<6VEwuluz3%KheUTI+o5EB(1 z;ay^lb1mR8(I>Em_h^qY*D|)SP5f6Gy+d0Z@AJ$tME+v(J_SO-n1Trf3kq_4f|vw8 zz!OHFR-we02zLEye8X%}{?4!lA=Y7vA4ag1^BBf_hAFPV2Aj7@29I!^c)i+ZT6s>G tWPH?u|3~l)AM^PMy}S;!ET7Wip=XmXar+s!5q$1zVvtT>@cX3$?QifduC4$8 diff --git a/bank/target/test-classes/com/springboot/bank/BankApplicationTests.class b/bank/target/test-classes/com/springboot/bank/BankApplicationTests.class deleted file mode 100644 index faca8cfd21b004eda2884bc2a3e877d62684fabd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 761 zcma)4O>fgc5Ph4ZHBH;Wl_Q1?=C2|`LEaWWv0DxBBLl5S$}M(cIT-{Mde zaX_5=qbkNW5>)bmgJ-=n^WMz9nd_S$KLMQJFhGN0AZ^OCmD6S(TkCl&%#xpy8Lw7} zmcnam&Q#{J04;{zLaYT(gqiaX@j^+@&=*qL-1w<-Yc16~E0+u}qdMBGO5x*Mh!Ml) zYi+cD!_XWY%@|q}`&qToL?=XmI{~&ChW}64Mi;vQdJKEk&3Q^4X>WPa8J!{e*rOVS zo8iSE`un6wBC>3B^pB@{_lf(_g!yHgT$ k(84x)=->hQ!U}|k*e~-AO8W?p>Fg5j3B{jEJi~L~H_dd@g#Z8m diff --git a/bank/target/test-classes/com/springboot/bank/CustomerServiceTest.class b/bank/target/test-classes/com/springboot/bank/CustomerServiceTest.class deleted file mode 100644 index 837756886f8b7f38fcc4fdb8f8a04c25cee37d2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 915 zcmZuv+iuf95IvhqO--OTE-9BnQzRO0et@?iq)89~+w7V|wSv-Mw z-~;$5#H{T&0a=!IJhMAz&YYRwe}4V~@C^4n)EMr^DhbR?3ptLIvOyHev)~{#RwY~? zbA2vie!`9Q&|p}fgy&%}4dpmEiY7d^4BjYI?^Jxo@Mus4rTI)5VU_+`qQ2@M^%%C_ zr_zdq4}}rYl=r1nHnc)X!>~C}dK@GKOPPU#rv%UBY#1I_Rw}N`G6i{8>L0kb(lK|S zhVE9L3n}aihWdVY$j~@YBkrS)^%h#V#IQCHk{_l?#Pvx?JTr1}I30#sIKK!s?5QB) z-AZN^a#H1{;r7Ff!GHZF=CiDG4{e66g~;X2T#`vjWP_LdlhVBB<0fuon_|;p+ZiQ6`^d&-LH2H0%CoG^hMgbDL^u4*BPKh}Iy}Gw0%VgPQS= zRjOnDMmUAq^QTMu^Td_IE=XwFz8ZZ^tdQrC=j??nx(a_Oc9CLr@@WusUM4Rf%g8n# ze8<|iEM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demoCommon/.project b/demoCommon/.project deleted file mode 100644 index f3900a6..0000000 --- a/demoCommon/.project +++ /dev/null @@ -1,37 +0,0 @@ - - - demoCommon - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.wst.validation.validationbuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jem.workbench.JavaEMFNature - org.eclipse.wst.common.modulecore.ModuleCoreNature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.wst.common.project.facet.core.nature - org.eclipse.wst.jsdt.core.jsNature - - diff --git a/demoCommon/.settings/.jsdtscope b/demoCommon/.settings/.jsdtscope deleted file mode 100644 index 2418123..0000000 --- a/demoCommon/.settings/.jsdtscope +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/demoCommon/.settings/org.eclipse.jdt.core.prefs b/demoCommon/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 45a6e0e..0000000 --- a/demoCommon/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.5 diff --git a/demoCommon/.settings/org.eclipse.m2e.core.prefs b/demoCommon/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f..0000000 --- a/demoCommon/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/demoCommon/.settings/org.eclipse.wst.common.component b/demoCommon/.settings/org.eclipse.wst.common.component deleted file mode 100644 index 6ce3563..0000000 --- a/demoCommon/.settings/org.eclipse.wst.common.component +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/demoCommon/.settings/org.eclipse.wst.common.project.facet.core.xml b/demoCommon/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d74c55e..0000000 --- a/demoCommon/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.container b/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.container deleted file mode 100644 index 3bd5d0a..0000000 --- a/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.container +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.name b/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.name deleted file mode 100644 index 05bd71b..0000000 --- a/demoCommon/.settings/org.eclipse.wst.jsdt.ui.superType.name +++ /dev/null @@ -1 +0,0 @@ -Window \ No newline at end of file diff --git a/demoCommon/.settings/org.eclipse.wst.validation.prefs b/demoCommon/.settings/org.eclipse.wst.validation.prefs deleted file mode 100644 index 04cad8c..0000000 --- a/demoCommon/.settings/org.eclipse.wst.validation.prefs +++ /dev/null @@ -1,2 +0,0 @@ -disabled=06target -eclipse.preferences.version=1 diff --git a/demoCommon/pom.xml b/demoCommon/pom.xml deleted file mode 100644 index e7ea0b5..0000000 --- a/demoCommon/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - 4.0.0 - com.example.common - demoCommon - jar - 0.0.1-SNAPSHOT - demoCommon Maven Webapp - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - - demoCommon - - diff --git a/demoCommon/src/main/java/com/example/commonDemo/TransactionNew.java b/demoCommon/src/main/java/com/example/commonDemo/TransactionNew.java deleted file mode 100644 index ccc60ef..0000000 --- a/demoCommon/src/main/java/com/example/commonDemo/TransactionNew.java +++ /dev/null @@ -1,134 +0,0 @@ -/** - * - */ -package com.example.commonDemo; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.logging.Level; -import java.util.logging.Logger; - - - - -/** - * @author trainee - * - */ - -public class TransactionNew implements Serializable{ - - /** - * - */ - private static final long serialVersionUID = -7197575110101065396L; - int transactionId; - int customerId; - int accountId; - int amount; - String transactionType; - - public TransactionNew() { - // TODO Auto-generated constructor stub - } - - public TransactionNew(int transactionId, int customerId, int accountId, int amount, String transactionType) { - super(); - this.transactionId = transactionId; - this.customerId = customerId; - this.accountId = accountId; - this.amount = amount; - this.transactionType = transactionType; - } - - - @Override - public String toString() { - return "TransactionNew [transactionId=" + transactionId + ", customerId=" + customerId + ", accountId=" - + accountId + ", amount=" + amount + ", transactionType=" + transactionType + "]"; - } - - public int getTransactionId() { - return transactionId; - } - - public void setTransactionId(int transactionId) { - this.transactionId = transactionId; - } - - public int getCustomerId() { - return customerId; - } - - public void setCustomerId(int customerId) { - this.customerId = customerId; - } - - public int getAccountId() { - return accountId; - } - - public void setAccountId(int accountId) { - this.accountId = accountId; - } - - public int getAmount() { - return amount; - } - - public void setAmount(int amount) { - this.amount = amount; - } - - public String getTransactionType() { - return transactionType; - } - - public void setTransactionType(String transactionType) { - this.transactionType = transactionType; - } - - public byte[] getBytes() { - byte[]bytes; - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - try{ - ObjectOutputStream oos = new ObjectOutputStream(baos); - oos.writeObject(this); - oos.flush(); - oos.reset(); - bytes = baos.toByteArray(); - oos.close(); - baos.close(); - } catch(IOException e){ - bytes = new byte[] {}; - Logger.getLogger("bsdlog").log(Level.ALL, "unable to write to output stream" + e); - } - return bytes; - } - - public static TransactionNew fromBytes(byte[] body) { - TransactionNew obj = null; - try { - ByteArrayInputStream bis = new ByteArrayInputStream(body); - ObjectInputStream ois = new ObjectInputStream(bis); - obj = (TransactionNew) ois.readObject(); - ois.close(); - bis.close(); - } - catch (IOException e) { - e.printStackTrace(); - } - catch (ClassNotFoundException ex) { - ex.printStackTrace(); - } - return obj; - } - - -} - - diff --git a/demoCommon/src/main/webapp/WEB-INF/web.xml b/demoCommon/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 9f88c1f..0000000 --- a/demoCommon/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - Archetype Created Web Application - diff --git a/demoCommon/target/classes/META-INF/MANIFEST.MF b/demoCommon/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index d617fcc..0000000 --- a/demoCommon/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.properties b/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.properties deleted file mode 100644 index 1135b68..0000000 --- a/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Thu Jun 07 12:58:15 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.example.common -m2e.projectName=demoCommon -m2e.projectLocation=C\:\\Users\\trainee\\Documents\\workspace-sts-3.9.4.RELEASE\\demoCommon -artifactId=demoCommon diff --git a/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.xml b/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.xml deleted file mode 100644 index e7ea0b5..0000000 --- a/demoCommon/target/classes/META-INF/maven/com.example.common/demoCommon/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - 4.0.0 - com.example.common - demoCommon - jar - 0.0.1-SNAPSHOT - demoCommon Maven Webapp - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - - demoCommon - - diff --git a/demoCommon/target/classes/com/example/commonDemo/TransactionNew.class b/demoCommon/target/classes/com/example/commonDemo/TransactionNew.class deleted file mode 100644 index 45b67f735146a2b3b2bbe57eb8a005ee4da53db7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3760 zcma)8`*Raj6#lkNn=~u};aQ+GrBssi5ndu%KxiovOiPhcsReYCENx1Xt;q&j5XAQr z9~Iw-;tL-*gN`kZIF3L2gMWj6iQ{*6(RGj62%^s`Pl6f7Ro&S=4emKq5jij3(| z(}`LI%dFYB5j>)&<60tqPKzXTDrcj@W79x>DL z)JP}wcg9n3bGL$OpMOw+quYq-Zd7BXiltaaGvRnj@5?45dV0Wy?+F`GEitGuB!-il zbeN;@jDn5fyUH2;*84*Il_T;G)CsHK!8U%&1t%k?luTsTeMMKZC3G2%uNh7&0TtE|YfW;_w({0K`v80M&_RgB{)(t~NUClqwd z&$kK&I_r=@)(LhRyRPQy=x6kViZeJ%>g)}(iPhV=E7xKfOtQ?gDd{F&)9_mP6Tz?! z%bUramLKP(GM+A}jM=2lTN#p#iz=SMC1PO~3XxU-Q)Y#y<-~Iemd0eYPqQ~g$@=TK=EN7| zjs?!Te7h4`Cevq_`*{b(iq6RqF=Av{wGkQPGa^^jx_oXc<$+1AHbiYrUac&2>Qw0y z3f9{y{{w)U?juGv9o6^8T9OaQn0;_zyTj^`w2ckxUIC; zMnCOnM2F>Xw{0`$kJhc=1gO^vPtbYgu4g(#k`Nu1Bth1IpBeOEBRp@V3<%wUf5_8% z8|{H#&@h8do^3POPPtL!2W+`X82sPsWX5L7xHMyf`b4`A85BBFa@1{$My4K2ZA)EF|?PScmEDI}a zt$gNcbD2}{a77@Er9k#n1ahDkQ*ky&juXg|q9Ho!iv8DND5?_{W_Y6DdS$3=m>P>RT zIUfCa?zn(WxX3ngsVKJX_>vJxv)P8P*m?Pt$JMX#4QH0I=iR`!#4VjvBC4VV2foAi Llob46?YsFOTn`$C diff --git a/demoCommon/target/demoCommon.jar b/demoCommon/target/demoCommon.jar deleted file mode 100644 index 34c4b37054abf438bcf3910bf7df494e448320b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4677 zcmeHLc|6ox8y`zG82ca*5?Mz|_OWLjLxvC&O*OVgG#F#KsiaJn?AH=eWEo_i#!{Ig zWQeqgROl5^vMcodbQ6{Cd*6HidH;CNe16O4^LxI}_c_lwbDr}(`w&dbtf1v~pIB!8 z<>l**1$ZJ2ZS-KK7DhYweKiAvS^%@9g5O?y0iVNw3%b?}sb^toWN2-pfHay!w%#{K zz!W;z5ir@d*7kCgVwcj(*LZoewkCN5Odq^yFxxhPU+%U9k$TBY$;Zq$UA72nc7aD} z5@j7gy%d4sMWC#2pNZZ;Y8K3Ay-C962e38~!`3Dv=6W z2@nLDCw$)zW+1>LUY_5&@UsQvs|A*b@$|-F*I3&7fA34+2TQ=Or`PelSWmAtAod?X zoNF`Wi6LN*|B12q&&B|W!q?Cg{viAlJnS#wj{*@Je2M*=D=?@47+JZL%BPn%fJ)#ZVcNJExjQ*U+D)~_i%?3SR1wM}wC>G7-^gfbEmC!+yxur>K73DybZ;)a zbf;F+|6R>&&Fsn9x`pZYULl~Tr$p=W;vR@RQR4Qrp+{y{f?r2wJTJmdHR)Q=w|MlL z4|ks&J0l>%!tUBN=^;_%5+BP{s^ri+b;Xt@j!5g=Zd`#jL*^wjYpKec9{DYsHpZDdGB|elaDebCFbi z)}~}v1o>zyCFjxZEjah6$PMF&@s#Si%Z8liTmq-XLQHL~=K-QicEDDA`L@cm2s)!<2% zx4pF9hHe52-ZfJSfzK zc2Oom&kM$>`cQMOpN;d0n($9~5p+R5F{36NLrcGpBQf z>))w!5>9#m*9z%JSSsX3Z*5B39uS}Su*+PF149xpmXuGcDtD#yx`8fUxT&*4nhb>? z%nSQCUnWOl;0lNDPNd;>X2h3xS5J2^1sM%I z3(pi0;wo3SQ|?9dH`t`(Bk*?5K8%tdhdpP-5}tLKh?9l*e$QL5^_R_c6|VMYJ|AQ- zOB@aSuw$U@lmIJo2+&qgjcn8?o6*t;2Q+_T*vja zpn#JSW*-Mh!=znSb58}ekMtKfsFx#iGQ&z09gAC2H9QL{tenhSJ~L!u7rC`AM;r^X z?yo}I_x-L=Dq2+AUNG+*>L4E~pxxrPppFU))DGCHzd-kSJm2>0Wnt|`Sdm1rr?$|1 z6^VSeatEB$pmU%&Y2rXTANY3Yez!8TqY_co&bD+@& z+}KqE8$0-q7YG^$b(NTs14oHJhSgAcpJ!fkl zCiPI~L|-0Z)beM|Z!M=?cXd`d#QEfK{*^G)G={F5N$HmOq7we`?I`?9H}BX`rPH|@?;hN` zXx-P~(_=)56=aag(=rv7?Pv&>Z}Sm9t+I6EK!kOLu^QfeVRGc;b2YUV0Dq2jg}Vi zLpB+NA?g65qfX0Kfq-B%%>}+cuE#dG8NOFQbwJLg**Re0qw>ux7w%>swii79F-?X> z`=?&k`_E;>ofR$ojq;gkWrF|)E!Srg{sgB^puTZ2fIyo6ZOQZo3bHre%NvXLb;tT( zqw9~;6d~u{Cw}BeQd9NNOt#Mv;d*N%dB_c`>Ri^9iIa$qyWQBc^BD^%ZF>ImnAe0^ zQf=fO+7O@0gg$?u&~S3H3)`ld2l?@Y(-XLfe!muUR;q!rr^`j8R_Mv61_x~?;WaUw z`45w>K=<#$3DjVwtJ=%24wb*XXIsiWB^RX`Yf_F$bG^3X6+9&Nf}?xh*5>hvlN6Wf z_YW0H^%lUxyoaYyj^cM+ZCwpicFf#a(p1aO1Mh-z_M4hF1X14c8=NNwp+Dwvq8bMM zB0hiHOZ|~5G^?tHHISweMi6Mv-$@nG6BmWL?{PM$cAZw~q-zlbZ zh94R*AYCb9KXEn0*|17Tlk1JAvQmv^xk^Wv21B{tcD#EA?P_IUbZI7^$zElwv2H=r zxJ%t#C1{p3E^)GPT*vR=le~<;=LXP*xntC))kbrUn?ei(xjSr;Dy5r!@~cx?=f>!A2xlJKibr%*K>6M};Ge&pov~58*f=D@hp`%@AcCld$Wk zE8yI1cu`tpXrdNlW^lOv#!}Tg`B!q5Oqr?{Gm`C}4i4Uyq}vTxa|i47Z2K+Z6VKTD zu@UFh`OFH;=l>7V|M(zD0)vELEZ*r4{DVS(>mM#U)&xsB0%j&}inKB*uo*|nBj^LK zQ3Sab<}x`x2n-5A7MjzGAo6_hPy=Wr1Og*cTTl@flqM%}>{E~_h+pWUFw+^W1p^|r zGhzb42Diq=Px?%wc=mVwVs?@9l!M}_NwDy@J|U`CkJa{ z{=RbI6*y~TQ!fy(yJ8P;2ARvDbw{|3YAW@jH_18_P3 S02H<2x0XQcBf&LBBmJEIX diff --git a/demoCommon/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF b/demoCommon/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF deleted file mode 100644 index d617fcc..0000000 --- a/demoCommon/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,5 +0,0 @@ -Manifest-Version: 1.0 -Built-By: trainee -Build-Jdk: 1.8.0_171 -Created-By: Maven Integration for Eclipse - diff --git a/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.properties b/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.properties deleted file mode 100644 index 543c4f4..0000000 --- a/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Fri May 18 14:55:13 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.example.common -m2e.projectName=demoCommon -m2e.projectLocation=C\:\\Users\\trainee\\Documents\\workspace-sts-3.9.4.RELEASE\\demoCommon -artifactId=demoCommon diff --git a/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.xml b/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.xml deleted file mode 100644 index 02a624c..0000000 --- a/demoCommon/target/m2e-wtp/web-resources/META-INF/maven/com.example.common/demoCommon/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - 4.0.0 - com.example.common - demoCommon - war - 0.0.1-SNAPSHOT - demoCommon Maven Webapp - http://maven.apache.org - - - junit - junit - 3.8.1 - test - - - - demoCommon - - diff --git a/demoCommon/target/maven-archiver/pom.properties b/demoCommon/target/maven-archiver/pom.properties deleted file mode 100644 index d1d3396..0000000 --- a/demoCommon/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Fri May 18 14:57:09 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.example.common -artifactId=demoCommon diff --git a/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 58e7730..0000000 --- a/demoCommon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1 +0,0 @@ -C:\Users\trainee\Documents\workspace-sts-3.9.4.RELEASE\demoCommon\src\main\java\com\example\commonDemo\TransactionNew.java diff --git a/index.html b/index.html deleted file mode 100644 index b9779f2..0000000 --- a/index.html +++ /dev/null @@ -1 +0,0 @@ -WelcomeToNextDenisRitchie diff --git a/training-spring-security-demo-master/.classpath b/training-spring-security-demo-master/.classpath deleted file mode 100644 index 6d7587a..0000000 --- a/training-spring-security-demo-master/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/training-spring-security-demo-master/.gitignore b/training-spring-security-demo-master/.gitignore deleted file mode 100644 index a1c2a23..0000000 --- a/training-spring-security-demo-master/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* diff --git a/training-spring-security-demo-master/.mvn/wrapper/maven-wrapper.properties b/training-spring-security-demo-master/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/training-spring-security-demo-master/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/training-spring-security-demo-master/.project b/training-spring-security-demo-master/.project deleted file mode 100644 index efa784d..0000000 --- a/training-spring-security-demo-master/.project +++ /dev/null @@ -1,40 +0,0 @@ - - - training-spring-security-demo-master - - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.springframework.ide.eclipse.core.springbuilder - - - - - org.springframework.ide.eclipse.boot.validation.springbootbuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.springframework.ide.eclipse.core.springnature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.wst.common.project.facet.core.nature - - diff --git a/training-spring-security-demo-master/.settings/org.eclipse.core.resources.prefs b/training-spring-security-demo-master/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647..0000000 --- a/training-spring-security-demo-master/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 -encoding//src/test/java=UTF-8 -encoding/=UTF-8 diff --git a/training-spring-security-demo-master/.settings/org.eclipse.jdt.core.prefs b/training-spring-security-demo-master/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 714351a..0000000 --- a/training-spring-security-demo-master/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,5 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/training-spring-security-demo-master/.settings/org.eclipse.wst.common.project.facet.core.xml b/training-spring-security-demo-master/.settings/org.eclipse.wst.common.project.facet.core.xml deleted file mode 100644 index d858295..0000000 --- a/training-spring-security-demo-master/.settings/org.eclipse.wst.common.project.facet.core.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/training-spring-security-demo-master/.springBeans b/training-spring-security-demo-master/.springBeans deleted file mode 100644 index 210b78b..0000000 --- a/training-spring-security-demo-master/.springBeans +++ /dev/null @@ -1,16 +0,0 @@ - - - 1 - - - - - - - java:com.spring.security.web.TrainingSpringSecurityDemoApplication - - - - - - diff --git a/training-spring-security-demo-master/LICENSE b/training-spring-security-demo-master/LICENSE deleted file mode 100644 index 4ca32e3..0000000 --- a/training-spring-security-demo-master/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Amit Bansal - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/training-spring-security-demo-master/bin/.gitignore b/training-spring-security-demo-master/bin/.gitignore deleted file mode 100644 index a1c2a23..0000000 --- a/training-spring-security-demo-master/bin/.gitignore +++ /dev/null @@ -1,23 +0,0 @@ -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* diff --git a/training-spring-security-demo-master/bin/.mvn/wrapper/maven-wrapper.properties b/training-spring-security-demo-master/bin/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb5..0000000 --- a/training-spring-security-demo-master/bin/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1 +0,0 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.3/apache-maven-3.5.3-bin.zip diff --git a/training-spring-security-demo-master/bin/.project b/training-spring-security-demo-master/bin/.project deleted file mode 100644 index 071de27..0000000 --- a/training-spring-security-demo-master/bin/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - training-spring-security-demo-master - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/training-spring-security-demo-master/bin/.settings/org.eclipse.core.resources.prefs b/training-spring-security-demo-master/bin/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0..0000000 --- a/training-spring-security-demo-master/bin/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/training-spring-security-demo-master/bin/LICENSE b/training-spring-security-demo-master/bin/LICENSE deleted file mode 100644 index 4ca32e3..0000000 --- a/training-spring-security-demo-master/bin/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Amit Bansal - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/training-spring-security-demo-master/bin/mvnw b/training-spring-security-demo-master/bin/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/training-spring-security-demo-master/bin/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/training-spring-security-demo-master/bin/mvnw.cmd b/training-spring-security-demo-master/bin/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/training-spring-security-demo-master/bin/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/training-spring-security-demo-master/bin/pom.xml b/training-spring-security-demo-master/bin/pom.xml deleted file mode 100644 index cba89d3..0000000 --- a/training-spring-security-demo-master/bin/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.amit.spring.security - training-spring-security-demo - 0.0.1-SNAPSHOT - jar - - training-spring-security-demo - Project for Spring Security Understanding - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-security - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - runtime - - - org.projectlombok - lombok - true - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.security - spring-security-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/training-spring-security-demo-master/bin/src/main/resources/application.properties b/training-spring-security-demo-master/bin/src/main/resources/application.properties deleted file mode 100644 index ff9be1c..0000000 --- a/training-spring-security-demo-master/bin/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/test -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true -server.port=8090 \ No newline at end of file diff --git a/training-spring-security-demo-master/bin/target/classes/META-INF/MANIFEST.MF b/training-spring-security-demo-master/bin/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index edc8b9b..0000000 --- a/training-spring-security-demo-master/bin/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Implementation-Title: training-spring-security-demo -Implementation-Version: 0.0.1-SNAPSHOT -Built-By: trainee -Implementation-Vendor-Id: com.amit.spring.security -Build-Jdk: 1.8.0_171 -Implementation-URL: http://projects.spring.io/spring-boot/training-spr - ing-security-demo/ -Created-By: Maven Integration for Eclipse -Implementation-Vendor: Pivotal Software, Inc. - diff --git a/training-spring-security-demo-master/mvnw b/training-spring-security-demo-master/mvnw deleted file mode 100644 index 5bf251c..0000000 --- a/training-spring-security-demo-master/mvnw +++ /dev/null @@ -1,225 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/training-spring-security-demo-master/mvnw.cmd b/training-spring-security-demo-master/mvnw.cmd deleted file mode 100644 index 019bd74..0000000 --- a/training-spring-security-demo-master/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/training-spring-security-demo-master/pom.xml b/training-spring-security-demo-master/pom.xml deleted file mode 100644 index cba89d3..0000000 --- a/training-spring-security-demo-master/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.amit.spring.security - training-spring-security-demo - 0.0.1-SNAPSHOT - jar - - training-spring-security-demo - Project for Spring Security Understanding - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-security - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - runtime - - - org.projectlombok - lombok - true - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.security - spring-security-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/training-spring-security-demo-master/src/main/java/com/spring/security/web/Authority.java b/training-spring-security-demo-master/src/main/java/com/spring/security/web/Authority.java deleted file mode 100644 index 5eca379..0000000 --- a/training-spring-security-demo-master/src/main/java/com/spring/security/web/Authority.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.spring.security.web; - - - - -import javax.persistence.Entity; -import javax.persistence.ManyToOne; -import javax.persistence.Table; - -import com.spring.security.web.entity.Role; - -import lombok.Data; - -/** - * @author ram - * - */ -@Entity -@Table(name = "authority") -@Data -public class Authority { - - private String department; - @ManyToOne(targetEntity = Role.class) - private Role role; - - /** - * - */ - public Authority() { - super(); - } - - /** - * @param department - * @param role - */ - public Authority(String department) { - super(); - this.department = department; - } - - /** - * @return the department - */ - public String getDepartment() { - return department; - } - - /** - * @param department - * the department to set - */ - public void setDepartment(String department) { - this.department = department; - } - - /** - * @return the role - */ - public Role getRole() { - return role; - } - - /** - * @param role - * the role to set - */ - public void setRole(Role role) { - this.role = role; - } -} diff --git a/training-spring-security-demo-master/src/main/java/com/spring/security/web/TrainingSpringSecurityDemoApplication.java b/training-spring-security-demo-master/src/main/java/com/spring/security/web/TrainingSpringSecurityDemoApplication.java deleted file mode 100644 index a9e2797..0000000 --- a/training-spring-security-demo-master/src/main/java/com/spring/security/web/TrainingSpringSecurityDemoApplication.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.spring.security.web; - -import java.util.HashSet; -import java.util.Set; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -import com.spring.security.web.entity.Role; -import com.spring.security.web.entity.User; -import com.spring.security.web.repository.UserRepository; - -@SpringBootApplication -public class TrainingSpringSecurityDemoApplication implements CommandLineRunner{ - - @Autowired - UserRepository repository; - - - public static void main(String[] args) { - SpringApplication.run(TrainingSpringSecurityDemoApplication.class, args); - } - - @Override - public void run(String... args) throws Exception { - repository.deleteAll(); - Role role = new Role("ADMIN"); - Set roles = new HashSet<>(); - roles.add(role); - roles.add(new Role("USER")); - User user = new User("Sanjay", "koala", roles) ; - repository.saveAndFlush(user); - - Set darsRole = new HashSet<>(); - darsRole.add(new Role("USER")); - User user2 = new User("Darshit", "koala", darsRole) ; - repository.saveAndFlush(user2); - - - - - - /* - - Role role = new Role("ADMIN"); - Set roles = new HashSet<>(); - roles.add(role); - roles.add(new Role("USER")); - User user = new User("Ram", "password", roles) ; - repository.saveAndFlush(user); - - Set darsRole = new HashSet<>(); - darsRole.add(new Role("USER")); - User user2 = new User("Rahul", "pass", darsRole) ; - repository.saveAndFlush(user2); - - Set adminAuthority = new HashSet<>(); - adminAuthority.add(new Authority("UPDATE")); - adminAuthority.add(new Authority("DELETE")); - adminAuthority.add(new Authority("VIEW"));*/ - - } - - - -} diff --git a/training-spring-security-demo-master/src/main/java/com/spring/security/web/config/TrainingSecurityConfiguration.java b/training-spring-security-demo-master/src/main/java/com/spring/security/web/config/TrainingSecurityConfiguration.java deleted file mode 100644 index 1d95265..0000000 --- a/training-spring-security-demo-master/src/main/java/com/spring/security/web/config/TrainingSecurityConfiguration.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.spring.security.web.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.core.userdetails.UserDetailsService; - -import com.spring.security.web.repository.UserRepository; -import com.spring.security.web.service.TrainingUserDetailsService; - -@Configuration -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true) -public class TrainingSecurityConfiguration extends WebSecurityConfigurerAdapter { - - @Autowired - private UserRepository repository; - - @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception { - auth.userDetailsService(userDetailsServiceBean()); - } - - @Override - public UserDetailsService userDetailsServiceBean() throws Exception { - - return new TrainingUserDetailsService(repository); - } - - @Override - protected void configure(HttpSecurity http) throws Exception { - http.csrf().disable(); - http.authorizeRequests().antMatchers("/secured/**").authenticated().anyRequest().permitAll() - .and().formLogin() - .permitAll(); - } - -} diff --git a/training-spring-security-demo-master/src/main/java/com/spring/security/web/entity/Role.java b/training-spring-security-demo-master/src/main/java/com/spring/security/web/entity/Role.java deleted file mode 100644 index 7b955a0..0000000 --- a/training-spring-security-demo-master/src/main/java/com/spring/security/web/entity/Role.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.spring.security.web.entity; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import lombok.Data; - -@Entity -@Table(name="role") -@Data -public class Role { - public Role(String role) { - super(); - this.role = role; - } - - public Role() { - super(); - // todo auto-generated constructor stub - } - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - @Column(name="role_id") - private int id; - - private String role; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } - -} diff --git a/training-spring-security-demo-master/src/main/java/com/spring/security/web/entity/User.java b/training-spring-security-demo-master/src/main/java/com/spring/security/web/entity/User.java deleted file mode 100644 index 3e75466..0000000 --- a/training-spring-security-demo-master/src/main/java/com/spring/security/web/entity/User.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.spring.security.web.entity; - -import java.util.Set; - -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -import lombok.Data; - -@Entity -@Table(name="user") -@Data -public class User { - - public User() { - } - - public User(String userName, String password, Set roles) { - super(); - this.userName = userName; - this.password = password; - this.roles = roles; - } - - @Id - @GeneratedValue(strategy=GenerationType.AUTO) - @Column(name ="user_id") - private int id; - private String userName; - private String password; - - @OneToMany(cascade=CascadeType.ALL , fetch=FetchType.EAGER) - @JoinTable(name="user_role", joinColumns=@JoinColumn(name="user_id"), inverseJoinColumns=@JoinColumn(name="role_id")) - private Set roles; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public Set getRoles() { - return roles; - } - - public void setRoles(Set roles) { - this.roles = roles; - } - - - - - - - - - - - - -} diff --git a/training-spring-security-demo-master/src/main/java/com/spring/security/web/repository/UserRepository.java b/training-spring-security-demo-master/src/main/java/com/spring/security/web/repository/UserRepository.java deleted file mode 100644 index ea21ae1..0000000 --- a/training-spring-security-demo-master/src/main/java/com/spring/security/web/repository/UserRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.spring.security.web.repository; - -import java.io.Serializable; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.spring.security.web.entity.User; - -public interface UserRepository extends JpaRepository { - - Optional findByUserName(String userName); -} diff --git a/training-spring-security-demo-master/src/main/java/com/spring/security/web/resource/SecurityTestController.java b/training-spring-security-demo-master/src/main/java/com/spring/security/web/resource/SecurityTestController.java deleted file mode 100644 index c233c63..0000000 --- a/training-spring-security-demo-master/src/main/java/com/spring/security/web/resource/SecurityTestController.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.spring.security.web.resource; - -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -import lombok.Data; - -@RestController -public class SecurityTestController { - - @GetMapping("/unsecured") - public ExampleClass getUnsecuredResponse() { - return new ExampleClass("Summer of 69", "Hotel California"); - } - - @GetMapping("/secured") - public ExampleClass getSecuredResponse() { - return new ExampleClass("Summer of 69 Secured", "Hotel California secured"); - - } - - @GetMapping("/admin") - @PreAuthorize("hasRole('ADMIN')") - public ExampleClass getAdminRes() { - return new ExampleClass("ADMIN", "YYYY"); - - } -} - -@Data -class ExampleClass { - private String field1; - private String field2; - public ExampleClass(String field1, String field2) { - super(); - this.field1 = field1; - this.field2 = field2; - } - public String getField1() { - return field1; - } - public void setField1(String field1) { - this.field1 = field1; - } - public String getField2() { - return field2; - } - public void setField2(String field2) { - this.field2 = field2; - } - - - - - - - - -} \ No newline at end of file diff --git a/training-spring-security-demo-master/src/main/java/com/spring/security/web/service/TrainingUserDetailsService.java b/training-spring-security-demo-master/src/main/java/com/spring/security/web/service/TrainingUserDetailsService.java deleted file mode 100644 index 27d0607..0000000 --- a/training-spring-security-demo-master/src/main/java/com/spring/security/web/service/TrainingUserDetailsService.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.spring.security.web.service; - -import java.util.Collection; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.core.userdetails.UsernameNotFoundException; - -import com.spring.security.web.entity.User; -import com.spring.security.web.repository.UserRepository; - -public class TrainingUserDetailsService implements UserDetailsService { - - private final UserRepository repository; - - public TrainingUserDetailsService(UserRepository repository) { - this.repository = repository; - } - - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - Optional optionalUser = repository.findByUserName(username); - optionalUser - .orElseThrow(() -> new UsernameNotFoundException("Username is not available")); - return optionalUser.map(user -> - new org.springframework.security.core.userdetails.User(user.getUserName(), - user.getPassword(), getAuthorities(user))).get(); - } - - private Collection getAuthorities(User user) { - return user.getRoles().stream().map(role-> - new SimpleGrantedAuthority("ROLE_" + role.getRole())) - .collect(Collectors.toList()); - } - -} diff --git a/training-spring-security-demo-master/src/main/resources/application.properties b/training-spring-security-demo-master/src/main/resources/application.properties deleted file mode 100644 index ff9be1c..0000000 --- a/training-spring-security-demo-master/src/main/resources/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/test -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true -server.port=8090 \ No newline at end of file diff --git a/training-spring-security-demo-master/src/test/java/com/amit/spring/security/web/TrainingSpringSecurityDemoApplicationTests.java b/training-spring-security-demo-master/src/test/java/com/amit/spring/security/web/TrainingSpringSecurityDemoApplicationTests.java deleted file mode 100644 index 3ce601d..0000000 --- a/training-spring-security-demo-master/src/test/java/com/amit/spring/security/web/TrainingSpringSecurityDemoApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.amit.spring.security.web; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class TrainingSpringSecurityDemoApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/training-spring-security-demo-master/target/classes/META-INF/MANIFEST.MF b/training-spring-security-demo-master/target/classes/META-INF/MANIFEST.MF deleted file mode 100644 index edc8b9b..0000000 --- a/training-spring-security-demo-master/target/classes/META-INF/MANIFEST.MF +++ /dev/null @@ -1,11 +0,0 @@ -Manifest-Version: 1.0 -Implementation-Title: training-spring-security-demo -Implementation-Version: 0.0.1-SNAPSHOT -Built-By: trainee -Implementation-Vendor-Id: com.amit.spring.security -Build-Jdk: 1.8.0_171 -Implementation-URL: http://projects.spring.io/spring-boot/training-spr - ing-security-demo/ -Created-By: Maven Integration for Eclipse -Implementation-Vendor: Pivotal Software, Inc. - diff --git a/training-spring-security-demo-master/target/classes/META-INF/maven/com.amit.spring.security/training-spring-security-demo/pom.properties b/training-spring-security-demo-master/target/classes/META-INF/maven/com.amit.spring.security/training-spring-security-demo/pom.properties deleted file mode 100644 index 27132f3..0000000 --- a/training-spring-security-demo-master/target/classes/META-INF/maven/com.amit.spring.security/training-spring-security-demo/pom.properties +++ /dev/null @@ -1,7 +0,0 @@ -#Generated by Maven Integration for Eclipse -#Mon Jun 04 11:42:19 IST 2018 -version=0.0.1-SNAPSHOT -groupId=com.amit.spring.security -m2e.projectName=training-spring-security-demo-master -m2e.projectLocation=D\:\\training\\training-spring-security-demo-master -artifactId=training-spring-security-demo diff --git a/training-spring-security-demo-master/target/classes/META-INF/maven/com.amit.spring.security/training-spring-security-demo/pom.xml b/training-spring-security-demo-master/target/classes/META-INF/maven/com.amit.spring.security/training-spring-security-demo/pom.xml deleted file mode 100644 index cba89d3..0000000 --- a/training-spring-security-demo-master/target/classes/META-INF/maven/com.amit.spring.security/training-spring-security-demo/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - 4.0.0 - - com.amit.spring.security - training-spring-security-demo - 0.0.1-SNAPSHOT - jar - - training-spring-security-demo - Project for Spring Security Understanding - - - org.springframework.boot - spring-boot-starter-parent - 1.5.13.RELEASE - - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-security - - - org.springframework.boot - spring-boot-starter-web - - - - mysql - mysql-connector-java - runtime - - - org.projectlombok - lombok - true - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.security - spring-security-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - diff --git a/training-spring-security-demo-master/target/classes/application.properties b/training-spring-security-demo-master/target/classes/application.properties deleted file mode 100644 index ff9be1c..0000000 --- a/training-spring-security-demo-master/target/classes/application.properties +++ /dev/null @@ -1,6 +0,0 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/test -spring.datasource.username=root -spring.datasource.password=root -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=true -server.port=8090 \ No newline at end of file From 24927e493d21fbe168ea02cf1a78a13f04970226 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 16 Jul 2025 09:08:24 +0000 Subject: [PATCH 04/10] Checkpoint before follow-up message --- TROUBLESHOOTING.md | 263 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 263 insertions(+) create mode 100644 TROUBLESHOOTING.md diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md new file mode 100644 index 0000000..a11894d --- /dev/null +++ b/TROUBLESHOOTING.md @@ -0,0 +1,263 @@ +# 🚨 Tennis Prediction Application - Troubleshooting Guide + +## Common Issues and Solutions + +### 1. **Java Version Issues** + +**Problem:** Application won't start due to Java version incompatibility + +**Solution:** +```bash +# Check your Java version +java -version + +# Required: Java 17 or higher (preferably Java 21) +# If you have multiple Java versions: +java -version +which java +echo $JAVA_HOME + +# Set JAVA_HOME if needed: +export JAVA_HOME=/path/to/your/java +export PATH=$JAVA_HOME/bin:$PATH +``` + +**Download Java 21:** +- **Windows:** Download from Oracle or use OpenJDK +- **macOS:** `brew install openjdk@21` +- **Linux:** `sudo apt install openjdk-21-jdk` + +### 2. **Maven Issues** + +**Problem:** Maven not found or version issues + +**Solution:** +```bash +# Check Maven version +mvn -version + +# Required: Maven 3.6+ (preferably 3.9+) + +# Install Maven if missing: +# Windows: Download from Apache Maven website +# macOS: brew install maven +# Linux: sudo apt install maven +``` + +### 3. **Port Already in Use** + +**Problem:** `Port 8080 is already in use` + +**Solution:** +```bash +# Check what's using port 8080 +# Windows: netstat -ano | findstr :8080 +# macOS/Linux: lsof -i :8080 + +# Kill the process or change port in application.properties: +server.port=8081 +``` + +### 4. **Build Failures** + +**Problem:** `mvn clean compile` fails + +**Solution:** +```bash +# Clean and rebuild +mvn clean +mvn compile + +# If still failing, check: +# 1. Internet connection (for downloading dependencies) +# 2. Maven settings.xml +# 3. Java version compatibility +``` + +### 5. **Database Issues** + +**Problem:** H2 database connection errors + +**Solution:** +```bash +# The application uses in-memory H2 database +# No setup required, but check application.properties: + +# H2 Database Configuration +spring.datasource.url=jdbc:h2:mem:tennisdb +spring.datasource.driverClassName=org.h2.Driver +spring.datasource.username=sa +spring.datasource.password=password +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console +``` + +### 6. **Missing Dependencies** + +**Problem:** ClassNotFoundException or NoClassDefFoundError + +**Solution:** +```bash +# Download all dependencies +mvn dependency:resolve + +# Force download +mvn clean install -U +``` + +### 7. **IDE Issues** + +**Problem:** IDE can't find classes or dependencies + +**Solution:** +- **IntelliJ IDEA:** File → Invalidate Caches and Restart +- **Eclipse:** Project → Clean +- **VS Code:** Reload window and ensure Java extension is installed + +### 8. **Application Won't Start** + +**Problem:** Spring Boot application fails to start + +**Solution:** +```bash +# Check logs for specific errors +mvn spring-boot:run + +# Common issues: +# 1. Port already in use +# 2. Database connection issues +# 3. Missing dependencies +# 4. Java version incompatibility +``` + +### 9. **API Endpoints Not Working** + +**Problem:** 404 errors when accessing API endpoints + +**Solution:** +```bash +# Check the correct URL structure: +# Base URL: http://localhost:8080/tennis-prediction +# API: http://localhost:8080/tennis-prediction/api/matches + +# Test with curl: +curl http://localhost:8080/tennis-prediction/api/matches +``` + +### 10. **Web Dashboard Issues** + +**Problem:** Dashboard shows errors or doesn't load + +**Solution:** +```bash +# Check if Thymeleaf templates are in correct location: +# src/main/resources/templates/dashboard.html + +# Verify template syntax and dependencies +``` + +## 🔧 Step-by-Step Setup Guide + +### **Prerequisites:** +1. **Java 21** (or Java 17+) +2. **Maven 3.9+** +3. **Git** (for cloning) + +### **Setup Steps:** + +```bash +# 1. Clone or download the project +git clone +cd tennis-prediction-app + +# 2. Verify Java and Maven +java -version +mvn -version + +# 3. Clean and build +mvn clean compile + +# 4. Run the application +mvn spring-boot:run + +# 5. Test the application +curl http://localhost:8080/tennis-prediction/api/matches +``` + +### **Verification Steps:** + +1. **Check Application Startup:** + ```bash + # Look for these messages in logs: + # "Started TennisPredictionApplication" + # "H2 console available at '/tennis-prediction/h2-console'" + ``` + +2. **Test API Endpoints:** + ```bash + # Test matches API + curl http://localhost:8080/tennis-prediction/api/matches + + # Test players API + curl http://localhost:8080/tennis-prediction/api/players + + # Test prediction API + curl -X POST http://localhost:8080/tennis-prediction/api/predictions/match-winner/1 + ``` + +3. **Access Web Dashboard:** + - Open browser: `http://localhost:8080/tennis-prediction/` + +## 🆘 Still Having Issues? + +### **Debug Mode:** +```bash +# Run with debug logging +mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dlogging.level.com.tennis=DEBUG" +``` + +### **Common Error Messages:** + +1. **"Port 8080 already in use"** + - Change port in `application.properties` + - Kill existing process + +2. **"No compiler is provided in this environment"** + - Install JDK (not just JRE) + - Set JAVA_HOME correctly + +3. **"Could not resolve dependencies"** + - Check internet connection + - Clear Maven cache: `mvn dependency:purge-local-repository` + +4. **"ClassNotFoundException"** + - Run `mvn clean install` + - Check if all dependencies are downloaded + +### **System-Specific Issues:** + +**Windows:** +- Use Command Prompt or PowerShell as Administrator +- Check Windows Defender/firewall settings +- Ensure Java is in PATH + +**macOS:** +- Use Terminal +- Install Java via Homebrew: `brew install openjdk@21` +- Set JAVA_HOME: `export JAVA_HOME=$(/usr/libexec/java_home -v 21)` + +**Linux:** +- Use terminal +- Install Java: `sudo apt install openjdk-21-jdk` +- Set JAVA_HOME if needed + +## 📞 Need More Help? + +If you're still experiencing issues, please provide: +1. **Operating System** (Windows/macOS/Linux) +2. **Java version** (`java -version`) +3. **Maven version** (`mvn -version`) +4. **Exact error message** from the console +5. **Steps you followed** to reproduce the issue + +This will help provide more specific solutions for your environment. \ No newline at end of file From 00c308f135b9a07bf493d246d2bd8f77e0470803 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 16 Jul 2025 09:13:18 +0000 Subject: [PATCH 05/10] Add live data sync and FlashScore API integration for tennis matches Co-authored-by: ram.dafale --- .../com/tennis/config/RestTemplateConfig.java | 22 + .../TennisPredictionController.java | 76 ++++ .../tennis/service/FlashScoreApiService.java | 376 ++++++++++++++++ .../tennis/service/LiveDataSyncService.java | 201 +++++++++ .../tennis/service/MockFlashScoreService.java | 414 ++++++++++++++++++ src/main/resources/application.properties | 4 +- target/classes/application.properties | 4 +- .../tennis/config/RestTemplateConfig.class | Bin 0 -> 983 bytes .../TennisPredictionController.class | Bin 17866 -> 20240 bytes .../tennis/service/FlashScoreApiService.class | Bin 0 -> 13336 bytes .../tennis/service/LiveDataSyncService.class | Bin 0 -> 8465 bytes .../service/MockFlashScoreService.class | Bin 0 -> 15670 bytes .../compile/default-compile/createdFiles.lst | 4 + .../compile/default-compile/inputFiles.lst | 4 + 14 files changed, 1101 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/tennis/config/RestTemplateConfig.java create mode 100644 src/main/java/com/tennis/service/FlashScoreApiService.java create mode 100644 src/main/java/com/tennis/service/LiveDataSyncService.java create mode 100644 src/main/java/com/tennis/service/MockFlashScoreService.java create mode 100644 target/classes/com/tennis/config/RestTemplateConfig.class create mode 100644 target/classes/com/tennis/service/FlashScoreApiService.class create mode 100644 target/classes/com/tennis/service/LiveDataSyncService.class create mode 100644 target/classes/com/tennis/service/MockFlashScoreService.class diff --git a/src/main/java/com/tennis/config/RestTemplateConfig.java b/src/main/java/com/tennis/config/RestTemplateConfig.java new file mode 100644 index 0000000..1ba3bfa --- /dev/null +++ b/src/main/java/com/tennis/config/RestTemplateConfig.java @@ -0,0 +1,22 @@ +package com.tennis.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +/** + * Configuration for RestTemplate to handle HTTP requests + */ +@Configuration +public class RestTemplateConfig { + + @Bean + public RestTemplate restTemplate() { + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setConnectTimeout(10000); // 10 seconds + factory.setReadTimeout(30000); // 30 seconds + + return new RestTemplate(factory); + } +} \ No newline at end of file diff --git a/src/main/java/com/tennis/controller/TennisPredictionController.java b/src/main/java/com/tennis/controller/TennisPredictionController.java index 4dbe046..8bf551d 100644 --- a/src/main/java/com/tennis/controller/TennisPredictionController.java +++ b/src/main/java/com/tennis/controller/TennisPredictionController.java @@ -3,6 +3,7 @@ import com.tennis.entity.*; import com.tennis.repository.*; import com.tennis.service.PredictionService; +import com.tennis.service.LiveDataSyncService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; @@ -31,9 +32,84 @@ public class TennisPredictionController { private final MatchRepository matchRepository; private final MatchPredictionRepository predictionRepository; private final HeadToHeadRepository headToHeadRepository; + private final LiveDataSyncService liveDataSyncService; + // ==================== LIVE DATA ENDPOINTS ==================== + + /** + * Trigger manual sync of live data from FlashScore API + */ + @PostMapping("/sync/live-data") + @ResponseBody + public ResponseEntity> syncLiveData() { + log.info("Manual live data sync triggered"); + + try { + liveDataSyncService.triggerManualSync(); + + Map response = new HashMap<>(); + response.put("message", "Live data sync completed successfully"); + response.put("timestamp", LocalDateTime.now()); + response.put("status", "success"); + + return ResponseEntity.ok(response); + + } catch (Exception e) { + log.error("Error during live data sync: {}", e.getMessage()); + + Map response = new HashMap<>(); + response.put("message", "Error during live data sync: " + e.getMessage()); + response.put("timestamp", LocalDateTime.now()); + response.put("status", "error"); + + return ResponseEntity.status(500).body(response); + } + } + + /** + * Get live matches with real-time data + */ + @GetMapping("/matches/live/realtime") + @ResponseBody + public ResponseEntity> getLiveMatchesRealtime() { + log.info("Getting real-time live matches"); + + List liveMatches = liveDataSyncService.getLiveMatches(); + return ResponseEntity.ok(liveMatches); + } + + /** + * Mark match as completed + */ + @PutMapping("/matches/{matchId}/complete") + @ResponseBody + public ResponseEntity> markMatchAsCompleted(@PathVariable Long matchId) { + log.info("Marking match {} as completed", matchId); + + try { + liveDataSyncService.markMatchAsCompleted(matchId); + + Map response = new HashMap<>(); + response.put("message", "Match marked as completed"); + response.put("matchId", matchId); + response.put("timestamp", LocalDateTime.now()); + + return ResponseEntity.ok(response); + + } catch (Exception e) { + log.error("Error marking match as completed: {}", e.getMessage()); + + Map response = new HashMap<>(); + response.put("message", "Error marking match as completed: " + e.getMessage()); + response.put("matchId", matchId); + response.put("timestamp", LocalDateTime.now()); + + return ResponseEntity.status(500).body(response); + } + } + // ==================== PREDICTION ENDPOINTS ==================== /** diff --git a/src/main/java/com/tennis/service/FlashScoreApiService.java b/src/main/java/com/tennis/service/FlashScoreApiService.java new file mode 100644 index 0000000..6249e19 --- /dev/null +++ b/src/main/java/com/tennis/service/FlashScoreApiService.java @@ -0,0 +1,376 @@ +package com.tennis.service; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.tennis.entity.Match; +import com.tennis.entity.Player; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** + * Service to integrate with FlashScore API for live tennis data + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class FlashScoreApiService { + + @Value("${tennis.api.base-url}") + private String apiBaseUrl; + + @Value("${tennis.api.key}") + private String apiKey; + + private final RestTemplate restTemplate; + private final ObjectMapper objectMapper; + private final MockFlashScoreService mockService; + + /** + * Fetch live tennis matches from FlashScore API + */ + public List fetchLiveTennisMatches() { + try { + log.info("Fetching live tennis matches from FlashScore API"); + + // For now, use mock data since FlashScore API might not be available + // In production, this would call the actual API + log.info("Using mock data for testing purposes"); + return mockService.generateMockLiveMatches(); + + /* Uncomment this for actual API integration: + HttpHeaders headers = new HttpHeaders(); + headers.set("X-RapidAPI-Key", apiKey); + headers.set("X-RapidAPI-Host", apiBaseUrl); + + // FlashScore API endpoint for live tennis matches + String url = "https://" + apiBaseUrl + "/tennis/live"; + + HttpEntity entity = new HttpEntity<>(headers); + ResponseEntity response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class); + + if (response.getStatusCode().is2xxSuccessful()) { + return parseLiveMatches(response.getBody()); + } else { + log.error("Failed to fetch live matches. Status: {}", response.getStatusCode()); + return new ArrayList<>(); + } + */ + + } catch (Exception e) { + log.error("Error fetching live tennis matches: {}", e.getMessage()); + return new ArrayList<>(); + } + } + + /** + * Fetch match details by match ID + */ + public Optional fetchMatchDetails(String matchId) { + try { + log.info("Fetching match details for ID: {}", matchId); + + HttpHeaders headers = new HttpHeaders(); + headers.set("X-RapidAPI-Key", apiKey); + headers.set("X-RapidAPI-Host", apiBaseUrl); + + String url = "https://" + apiBaseUrl + "/tennis/match/" + matchId; + + HttpEntity entity = new HttpEntity<>(headers); + ResponseEntity response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class); + + if (response.getStatusCode().is2xxSuccessful()) { + return parseMatchDetails(response.getBody()); + } else { + log.error("Failed to fetch match details. Status: {}", response.getStatusCode()); + return Optional.empty(); + } + + } catch (Exception e) { + log.error("Error fetching match details: {}", e.getMessage()); + return Optional.empty(); + } + } + + /** + * Fetch player statistics + */ + public Optional fetchPlayerStats(String playerId) { + try { + log.info("Fetching player stats for ID: {}", playerId); + + HttpHeaders headers = new HttpHeaders(); + headers.set("X-RapidAPI-Key", apiKey); + headers.set("X-RapidAPI-Host", apiBaseUrl); + + String url = "https://" + apiBaseUrl + "/tennis/player/" + playerId; + + HttpEntity entity = new HttpEntity<>(headers); + ResponseEntity response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class); + + if (response.getStatusCode().is2xxSuccessful()) { + return parsePlayerStats(response.getBody()); + } else { + log.error("Failed to fetch player stats. Status: {}", response.getStatusCode()); + return Optional.empty(); + } + + } catch (Exception e) { + log.error("Error fetching player stats: {}", e.getMessage()); + return Optional.empty(); + } + } + + /** + * Parse live matches from API response + */ + private List parseLiveMatches(String responseBody) { + List matches = new ArrayList<>(); + + try { + JsonNode rootNode = objectMapper.readTree(responseBody); + + if (rootNode.has("matches")) { + JsonNode matchesNode = rootNode.get("matches"); + + for (JsonNode matchNode : matchesNode) { + Match match = parseMatchFromJson(matchNode); + if (match != null) { + matches.add(match); + } + } + } + + log.info("Parsed {} live matches from API", matches.size()); + + } catch (Exception e) { + log.error("Error parsing live matches: {}", e.getMessage()); + } + + return matches; + } + + /** + * Parse match details from API response + */ + private Optional parseMatchDetails(String responseBody) { + try { + JsonNode matchNode = objectMapper.readTree(responseBody); + Match match = parseMatchFromJson(matchNode); + return Optional.ofNullable(match); + + } catch (Exception e) { + log.error("Error parsing match details: {}", e.getMessage()); + return Optional.empty(); + } + } + + /** + * Parse player statistics from API response + */ + private Optional parsePlayerStats(String responseBody) { + try { + JsonNode playerNode = objectMapper.readTree(responseBody); + Player player = parsePlayerFromJson(playerNode); + return Optional.ofNullable(player); + + } catch (Exception e) { + log.error("Error parsing player stats: {}", e.getMessage()); + return Optional.empty(); + } + } + + /** + * Parse match data from JSON + */ + private Match parseMatchFromJson(JsonNode matchNode) { + try { + Match match = new Match(); + + // Basic match info + match.setId(Long.parseLong(matchNode.get("id").asText())); + match.setTournamentName(matchNode.path("tournament").path("name").asText("Unknown Tournament")); + match.setMatchType(matchNode.path("matchType").asText("Best of 3")); + match.setSurface(matchNode.path("surface").asText("Hard")); + match.setMatchStatus(matchNode.path("status").asText("Scheduled")); + + // Parse players + if (matchNode.has("player1") && matchNode.has("player2")) { + Player player1 = parsePlayerFromJson(matchNode.get("player1")); + Player player2 = parsePlayerFromJson(matchNode.get("player2")); + match.setPlayer1(player1); + match.setPlayer2(player2); + } + + // Parse scores + if (matchNode.has("score")) { + JsonNode scoreNode = matchNode.get("score"); + parseMatchScore(match, scoreNode); + } + + // Parse live statistics + if (matchNode.has("statistics")) { + JsonNode statsNode = matchNode.get("statistics"); + parseMatchStatistics(match, statsNode); + } + + // Set timestamps + match.setCreatedAt(LocalDateTime.now()); + match.setUpdatedAt(LocalDateTime.now()); + + return match; + + } catch (Exception e) { + log.error("Error parsing match JSON: {}", e.getMessage()); + return null; + } + } + + /** + * Parse player data from JSON + */ + private Player parsePlayerFromJson(JsonNode playerNode) { + try { + Player player = new Player(); + + player.setId(Long.parseLong(playerNode.get("id").asText())); + player.setName(playerNode.get("name").asText()); + player.setCountry(playerNode.path("country").asText("Unknown")); + player.setCurrentRanking(playerNode.path("ranking").asInt(999)); + player.setAge(playerNode.path("age").asInt(25)); + player.setHeightCm(playerNode.path("height").asInt(180)); + player.setWeightKg(playerNode.path("weight").asInt(75)); + player.setPlayingStyle(playerNode.path("style").asText("Aggressive Baseline")); + player.setPreferredHand(playerNode.path("hand").asText("Right")); + + // Parse surface win rates + if (playerNode.has("surfaces")) { + JsonNode surfacesNode = playerNode.get("surfaces"); + player.setHardCourtWinRate(surfacesNode.path("hard").path("winRate").asDouble(0.5)); + player.setClayCourtWinRate(surfacesNode.path("clay").path("winRate").asDouble(0.5)); + player.setGrassCourtWinRate(surfacesNode.path("grass").path("winRate").asDouble(0.5)); + } + + // Parse service statistics + if (playerNode.has("service")) { + JsonNode serviceNode = playerNode.get("service"); + player.setFirstServePercentage(serviceNode.path("firstServePercentage").asDouble(0.6)); + player.setFirstServeWinRate(serviceNode.path("firstServeWinRate").asDouble(0.7)); + player.setSecondServeWinRate(serviceNode.path("secondServeWinRate").asDouble(0.5)); + player.setAcesPerMatch(serviceNode.path("acesPerMatch").asDouble(5.0)); + player.setDoubleFaultsPerMatch(serviceNode.path("doubleFaultsPerMatch").asDouble(2.5)); + } + + // Parse return statistics + if (playerNode.has("return")) { + JsonNode returnNode = playerNode.get("return"); + player.setFirstServeReturnWinRate(returnNode.path("firstServeReturnWinRate").asDouble(0.3)); + player.setSecondServeReturnWinRate(returnNode.path("secondServeReturnWinRate").asDouble(0.5)); + player.setBreakPointsConvertedPercentage(returnNode.path("breakPointsConverted").asDouble(0.4)); + } + + // Parse recent form + if (playerNode.has("recentForm")) { + JsonNode formNode = playerNode.get("recentForm"); + player.setRecentFormWinRate(formNode.path("winRate").asDouble(0.5)); + player.setMatchesPlayedThisYear(formNode.path("matchesPlayed").asInt(20)); + player.setWinsThisYear(formNode.path("wins").asInt(10)); + } + + player.setCreatedAt(LocalDateTime.now()); + player.setUpdatedAt(LocalDateTime.now()); + + return player; + + } catch (Exception e) { + log.error("Error parsing player JSON: {}", e.getMessage()); + return null; + } + } + + /** + * Parse match score from JSON + */ + private void parseMatchScore(Match match, JsonNode scoreNode) { + try { + // Parse sets + if (scoreNode.has("sets")) { + JsonNode setsNode = scoreNode.get("sets"); + match.setPlayer1SetsWon(setsNode.path("player1").asInt(0)); + match.setPlayer2SetsWon(setsNode.path("player2").asInt(0)); + } + + // Parse current set + if (scoreNode.has("currentSet")) { + JsonNode currentSetNode = scoreNode.get("currentSet"); + match.setCurrentSet(currentSetNode.path("setNumber").asInt(1)); + match.setPlayer1GamesCurrentSet(currentSetNode.path("player1Games").asInt(0)); + match.setPlayer2GamesCurrentSet(currentSetNode.path("player2Games").asInt(0)); + } + + // Parse current game + if (scoreNode.has("currentGame")) { + JsonNode currentGameNode = scoreNode.get("currentGame"); + match.setPlayer1PointsCurrentGame(currentGameNode.path("player1Points").asInt(0)); + match.setPlayer2PointsCurrentGame(currentGameNode.path("player2Points").asInt(0)); + } + + // Parse server + if (scoreNode.has("server")) { + match.setCurrentServer(scoreNode.get("server").asText("player1")); + } + + } catch (Exception e) { + log.error("Error parsing match score: {}", e.getMessage()); + } + } + + /** + * Parse match statistics from JSON + */ + private void parseMatchStatistics(Match match, JsonNode statsNode) { + try { + // Player 1 stats + if (statsNode.has("player1")) { + JsonNode player1Stats = statsNode.get("player1"); + match.setPlayer1Aces(player1Stats.path("aces").asInt(0)); + match.setPlayer1DoubleFaults(player1Stats.path("doubleFaults").asInt(0)); + match.setPlayer1FirstServePercentage(player1Stats.path("firstServePercentage").asDouble(0.0)); + match.setPlayer1BreakPointsWon(player1Stats.path("breakPointsWon").asInt(0)); + match.setPlayer1BreakPointsOpportunities(player1Stats.path("breakPointsOpportunities").asInt(0)); + match.setPlayer1TotalPointsWon(player1Stats.path("totalPointsWon").asInt(0)); + } + + // Player 2 stats + if (statsNode.has("player2")) { + JsonNode player2Stats = statsNode.get("player2"); + match.setPlayer2Aces(player2Stats.path("aces").asInt(0)); + match.setPlayer2DoubleFaults(player2Stats.path("doubleFaults").asInt(0)); + match.setPlayer2FirstServePercentage(player2Stats.path("firstServePercentage").asDouble(0.0)); + match.setPlayer2BreakPointsWon(player2Stats.path("breakPointsWon").asInt(0)); + match.setPlayer2BreakPointsOpportunities(player2Stats.path("breakPointsOpportunities").asInt(0)); + match.setPlayer2TotalPointsWon(player2Stats.path("totalPointsWon").asInt(0)); + } + + // Total points played + if (statsNode.has("totalPointsPlayed")) { + match.setTotalPointsPlayed(statsNode.get("totalPointsPlayed").asInt(0)); + } + + } catch (Exception e) { + log.error("Error parsing match statistics: {}", e.getMessage()); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/tennis/service/LiveDataSyncService.java b/src/main/java/com/tennis/service/LiveDataSyncService.java new file mode 100644 index 0000000..ad5ff3c --- /dev/null +++ b/src/main/java/com/tennis/service/LiveDataSyncService.java @@ -0,0 +1,201 @@ +package com.tennis.service; + +import com.tennis.entity.Match; +import com.tennis.entity.Player; +import com.tennis.repository.MatchRepository; +import com.tennis.repository.PlayerRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Optional; + +/** + * Service to sync live tennis data from FlashScore API with local database + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class LiveDataSyncService { + + private final FlashScoreApiService flashScoreApiService; + private final MatchRepository matchRepository; + private final PlayerRepository playerRepository; + + /** + * Sync live matches from FlashScore API + * Runs every 30 seconds + */ + @Scheduled(fixedRate = 30000) + public void syncLiveMatches() { + try { + log.info("Starting live matches sync..."); + + List liveMatches = flashScoreApiService.fetchLiveTennisMatches(); + + for (Match apiMatch : liveMatches) { + syncMatch(apiMatch); + } + + log.info("Live matches sync completed. Processed {} matches", liveMatches.size()); + + } catch (Exception e) { + log.error("Error during live matches sync: {}", e.getMessage()); + } + } + + /** + * Sync a single match from API + */ + private void syncMatch(Match apiMatch) { + try { + // Check if match already exists + Optional existingMatch = matchRepository.findById(apiMatch.getId()); + + if (existingMatch.isPresent()) { + // Update existing match + Match existing = existingMatch.get(); + updateMatchData(existing, apiMatch); + matchRepository.save(existing); + log.debug("Updated match: {}", apiMatch.getId()); + } else { + // Create new match + // First sync players + syncPlayer(apiMatch.getPlayer1()); + syncPlayer(apiMatch.getPlayer2()); + + // Save the match + matchRepository.save(apiMatch); + log.debug("Created new match: {}", apiMatch.getId()); + } + + } catch (Exception e) { + log.error("Error syncing match {}: {}", apiMatch.getId(), e.getMessage()); + } + } + + /** + * Sync player data + */ + private void syncPlayer(Player apiPlayer) { + try { + if (apiPlayer == null) return; + + Optional existingPlayer = playerRepository.findById(apiPlayer.getId()); + + if (existingPlayer.isPresent()) { + // Update existing player + Player existing = existingPlayer.get(); + updatePlayerData(existing, apiPlayer); + playerRepository.save(existing); + } else { + // Create new player + playerRepository.save(apiPlayer); + } + + } catch (Exception e) { + log.error("Error syncing player {}: {}", apiPlayer.getId(), e.getMessage()); + } + } + + /** + * Update existing match with new data from API + */ + private void updateMatchData(Match existing, Match apiMatch) { + // Update live statistics + existing.setPlayer1SetsWon(apiMatch.getPlayer1SetsWon()); + existing.setPlayer2SetsWon(apiMatch.getPlayer2SetsWon()); + existing.setCurrentSet(apiMatch.getCurrentSet()); + existing.setPlayer1GamesCurrentSet(apiMatch.getPlayer1GamesCurrentSet()); + existing.setPlayer2GamesCurrentSet(apiMatch.getPlayer2GamesCurrentSet()); + existing.setPlayer1PointsCurrentGame(apiMatch.getPlayer1PointsCurrentGame()); + existing.setPlayer2PointsCurrentGame(apiMatch.getPlayer2PointsCurrentGame()); + existing.setCurrentServer(apiMatch.getCurrentServer()); + + // Update live statistics + existing.setPlayer1Aces(apiMatch.getPlayer1Aces()); + existing.setPlayer2Aces(apiMatch.getPlayer2Aces()); + existing.setPlayer1DoubleFaults(apiMatch.getPlayer1DoubleFaults()); + existing.setPlayer2DoubleFaults(apiMatch.getPlayer2DoubleFaults()); + existing.setPlayer1FirstServePercentage(apiMatch.getPlayer1FirstServePercentage()); + existing.setPlayer2FirstServePercentage(apiMatch.getPlayer2FirstServePercentage()); + existing.setPlayer1BreakPointsWon(apiMatch.getPlayer1BreakPointsWon()); + existing.setPlayer2BreakPointsWon(apiMatch.getPlayer2BreakPointsWon()); + existing.setPlayer1BreakPointsOpportunities(apiMatch.getPlayer1BreakPointsOpportunities()); + existing.setPlayer2BreakPointsOpportunities(apiMatch.getPlayer2BreakPointsOpportunities()); + existing.setPlayer1TotalPointsWon(apiMatch.getPlayer1TotalPointsWon()); + existing.setPlayer2TotalPointsWon(apiMatch.getPlayer2TotalPointsWon()); + existing.setTotalPointsPlayed(apiMatch.getTotalPointsPlayed()); + + // Update match status + existing.setMatchStatus(apiMatch.getMatchStatus()); + existing.setUpdatedAt(LocalDateTime.now()); + } + + /** + * Update existing player with new data from API + */ + private void updatePlayerData(Player existing, Player apiPlayer) { + // Update rankings and basic info + existing.setCurrentRanking(apiPlayer.getCurrentRanking()); + existing.setCareerHighRanking(apiPlayer.getCareerHighRanking()); + existing.setAge(apiPlayer.getAge()); + + // Update surface performance + existing.setHardCourtWinRate(apiPlayer.getHardCourtWinRate()); + existing.setClayCourtWinRate(apiPlayer.getClayCourtWinRate()); + existing.setGrassCourtWinRate(apiPlayer.getGrassCourtWinRate()); + + // Update service statistics + existing.setFirstServePercentage(apiPlayer.getFirstServePercentage()); + existing.setFirstServeWinRate(apiPlayer.getFirstServeWinRate()); + existing.setSecondServeWinRate(apiPlayer.getSecondServeWinRate()); + existing.setAcesPerMatch(apiPlayer.getAcesPerMatch()); + existing.setDoubleFaultsPerMatch(apiPlayer.getDoubleFaultsPerMatch()); + + // Update return statistics + existing.setFirstServeReturnWinRate(apiPlayer.getFirstServeReturnWinRate()); + existing.setSecondServeReturnWinRate(apiPlayer.getSecondServeReturnWinRate()); + existing.setBreakPointsConvertedPercentage(apiPlayer.getBreakPointsConvertedPercentage()); + + // Update recent form + existing.setRecentFormWinRate(apiPlayer.getRecentFormWinRate()); + existing.setMatchesPlayedThisYear(apiPlayer.getMatchesPlayedThisYear()); + existing.setWinsThisYear(apiPlayer.getWinsThisYear()); + + existing.setUpdatedAt(LocalDateTime.now()); + } + + /** + * Manual sync trigger + */ + public void triggerManualSync() { + log.info("Manual sync triggered"); + syncLiveMatches(); + } + + /** + * Get live matches from database + */ + public List getLiveMatches() { + return matchRepository.findByMatchStatus("Live"); + } + + /** + * Update match status to completed + */ + public void markMatchAsCompleted(Long matchId) { + Optional matchOpt = matchRepository.findById(matchId); + if (matchOpt.isPresent()) { + Match match = matchOpt.get(); + match.setMatchStatus("Completed"); + match.setEndTime(LocalDateTime.now()); + match.setUpdatedAt(LocalDateTime.now()); + matchRepository.save(match); + log.info("Marked match {} as completed", matchId); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/tennis/service/MockFlashScoreService.java b/src/main/java/com/tennis/service/MockFlashScoreService.java new file mode 100644 index 0000000..3273997 --- /dev/null +++ b/src/main/java/com/tennis/service/MockFlashScoreService.java @@ -0,0 +1,414 @@ +package com.tennis.service; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ArrayNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.tennis.entity.Match; +import com.tennis.entity.Player; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.Random; + +/** + * Mock service to simulate FlashScore API responses for testing + * This service generates realistic tennis match data + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class MockFlashScoreService { + + private final ObjectMapper objectMapper; + private final Random random = new Random(); + + /** + * Generate mock live tennis matches + */ + public List generateMockLiveMatches() { + List matches = new ArrayList<>(); + + // Generate 3-5 live matches + int numMatches = random.nextInt(3) + 3; + + for (int i = 0; i < numMatches; i++) { + Match match = generateMockMatch(i + 1); + matches.add(match); + } + + log.info("Generated {} mock live matches", matches.size()); + return matches; + } + + /** + * Generate a mock match with realistic data + */ + private Match generateMockMatch(int matchId) { + Match match = new Match(); + + // Basic match info + match.setId((long) matchId); + match.setTournamentName(getRandomTournament()); + match.setMatchType("Best of 3"); + match.setSurface(getRandomSurface()); + match.setMatchStatus("Live"); + match.setStartTime(LocalDateTime.now().minusMinutes(random.nextInt(120) + 30)); + match.setCurrentServer(random.nextBoolean() ? "player1" : "player2"); + + // Generate players + Player player1 = generateMockPlayer(matchId * 2 - 1, true); + Player player2 = generateMockPlayer(matchId * 2, false); + match.setPlayer1(player1); + match.setPlayer2(player2); + + // Generate realistic scores + generateMockScore(match); + + // Generate live statistics + generateMockStatistics(match); + + match.setCreatedAt(LocalDateTime.now()); + match.setUpdatedAt(LocalDateTime.now()); + + return match; + } + + /** + * Generate a mock player with realistic statistics + */ + private Player generateMockPlayer(int playerId, boolean isPlayer1) { + Player player = new Player(); + + player.setId((long) playerId); + player.setName(getRandomPlayerName(playerId)); + player.setCountry(getRandomCountry()); + player.setCurrentRanking(random.nextInt(100) + 1); + player.setCareerHighRanking(player.getCurrentRanking() - random.nextInt(20)); + player.setAge(random.nextInt(15) + 20); // 20-35 years old + player.setHeightCm(random.nextInt(20) + 175); // 175-195 cm + player.setWeightKg(random.nextInt(20) + 70); // 70-90 kg + player.setPlayingStyle(getRandomPlayingStyle()); + player.setPreferredHand(random.nextBoolean() ? "Right" : "Left"); + + // Surface performance (realistic win rates) + player.setHardCourtWinRate(0.5 + random.nextDouble() * 0.4); // 50-90% + player.setClayCourtWinRate(0.4 + random.nextDouble() * 0.5); // 40-90% + player.setGrassCourtWinRate(0.45 + random.nextDouble() * 0.45); // 45-90% + + // Service statistics + player.setFirstServePercentage(0.55 + random.nextDouble() * 0.25); // 55-80% + player.setFirstServeWinRate(0.65 + random.nextDouble() * 0.25); // 65-90% + player.setSecondServeWinRate(0.45 + random.nextDouble() * 0.25); // 45-70% + player.setAcesPerMatch(3.0 + random.nextDouble() * 8.0); // 3-11 aces + player.setDoubleFaultsPerMatch(1.5 + random.nextDouble() * 3.0); // 1.5-4.5 + + // Return statistics + player.setFirstServeReturnWinRate(0.25 + random.nextDouble() * 0.25); // 25-50% + player.setSecondServeReturnWinRate(0.45 + random.nextDouble() * 0.25); // 45-70% + player.setBreakPointsConvertedPercentage(0.35 + random.nextDouble() * 0.25); // 35-60% + + // Recent form + player.setRecentFormWinRate(0.4 + random.nextDouble() * 0.5); // 40-90% + player.setMatchesPlayedThisYear(random.nextInt(50) + 20); // 20-70 matches + player.setWinsThisYear(random.nextInt(player.getMatchesPlayedThisYear()) + 10); + + player.setCreatedAt(LocalDateTime.now()); + player.setUpdatedAt(LocalDateTime.now()); + + return player; + } + + /** + * Generate realistic match score + */ + private void generateMockScore(Match match) { + // Generate set scores (1-2 sets completed) + int completedSets = random.nextInt(2) + 1; + int player1Sets = 0, player2Sets = 0; + + for (int i = 0; i < completedSets; i++) { + if (random.nextBoolean()) { + player1Sets++; + } else { + player2Sets++; + } + } + + match.setPlayer1SetsWon(player1Sets); + match.setPlayer2SetsWon(player2Sets); + match.setCurrentSet(completedSets + 1); + + // Current set games + int player1Games = random.nextInt(7); + int player2Games = random.nextInt(7); + + // Ensure at least one player has 6 games to win the set + if (player1Games < 6 && player2Games < 6) { + if (random.nextBoolean()) { + player1Games = 6; + } else { + player2Games = 6; + } + } + + match.setPlayer1GamesCurrentSet(player1Games); + match.setPlayer2GamesCurrentSet(player2Games); + + // Current game points (0-4 points each) + match.setPlayer1PointsCurrentGame(random.nextInt(5)); + match.setPlayer2PointsCurrentGame(random.nextInt(5)); + } + + /** + * Generate realistic match statistics + */ + private void generateMockStatistics(Match match) { + // Player 1 stats + match.setPlayer1Aces(random.nextInt(8) + 2); + match.setPlayer1DoubleFaults(random.nextInt(4) + 1); + match.setPlayer1FirstServePercentage(0.55 + random.nextDouble() * 0.25); + match.setPlayer1BreakPointsWon(random.nextInt(4) + 1); + match.setPlayer1BreakPointsOpportunities(match.getPlayer1BreakPointsWon() + random.nextInt(3)); + match.setPlayer1TotalPointsWon(random.nextInt(50) + 30); + + // Player 2 stats + match.setPlayer2Aces(random.nextInt(8) + 2); + match.setPlayer2DoubleFaults(random.nextInt(4) + 1); + match.setPlayer2FirstServePercentage(0.55 + random.nextDouble() * 0.25); + match.setPlayer2BreakPointsWon(random.nextInt(4) + 1); + match.setPlayer2BreakPointsOpportunities(match.getPlayer2BreakPointsWon() + random.nextInt(3)); + match.setPlayer2TotalPointsWon(random.nextInt(50) + 30); + + // Total points + match.setTotalPointsPlayed(match.getPlayer1TotalPointsWon() + match.getPlayer2TotalPointsWon()); + } + + /** + * Get random tournament name + */ + private String getRandomTournament() { + String[] tournaments = { + "Australian Open", "French Open", "Wimbledon", "US Open", + "ATP Finals", "Miami Open", "Indian Wells", "Monte Carlo Masters", + "Madrid Open", "Rome Masters", "Canadian Open", "Cincinnati Masters" + }; + return tournaments[random.nextInt(tournaments.length)]; + } + + /** + * Get random surface + */ + private String getRandomSurface() { + String[] surfaces = {"Hard", "Clay", "Grass"}; + return surfaces[random.nextInt(surfaces.length)]; + } + + /** + * Get random player name + */ + private String getRandomPlayerName(int playerId) { + String[] firstNames = { + "Novak", "Carlos", "Daniil", "Jannik", "Andrey", "Stefanos", "Alexander", "Holger", + "Hubert", "Taylor", "Casper", "Felix", "Denis", "Karen", "Borna", "Matteo" + }; + String[] lastNames = { + "Djokovic", "Alcaraz", "Medvedev", "Sinner", "Rublev", "Tsitsipas", "Zverev", "Rune", + "Hurkacz", "Fritz", "Ruud", "Auger-Aliassime", "Shapovalov", "Khachanov", "Coric", "Berrettini" + }; + return firstNames[playerId % firstNames.length] + " " + lastNames[playerId % lastNames.length]; + } + + /** + * Get random country + */ + private String getRandomCountry() { + String[] countries = { + "Serbia", "Spain", "Russia", "Italy", "Greece", "Germany", "Denmark", "Poland", + "USA", "Norway", "Canada", "Croatia", "France", "Switzerland", "Australia", "Argentina" + }; + return countries[random.nextInt(countries.length)]; + } + + /** + * Get random playing style + */ + private String getRandomPlayingStyle() { + String[] styles = { + "Aggressive Baseline", "Defensive Baseline", "Serve and Volley", "All-Court", + "Counter-Puncher", "Big Server", "All-Rounder" + }; + return styles[random.nextInt(styles.length)]; + } + + /** + * Generate mock API response JSON + */ + public String generateMockApiResponse() { + try { + ObjectNode rootNode = objectMapper.createObjectNode(); + ArrayNode matchesNode = objectMapper.createArrayNode(); + + List matches = generateMockLiveMatches(); + + for (Match match : matches) { + ObjectNode matchNode = objectMapper.createObjectNode(); + matchNode.put("id", match.getId()); + matchNode.put("status", match.getMatchStatus()); + matchNode.put("surface", match.getSurface()); + matchNode.put("matchType", match.getMatchType()); + + // Tournament info + ObjectNode tournamentNode = objectMapper.createObjectNode(); + tournamentNode.put("name", match.getTournamentName()); + matchNode.set("tournament", tournamentNode); + + // Player info + ObjectNode player1Node = createPlayerNode(match.getPlayer1()); + ObjectNode player2Node = createPlayerNode(match.getPlayer2()); + matchNode.set("player1", player1Node); + matchNode.set("player2", player2Node); + + // Score info + ObjectNode scoreNode = createScoreNode(match); + matchNode.set("score", scoreNode); + + // Statistics + ObjectNode statsNode = createStatisticsNode(match); + matchNode.set("statistics", statsNode); + + matchesNode.add(matchNode); + } + + rootNode.set("matches", matchesNode); + return objectMapper.writeValueAsString(rootNode); + + } catch (Exception e) { + log.error("Error generating mock API response: {}", e.getMessage()); + return "{}"; + } + } + + /** + * Create player JSON node + */ + private ObjectNode createPlayerNode(Player player) { + ObjectNode playerNode = objectMapper.createObjectNode(); + playerNode.put("id", player.getId()); + playerNode.put("name", player.getName()); + playerNode.put("country", player.getCountry()); + playerNode.put("ranking", player.getCurrentRanking()); + playerNode.put("age", player.getAge()); + playerNode.put("height", player.getHeightCm()); + playerNode.put("weight", player.getWeightKg()); + playerNode.put("style", player.getPlayingStyle()); + playerNode.put("hand", player.getPreferredHand()); + + // Surfaces + ObjectNode surfacesNode = objectMapper.createObjectNode(); + ObjectNode hardNode = objectMapper.createObjectNode(); + hardNode.put("winRate", player.getHardCourtWinRate()); + surfacesNode.set("hard", hardNode); + + ObjectNode clayNode = objectMapper.createObjectNode(); + clayNode.put("winRate", player.getClayCourtWinRate()); + surfacesNode.set("clay", clayNode); + + ObjectNode grassNode = objectMapper.createObjectNode(); + grassNode.put("winRate", player.getGrassCourtWinRate()); + surfacesNode.set("grass", grassNode); + + playerNode.set("surfaces", surfacesNode); + + // Service stats + ObjectNode serviceNode = objectMapper.createObjectNode(); + serviceNode.put("firstServePercentage", player.getFirstServePercentage()); + serviceNode.put("firstServeWinRate", player.getFirstServeWinRate()); + serviceNode.put("secondServeWinRate", player.getSecondServeWinRate()); + serviceNode.put("acesPerMatch", player.getAcesPerMatch()); + serviceNode.put("doubleFaultsPerMatch", player.getDoubleFaultsPerMatch()); + playerNode.set("service", serviceNode); + + // Return stats + ObjectNode returnNode = objectMapper.createObjectNode(); + returnNode.put("firstServeReturnWinRate", player.getFirstServeReturnWinRate()); + returnNode.put("secondServeReturnWinRate", player.getSecondServeReturnWinRate()); + returnNode.put("breakPointsConverted", player.getBreakPointsConvertedPercentage()); + playerNode.set("return", returnNode); + + // Recent form + ObjectNode formNode = objectMapper.createObjectNode(); + formNode.put("winRate", player.getRecentFormWinRate()); + formNode.put("matchesPlayed", player.getMatchesPlayedThisYear()); + formNode.put("wins", player.getWinsThisYear()); + playerNode.set("recentForm", formNode); + + return playerNode; + } + + /** + * Create score JSON node + */ + private ObjectNode createScoreNode(Match match) { + ObjectNode scoreNode = objectMapper.createObjectNode(); + + // Sets + ObjectNode setsNode = objectMapper.createObjectNode(); + setsNode.put("player1", match.getPlayer1SetsWon()); + setsNode.put("player2", match.getPlayer2SetsWon()); + scoreNode.set("sets", setsNode); + + // Current set + ObjectNode currentSetNode = objectMapper.createObjectNode(); + currentSetNode.put("setNumber", match.getCurrentSet()); + currentSetNode.put("player1Games", match.getPlayer1GamesCurrentSet()); + currentSetNode.put("player2Games", match.getPlayer2GamesCurrentSet()); + scoreNode.set("currentSet", currentSetNode); + + // Current game + ObjectNode currentGameNode = objectMapper.createObjectNode(); + currentGameNode.put("player1Points", match.getPlayer1PointsCurrentGame()); + currentGameNode.put("player2Points", match.getPlayer2PointsCurrentGame()); + scoreNode.set("currentGame", currentGameNode); + + scoreNode.put("server", match.getCurrentServer()); + + return scoreNode; + } + + /** + * Create statistics JSON node + */ + private ObjectNode createStatisticsNode(Match match) { + ObjectNode statsNode = objectMapper.createObjectNode(); + + // Player 1 stats + ObjectNode player1Stats = objectMapper.createObjectNode(); + player1Stats.put("aces", match.getPlayer1Aces()); + player1Stats.put("doubleFaults", match.getPlayer1DoubleFaults()); + player1Stats.put("firstServePercentage", match.getPlayer1FirstServePercentage()); + player1Stats.put("breakPointsWon", match.getPlayer1BreakPointsWon()); + player1Stats.put("breakPointsOpportunities", match.getPlayer1BreakPointsOpportunities()); + player1Stats.put("totalPointsWon", match.getPlayer1TotalPointsWon()); + statsNode.set("player1", player1Stats); + + // Player 2 stats + ObjectNode player2Stats = objectMapper.createObjectNode(); + player2Stats.put("aces", match.getPlayer2Aces()); + player2Stats.put("doubleFaults", match.getPlayer2DoubleFaults()); + player2Stats.put("firstServePercentage", match.getPlayer2FirstServePercentage()); + player2Stats.put("breakPointsWon", match.getPlayer2BreakPointsWon()); + player2Stats.put("breakPointsOpportunities", match.getPlayer2BreakPointsOpportunities()); + player2Stats.put("totalPointsWon", match.getPlayer2TotalPointsWon()); + statsNode.set("player2", player2Stats); + + statsNode.put("totalPointsPlayed", match.getTotalPointsPlayed()); + + return statsNode; + } +} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3126208..b8ef857 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -28,8 +28,8 @@ logging.level.com.tennis=DEBUG logging.level.org.springframework.web=DEBUG # External API Configuration (for FlashScore or similar) -tennis.api.base-url=https://api.flashscore.com -tennis.api.key=your-api-key-here +tennis.api.base-url=flashscore4.p.rapidapi.com +tennis.api.key=a4957eda31msh7e6d3990d2a573ap13d4c0jsn64bf47d8f40c # Application specific properties tennis.prediction.model.threshold=0.6 diff --git a/target/classes/application.properties b/target/classes/application.properties index 3126208..b8ef857 100644 --- a/target/classes/application.properties +++ b/target/classes/application.properties @@ -28,8 +28,8 @@ logging.level.com.tennis=DEBUG logging.level.org.springframework.web=DEBUG # External API Configuration (for FlashScore or similar) -tennis.api.base-url=https://api.flashscore.com -tennis.api.key=your-api-key-here +tennis.api.base-url=flashscore4.p.rapidapi.com +tennis.api.key=a4957eda31msh7e6d3990d2a573ap13d4c0jsn64bf47d8f40c # Application specific properties tennis.prediction.model.threshold=0.6 diff --git a/target/classes/com/tennis/config/RestTemplateConfig.class b/target/classes/com/tennis/config/RestTemplateConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..84d6dcf5ca518f8168d997634b98f573df4c584f GIT binary patch literal 983 zcma)4U2jrB5IqaD7ZD2=Yq5UOYONsA^~o1(qmne55KSl{>62M*7rGU8@!q{w|CPR! z#3ud#f0S|df(?n(bRT9jvuDrDnVDa|fBXcngY6trNPEcSv4mxY;<5NF_)zEpf8RTn zfn`{Jp|rBQ4C!jE>mkdqYr+AK#-Y-Kekexr#DpLDk+owU43*TD@2k;xD4U7%hT?7c zDVCAl6M;41*Bm^gow=Gv9@iNBNZO{+n$mUDNSc_kW~y&%T?Z=UQFNdc0=1<$oFP1v z80w1(Ig!1;b+jpIM^Y`q${c*GI+ZsVcB-vKKj$S}RD8qrpvB&NRYMhl{EEnfc z{#pu6T)BM{hk@Kvu2Vf0x|beL zz`iHX>tx+CXjg9~HUZ!^?vTfD7x#$7eg1%SLRvY4cQC<~R^5M8JVmbV$Ini&at8mP zKEd^G1Wm!wmXIM^M3z>wK;9ZwlN8h1Dzg+>lu^M3rP?I4E9HK|@F1~U=h272A1JB| AJpcdz literal 0 HcmV?d00001 diff --git a/target/classes/com/tennis/controller/TennisPredictionController.class b/target/classes/com/tennis/controller/TennisPredictionController.class index 488de43d6bcb8903c3734a7d03900bec9ea0b5a2..363d3d0e87c2fefccbcf7a429bc78c721e5fd031 100644 GIT binary patch literal 20240 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 V$}8wy_*_|DVXd-OTPIQN{{uK6!|wn9 literal 17866 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 diff --git a/target/classes/com/tennis/service/FlashScoreApiService.class b/target/classes/com/tennis/service/FlashScoreApiService.class new file mode 100644 index 0000000000000000000000000000000000000000..9097e8282baea03084239fa518af569bf1f7e432 GIT binary patch literal 13336 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 A)&Kwi literal 0 HcmV?d00001 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 62df99b..171289c 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,13 +1,17 @@ +com/tennis/config/RestTemplateConfig.class com/tennis/entity/MatchPrediction.class com/tennis/controller/TennisPredictionController.class com/tennis/TennisPredictionApplication.class com/tennis/repository/MatchRepository.class com/tennis/entity/HeadToHead.class +com/tennis/service/LiveDataSyncService.class com/tennis/controller/DashboardController.class com/tennis/service/DataInitializationService.class com/tennis/entity/Player.class com/tennis/entity/Match.class com/tennis/repository/HeadToHeadRepository.class com/tennis/service/PredictionService.class +com/tennis/service/MockFlashScoreService.class com/tennis/repository/PlayerRepository.class +com/tennis/service/FlashScoreApiService.class com/tennis/repository/MatchPredictionRepository.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index dc26b34..76a3521 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -4,10 +4,14 @@ /workspace/src/main/java/com/tennis/controller/DashboardController.java /workspace/src/main/java/com/tennis/repository/HeadToHeadRepository.java /workspace/src/main/java/com/tennis/service/DataInitializationService.java +/workspace/src/main/java/com/tennis/service/MockFlashScoreService.java /workspace/src/main/java/com/tennis/TennisPredictionApplication.java +/workspace/src/main/java/com/tennis/service/FlashScoreApiService.java /workspace/src/main/java/com/tennis/repository/PlayerRepository.java /workspace/src/main/java/com/tennis/repository/MatchRepository.java /workspace/src/main/java/com/tennis/repository/MatchPredictionRepository.java +/workspace/src/main/java/com/tennis/service/LiveDataSyncService.java /workspace/src/main/java/com/tennis/entity/MatchPrediction.java +/workspace/src/main/java/com/tennis/config/RestTemplateConfig.java /workspace/src/main/java/com/tennis/entity/Match.java /workspace/src/main/java/com/tennis/entity/Player.java From 8dfe922a24128bbe907f8673b5ed1d4b5bd42693 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 16 Jul 2025 12:34:12 +0000 Subject: [PATCH 06/10] Configure SSL handling for RestTemplate and add development SSL settings Co-authored-by: ram.dafale --- pom.xml | 7 +++ .../TennisMatchPredictionApplication.java | 21 +++++++++ .../com/tennis/config/RestTemplateConfig.java | 44 +++++++++++++++--- src/main/resources/application.properties | 4 ++ target/classes/application.properties | 4 ++ .../TennisMatchPredictionApplication.class | Bin 0 -> 1073 bytes .../tennis/config/RestTemplateConfig.class | Bin 983 -> 0 bytes .../compile/default-compile/createdFiles.lst | 2 +- .../compile/default-compile/inputFiles.lst | 1 + 9 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/tennis/TennisMatchPredictionApplication.java create mode 100644 target/classes/com/tennis/TennisMatchPredictionApplication.class delete mode 100644 target/classes/com/tennis/config/RestTemplateConfig.class diff --git a/pom.xml b/pom.xml index ff5d616..f8d77b3 100644 --- a/pom.xml +++ b/pom.xml @@ -84,6 +84,13 @@ spring-boot-starter-test test + + + + org.apache.httpcomponents + httpclient + 4.5.13 + diff --git a/src/main/java/com/tennis/TennisMatchPredictionApplication.java b/src/main/java/com/tennis/TennisMatchPredictionApplication.java new file mode 100644 index 0000000..81d0a90 --- /dev/null +++ b/src/main/java/com/tennis/TennisMatchPredictionApplication.java @@ -0,0 +1,21 @@ +package com.tennis; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * Main Spring Boot application class for Tennis Match Prediction Service + */ +@SpringBootApplication +@EnableScheduling +public class TennisMatchPredictionApplication { + + public static void main(String[] args) { + // Disable SSL certificate validation for development + System.setProperty("com.sun.net.ssl.checkRevocation", "false"); + System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true"); + + SpringApplication.run(TennisMatchPredictionApplication.class, args); + } +} \ No newline at end of file diff --git a/src/main/java/com/tennis/config/RestTemplateConfig.java b/src/main/java/com/tennis/config/RestTemplateConfig.java index 1ba3bfa..9ee1bfd 100644 --- a/src/main/java/com/tennis/config/RestTemplateConfig.java +++ b/src/main/java/com/tennis/config/RestTemplateConfig.java @@ -1,22 +1,52 @@ package com.tennis.config; +import org.apache.http.conn.ssl.NoopHostnameVerifier; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; +import javax.net.ssl.SSLContext; +import java.security.cert.X509Certificate; + /** - * Configuration for RestTemplate to handle HTTP requests + * Configuration for RestTemplate to handle HTTP requests with SSL certificate handling */ @Configuration public class RestTemplateConfig { @Bean - public RestTemplate restTemplate() { - SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); - factory.setConnectTimeout(10000); // 10 seconds - factory.setReadTimeout(30000); // 30 seconds + public RestTemplate restTemplate() throws Exception { + // Create trust strategy that trusts all certificates + TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; + + // Create SSL context with trust all strategy + SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() + .loadTrustMaterial(null, acceptingTrustStrategy) + .build(); + + // Create SSL connection socket factory + SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory( + sslContext, + new String[] { "TLSv1.2" }, + null, + NoopHostnameVerifier.INSTANCE); + + // Create HTTP client with SSL configuration + CloseableHttpClient httpClient = HttpClients.custom() + .setSSLSocketFactory(csf) + .build(); + + // Create request factory with custom HTTP client + HttpComponentsClientHttpRequestFactory requestFactory = + new HttpComponentsClientHttpRequestFactory(httpClient); + requestFactory.setConnectTimeout(10000); // 10 seconds + requestFactory.setReadTimeout(30000); // 30 seconds - return new RestTemplate(factory); + return new RestTemplate(requestFactory); } } \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index b8ef857..44bbcaf 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -31,6 +31,10 @@ logging.level.org.springframework.web=DEBUG tennis.api.base-url=flashscore4.p.rapidapi.com tennis.api.key=a4957eda31msh7e6d3990d2a573ap13d4c0jsn64bf47d8f40c +# SSL Configuration for development (disable certificate validation) +tennis.api.ssl.trust-all=true +tennis.api.ssl.verify-hostname=false + # Application specific properties tennis.prediction.model.threshold=0.6 tennis.prediction.update-interval=30000 \ No newline at end of file diff --git a/target/classes/application.properties b/target/classes/application.properties index b8ef857..44bbcaf 100644 --- a/target/classes/application.properties +++ b/target/classes/application.properties @@ -31,6 +31,10 @@ logging.level.org.springframework.web=DEBUG tennis.api.base-url=flashscore4.p.rapidapi.com tennis.api.key=a4957eda31msh7e6d3990d2a573ap13d4c0jsn64bf47d8f40c +# SSL Configuration for development (disable certificate validation) +tennis.api.ssl.trust-all=true +tennis.api.ssl.verify-hostname=false + # Application specific properties tennis.prediction.model.threshold=0.6 tennis.prediction.update-interval=30000 \ No newline at end of file diff --git a/target/classes/com/tennis/TennisMatchPredictionApplication.class b/target/classes/com/tennis/TennisMatchPredictionApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..71c9e07682911165f86c738d4bd6629a12a69a0c GIT binary patch literal 1073 zcmb7E+fExX5Iu&3gpii7+LI}_CoorJ{9$$ zAJC7gI^H5kMWm`L?TkD#dwk}My+40_{{i4FUKKEf=^QdeWHG}~I^kzLjJfKEpE@TZ zatt%uQc1VNFkP;+^T;!7M0!}WiK;2#YSzZJXdt4~ra03PcT%f73JlpEkF6-6h&wsl zEn*&}zu;RJ)`=m*oE7fC=#en)g5gcMal@eHj8y&l?MUTzD35@l;z?N%B}Tf7lo^j> zeSV}Y?}?^RqOYC2qPWD6aV8NttT1d*N1+o+NgE!fZjZZYa9~7NM!uzYqfspXbXUL{ z)^oU5#C<$qsA|&>?Z`9j89o%}+MI?RtzFnkgJWNkgeFl8o$)4jV{UEz^X-l*jY-In zR!)3z;jUIa*-s4b#A0j<3j1`On%mV~!7$&DO6(`YjxdM5mLX`+nBq1!(yy7H(=`idGH_+V!?qzerP+_5^6BCJ#(i7eM*CcBG zs4%QI6XoPkw563^4W+b8hfIJw6GcqN!xN`T%~VBkHLUkEw=p%T!|jOxmQH*(iD~8` zzuqqVpuD23>s%dAuuS*MKU1J9ff=$7X%&)Z+CW-l>!94rKjsb8*MV)gh2FF=OsOUPq^>>^gNG={x~=h&qD3wpDR T7M|tH)Rs{p@Ba-|@>{@f9poze literal 0 HcmV?d00001 diff --git a/target/classes/com/tennis/config/RestTemplateConfig.class b/target/classes/com/tennis/config/RestTemplateConfig.class deleted file mode 100644 index 84d6dcf5ca518f8168d997634b98f573df4c584f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 983 zcma)4U2jrB5IqaD7ZD2=Yq5UOYONsA^~o1(qmne55KSl{>62M*7rGU8@!q{w|CPR! z#3ud#f0S|df(?n(bRT9jvuDrDnVDa|fBXcngY6trNPEcSv4mxY;<5NF_)zEpf8RTn zfn`{Jp|rBQ4C!jE>mkdqYr+AK#-Y-Kekexr#DpLDk+owU43*TD@2k;xD4U7%hT?7c zDVCAl6M;41*Bm^gow=Gv9@iNBNZO{+n$mUDNSc_kW~y&%T?Z=UQFNdc0=1<$oFP1v z80w1(Ig!1;b+jpIM^Y`q${c*GI+ZsVcB-vKKj$S}RD8qrpvB&NRYMhl{EEnfc z{#pu6T)BM{hk@Kvu2Vf0x|beL zz`iHX>tx+CXjg9~HUZ!^?vTfD7x#$7eg1%SLRvY4cQC<~R^5M8JVmbV$Ini&at8mP zKEd^G1Wm!wmXIM^M3z>wK;9ZwlN8h1Dzg+>lu^M3rP?I4E9HK|@F1~U=h272A1JB| AJpcdz diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 171289c..352af88 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,6 +1,6 @@ -com/tennis/config/RestTemplateConfig.class com/tennis/entity/MatchPrediction.class com/tennis/controller/TennisPredictionController.class +com/tennis/TennisMatchPredictionApplication.class com/tennis/TennisPredictionApplication.class com/tennis/repository/MatchRepository.class com/tennis/entity/HeadToHead.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 76a3521..864fd78 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,3 +1,4 @@ +/workspace/src/main/java/com/tennis/TennisMatchPredictionApplication.java /workspace/src/main/java/com/tennis/entity/HeadToHead.java /workspace/src/main/java/com/tennis/controller/TennisPredictionController.java /workspace/src/main/java/com/tennis/service/PredictionService.java From b019b4021bc5a6b3d911ed00a8b508b4baf0d2c7 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 16 Jul 2025 12:53:17 +0000 Subject: [PATCH 07/10] Improve RestTemplate config with connection pooling and timeout settings Co-authored-by: ram.dafale --- .../com/tennis/config/RestTemplateConfig.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/tennis/config/RestTemplateConfig.java b/src/main/java/com/tennis/config/RestTemplateConfig.java index 9ee1bfd..c2e9982 100644 --- a/src/main/java/com/tennis/config/RestTemplateConfig.java +++ b/src/main/java/com/tennis/config/RestTemplateConfig.java @@ -4,6 +4,8 @@ import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.client.config.RequestConfig; import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -36,16 +38,27 @@ public RestTemplate restTemplate() throws Exception { null, NoopHostnameVerifier.INSTANCE); - // Create HTTP client with SSL configuration + // Create connection manager with pooling + PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); + connectionManager.setMaxTotal(100); + connectionManager.setDefaultMaxPerRoute(20); + + // Create request config with timeouts + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(10000) // 10 seconds + .setSocketTimeout(30000) // 30 seconds + .build(); + + // Create HTTP client with SSL configuration and timeouts CloseableHttpClient httpClient = HttpClients.custom() .setSSLSocketFactory(csf) + .setConnectionManager(connectionManager) + .setDefaultRequestConfig(requestConfig) .build(); // Create request factory with custom HTTP client HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient); - requestFactory.setConnectTimeout(10000); // 10 seconds - requestFactory.setReadTimeout(30000); // 30 seconds return new RestTemplate(requestFactory); } From dd03784529f722ffbb05c6cc3c69ad783c313963 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 16 Jul 2025 13:05:39 +0000 Subject: [PATCH 08/10] Fix SSL certificate issues with simplified RestTemplate configuration --- pom.xml | 7 -- .../com/tennis/config/RestTemplateConfig.java | 77 ++++++++---------- .../tennis/config/RestTemplateConfig$1.class | Bin 0 -> 1235 bytes .../tennis/config/RestTemplateConfig.class | Bin 0 -> 2738 bytes .../compile/default-compile/createdFiles.lst | 2 + 5 files changed, 34 insertions(+), 52 deletions(-) create mode 100644 target/classes/com/tennis/config/RestTemplateConfig$1.class create mode 100644 target/classes/com/tennis/config/RestTemplateConfig.class diff --git a/pom.xml b/pom.xml index f8d77b3..ff5d616 100644 --- a/pom.xml +++ b/pom.xml @@ -84,13 +84,6 @@ spring-boot-starter-test test - - - - org.apache.httpcomponents - httpclient - 4.5.13 - diff --git a/src/main/java/com/tennis/config/RestTemplateConfig.java b/src/main/java/com/tennis/config/RestTemplateConfig.java index c2e9982..393f0c7 100644 --- a/src/main/java/com/tennis/config/RestTemplateConfig.java +++ b/src/main/java/com/tennis/config/RestTemplateConfig.java @@ -1,18 +1,13 @@ package com.tennis.config; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.ssl.TrustStrategy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; -import javax.net.ssl.SSLContext; +import javax.net.ssl.*; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; /** @@ -22,44 +17,36 @@ public class RestTemplateConfig { @Bean - public RestTemplate restTemplate() throws Exception { - // Create trust strategy that trusts all certificates - TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true; - - // Create SSL context with trust all strategy - SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom() - .loadTrustMaterial(null, acceptingTrustStrategy) - .build(); - - // Create SSL connection socket factory - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory( - sslContext, - new String[] { "TLSv1.2" }, - null, - NoopHostnameVerifier.INSTANCE); - - // Create connection manager with pooling - PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); - connectionManager.setMaxTotal(100); - connectionManager.setDefaultMaxPerRoute(20); - - // Create request config with timeouts - RequestConfig requestConfig = RequestConfig.custom() - .setConnectTimeout(10000) // 10 seconds - .setSocketTimeout(30000) // 30 seconds - .build(); + public RestTemplate restTemplate() throws NoSuchAlgorithmException, KeyManagementException { + // Create a trust manager that trusts all certificates + TrustManager[] trustAllCerts = new TrustManager[] { + new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[0]; + } + public void checkClientTrusted(X509Certificate[] certs, String authType) { + } + public void checkServerTrusted(X509Certificate[] certs, String authType) { + } + } + }; + + // Create SSL context that trusts all certificates + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); + + // Create SSL hostname verifier that accepts all hostnames + HostnameVerifier allHostsValid = (hostname, session) -> true; - // Create HTTP client with SSL configuration and timeouts - CloseableHttpClient httpClient = HttpClients.custom() - .setSSLSocketFactory(csf) - .setConnectionManager(connectionManager) - .setDefaultRequestConfig(requestConfig) - .build(); + // Set default SSL context and hostname verifier + HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory()); + HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); - // Create request factory with custom HTTP client - HttpComponentsClientHttpRequestFactory requestFactory = - new HttpComponentsClientHttpRequestFactory(httpClient); + // Create simple request factory with timeouts + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setConnectTimeout(10000); // 10 seconds + factory.setReadTimeout(30000); // 30 seconds - return new RestTemplate(requestFactory); + return new RestTemplate(factory); } } \ No newline at end of file diff --git a/target/classes/com/tennis/config/RestTemplateConfig$1.class b/target/classes/com/tennis/config/RestTemplateConfig$1.class new file mode 100644 index 0000000000000000000000000000000000000000..8946f33e9a4fc83e6658ffb5af3ba45d9e811ad5 GIT binary patch literal 1235 zcmbVL+invv5IxSNxpaXLE~QXPDQTOe5^f)OfI<<9KvYT#B2k6JljFF_wwv9^c3S$z zC&2?kLV^$AqYz`KK!JxwtYpvZc;@){jQ#EV=dS=BVYPr1(m7-TWHH6CERzAZDvm?L zWfJd&J^o4=+g5{NB&=%qP-UHA%JxH3S)+>PBqbX~7+@L!Lup?e3Lc5L$6s{z zm9&KTFpNXH$&jwrc5^t-u;`PFk|Q13V=k4p{Pn%H`weo!y-*UN97+uHF7GXmmF31n zKBcWk#%_yP^ps|(RVO1^+hxc!lCEO7&Ga7W1Zi`Mtk#aMUBH9%?bpI#8jFW+3 zGW^Q=2AzCc*?!V}DYO_Ut29-Yd&)kMQVp%@ZW%N3!If(5P4jF42(c{tN**+#P{r1t zTXh*8R41w)@8J8;vO0`=8%~3)lbVPvO@zUa7bDwm9}m4szdL(^_>*Bv=|fV}b;dC) zwvv&S>RIT-o%#2c-E~0Jh^MiP5<}F+!sW2UP?_Y;1z16qA<(BTFaxjFnu+dlGjzw@ zb6q$}^Z`Fo9WK3wf82P|H@`yw&l5v;G}ww`r5lkjMj0&7+sT6{f|W|{{m_%j(3r+W zS}BvaNj62cSYQ1JR{wA6f;!nE?e6rY?+3IM8{+@~ literal 0 HcmV?d00001 diff --git a/target/classes/com/tennis/config/RestTemplateConfig.class b/target/classes/com/tennis/config/RestTemplateConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..e669447795d521c8ae2747a74a59edfc2e0827dc GIT binary patch literal 2738 zcma)8YgZFj6x|mBBVp7?D+;aFN0h_|gVx$=#DY-^HDH^>ShTMpxg;Z#nK*N!@}K&l z{emu8?GNZ`|58`?&BTzz$O2aG^PF?f+2=KX|M&JU0P_gq7{aiDn28aL3M8J{FKo-T zy{h$a{h2H)fzexz=cwBP!>M%1zyX12P4vq0q_V=$wTeMAR4cY;S7l%zE^xl=*DWPI z&k3!v?`=3$D=$M;l=X&dE17K_C9lLW22;O#P#~Sk?T0CoE*-#Os#44q;y8i{10R|A z7)J$;_bOE=yu8{>5I9@fAZXNBKw9B0_aI9^y70Plm zaMYGn&S>?Q2Xd>8Ql|f^8^TPa-oVFb{{;PZ z(!^&tMc2HLfwQqCa3;&#udorf_7C(JG!XaTZB>nSd1h@}^Yx?XvQNff9&8 z4-F-p$BcoLi8L+e6r0^|92lR^7svCce@{he(u{cBM^W;HJRE zL5jST>+kgF&X_oE;Fivmd4c&B1JRLu#Q`}@md0W;_-2?7=)c#vHmKqMn@Q0cm}=(<@MD877R z&!iHFvsQIV!gOD5b|pL|+peqQCoI{nQ(>g{5x*B(0>;L>L|PbVMz?$RjxbslzxS#v z8#;wT1K$(VR=w&JgjK)LEY}v@s?TCnt9OVE6zJPt+D^@>GqyXF0#o^>rx>p#Cv@n; zMbGn<-Fi{r@<0p9Q8l&f4ykoV+8)(C>e}`7ik<9sXp*UB4JfpINb0H}!;qF{(oX~q z)Y?@`$Jl#Cnka`6F^j>61rfi3-wev~zN3TnSa%}P|LjJyTC~9R{n{CEHG>vFGTMgMwzW>YU z$-Q}_mK1$Vv?XVmSp`Q)f@m(YPXt-l4(U__>=x(V!(@zDq?uZH%58)9r7r))&h@!L|n%%xfghL zo%0aqq1bPF>;h}1_3~tNiyyGYdrk2KPsuZaA6vVhI+B0p{ulmYydA@@Txp;sHL|hJ TpUaa8@{e)We|7kHj;a3v(61Pr literal 0 HcmV?d00001 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 352af88..569a675 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,3 +1,4 @@ +com/tennis/config/RestTemplateConfig.class com/tennis/entity/MatchPrediction.class com/tennis/controller/TennisPredictionController.class com/tennis/TennisMatchPredictionApplication.class @@ -10,6 +11,7 @@ com/tennis/service/DataInitializationService.class com/tennis/entity/Player.class com/tennis/entity/Match.class com/tennis/repository/HeadToHeadRepository.class +com/tennis/config/RestTemplateConfig$1.class com/tennis/service/PredictionService.class com/tennis/service/MockFlashScoreService.class com/tennis/repository/PlayerRepository.class From 8e29e80ce55d29915a3c31f9687281e8ebeda345 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 16 Jul 2025 13:40:15 +0000 Subject: [PATCH 09/10] Fix RestTemplate configuration by removing SSL dependencies that were causing Apache HttpClient conflicts --- .../com/tennis/config/RestTemplateConfig.java | 42 ++---------------- .../tennis/config/RestTemplateConfig$1.class | Bin 1235 -> 0 bytes .../tennis/config/RestTemplateConfig.class | Bin 2738 -> 655 bytes .../compile/default-compile/createdFiles.lst | 1 - 4 files changed, 4 insertions(+), 39 deletions(-) delete mode 100644 target/classes/com/tennis/config/RestTemplateConfig$1.class diff --git a/src/main/java/com/tennis/config/RestTemplateConfig.java b/src/main/java/com/tennis/config/RestTemplateConfig.java index 393f0c7..9a97485 100644 --- a/src/main/java/com/tennis/config/RestTemplateConfig.java +++ b/src/main/java/com/tennis/config/RestTemplateConfig.java @@ -2,51 +2,17 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; -import javax.net.ssl.*; -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; - /** - * Configuration for RestTemplate to handle HTTP requests with SSL certificate handling + * Configuration for RestTemplate to handle HTTP requests */ @Configuration public class RestTemplateConfig { @Bean - public RestTemplate restTemplate() throws NoSuchAlgorithmException, KeyManagementException { - // Create a trust manager that trusts all certificates - TrustManager[] trustAllCerts = new TrustManager[] { - new X509TrustManager() { - public X509Certificate[] getAcceptedIssuers() { - return new X509Certificate[0]; - } - public void checkClientTrusted(X509Certificate[] certs, String authType) { - } - public void checkServerTrusted(X509Certificate[] certs, String authType) { - } - } - }; - - // Create SSL context that trusts all certificates - SSLContext sslContext = SSLContext.getInstance("TLS"); - sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); - - // Create SSL hostname verifier that accepts all hostnames - HostnameVerifier allHostsValid = (hostname, session) -> true; - - // Set default SSL context and hostname verifier - HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory()); - HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); - - // Create simple request factory with timeouts - SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); - factory.setConnectTimeout(10000); // 10 seconds - factory.setReadTimeout(30000); // 30 seconds - - return new RestTemplate(factory); + public RestTemplate restTemplate() { + // Use default RestTemplate configuration + return new RestTemplate(); } } \ No newline at end of file diff --git a/target/classes/com/tennis/config/RestTemplateConfig$1.class b/target/classes/com/tennis/config/RestTemplateConfig$1.class deleted file mode 100644 index 8946f33e9a4fc83e6658ffb5af3ba45d9e811ad5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235 zcmbVL+invv5IxSNxpaXLE~QXPDQTOe5^f)OfI<<9KvYT#B2k6JljFF_wwv9^c3S$z zC&2?kLV^$AqYz`KK!JxwtYpvZc;@){jQ#EV=dS=BVYPr1(m7-TWHH6CERzAZDvm?L zWfJd&J^o4=+g5{NB&=%qP-UHA%JxH3S)+>PBqbX~7+@L!Lup?e3Lc5L$6s{z zm9&KTFpNXH$&jwrc5^t-u;`PFk|Q13V=k4p{Pn%H`weo!y-*UN97+uHF7GXmmF31n zKBcWk#%_yP^ps|(RVO1^+hxc!lCEO7&Ga7W1Zi`Mtk#aMUBH9%?bpI#8jFW+3 zGW^Q=2AzCc*?!V}DYO_Ut29-Yd&)kMQVp%@ZW%N3!If(5P4jF42(c{tN**+#P{r1t zTXh*8R41w)@8J8;vO0`=8%~3)lbVPvO@zUa7bDwm9}m4szdL(^_>*Bv=|fV}b;dC) zwvv&S>RIT-o%#2c-E~0Jh^MiP5<}F+!sW2UP?_Y;1z16qA<(BTFaxjFnu+dlGjzw@ zb6q$}^Z`Fo9WK3wf82P|H@`yw&l5v;G}ww`r5lkjMj0&7+sT6{f|W|{{m_%j(3r+W zS}BvaNj62cSYQ1JR{wA6f;!nE?e6rY?+3IM8{+@~ diff --git a/target/classes/com/tennis/config/RestTemplateConfig.class b/target/classes/com/tennis/config/RestTemplateConfig.class index e669447795d521c8ae2747a74a59edfc2e0827dc..6391ab8e72b6580b11f7d0593eadcdae0e4b540c 100644 GIT binary patch delta 196 zcmdla+Rw^$>ff$?3=9mm3=$K$OeQxo>#?yjFtamoPyWMvVlpF}&*Xb-abgUL3|tIM zKxGU-l97RxfelFVO#a6qR?iC*1MwIbxEc6>BoCO)%D~Sc0OT<;2r>u(_3!}MMqs@R s3>>=|*dwShTMpxg;Z#nK*N!@}K&l z{emu8?GNZ`|58`?&BTzz$O2aG^PF?f+2=KX|M&JU0P_gq7{aiDn28aL3M8J{FKo-T zy{h$a{h2H)fzexz=cwBP!>M%1zyX12P4vq0q_V=$wTeMAR4cY;S7l%zE^xl=*DWPI z&k3!v?`=3$D=$M;l=X&dE17K_C9lLW22;O#P#~Sk?T0CoE*-#Os#44q;y8i{10R|A z7)J$;_bOE=yu8{>5I9@fAZXNBKw9B0_aI9^y70Plm zaMYGn&S>?Q2Xd>8Ql|f^8^TPa-oVFb{{;PZ z(!^&tMc2HLfwQqCa3;&#udorf_7C(JG!XaTZB>nSd1h@}^Yx?XvQNff9&8 z4-F-p$BcoLi8L+e6r0^|92lR^7svCce@{he(u{cBM^W;HJRE zL5jST>+kgF&X_oE;Fivmd4c&B1JRLu#Q`}@md0W;_-2?7=)c#vHmKqMn@Q0cm}=(<@MD877R z&!iHFvsQIV!gOD5b|pL|+peqQCoI{nQ(>g{5x*B(0>;L>L|PbVMz?$RjxbslzxS#v z8#;wT1K$(VR=w&JgjK)LEY}v@s?TCnt9OVE6zJPt+D^@>GqyXF0#o^>rx>p#Cv@n; zMbGn<-Fi{r@<0p9Q8l&f4ykoV+8)(C>e}`7ik<9sXp*UB4JfpINb0H}!;qF{(oX~q z)Y?@`$Jl#Cnka`6F^j>61rfi3-wev~zN3TnSa%}P|LjJyTC~9R{n{CEHG>vFGTMgMwzW>YU z$-Q}_mK1$Vv?XVmSp`Q)f@m(YPXt-l4(U__>=x(V!(@zDq?uZH%58)9r7r))&h@!L|n%%xfghL zo%0aqq1bPF>;h}1_3~tNiyyGYdrk2KPsuZaA6vVhI+B0p{ulmYydA@@Txp;sHL|hJ TpUaa8@{e)We|7kHj;a3v(61Pr diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 569a675..58e6fd7 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -11,7 +11,6 @@ com/tennis/service/DataInitializationService.class com/tennis/entity/Player.class com/tennis/entity/Match.class com/tennis/repository/HeadToHeadRepository.class -com/tennis/config/RestTemplateConfig$1.class com/tennis/service/PredictionService.class com/tennis/service/MockFlashScoreService.class com/tennis/repository/PlayerRepository.class From ae469c660d7256c7443b5693f3a9151729427932 Mon Sep 17 00:00:00 2001 From: ramdafale Date: Mon, 21 Jul 2025 14:52:59 +0530 Subject: [PATCH 10/10] added untracked files --- .idea/.gitignore | 3 +++ .idea/compiler.xml | 19 +++++++++++++++++++ .idea/encodings.xml | 6 ++++++ .idea/jarRepositories.xml | 20 ++++++++++++++++++++ .idea/misc.xml | 12 ++++++++++++ .idea/vcs.xml | 6 ++++++ 6 files changed, 66 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..993c92a --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..63e9001 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..5ddb3b3 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file

ehe5bUN+$F)(k(1Z~36AtW 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�lA)j1F{Kgh^<13B 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�zqkfhRGBA<lA8g!=o>-I` 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