From 3337e9c44707dfb01f7000d1c1e852b78e96c727 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:53:21 +0530 Subject: [PATCH 01/28] Delete 10SuperMarketServlet directory --- .../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 ------ 55 files changed, 1656 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 diff --git a/10SuperMarketServlet/WebContent/META-INF/MANIFEST.MF b/10SuperMarketServlet/WebContent/META-INF/MANIFEST.MF deleted file mode 100644 index 254272e1..00000000 --- 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 23bd3052..00000000 --- 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 34f5873f..00000000 --- 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 0eba4b98..00000000 --- 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 49dec3f4..00000000 --- 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 aecbbd38..00000000 --- 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 267bc090..00000000 --- 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 0233ba81..00000000 --- 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 1055e76d..00000000 --- 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 8d1b4e97..00000000 --- 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 ec8ecce7..00000000 --- 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 6aca2c56..00000000 --- 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 9c1f900e..00000000 --- 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 86ec6b13..00000000 --- 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 8a0ffeb1..00000000 --- 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 db73d143..00000000 --- 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 00ffc730..00000000 --- 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 cfb9f3b7..00000000 --- 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 4567a72b..00000000 --- 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 bffefd8c..00000000 --- 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 7a15f84b..00000000 --- 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 5e3aeed7..00000000 --- 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 91e91ea8..00000000 --- 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 3adab528..00000000 --- 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 f9236a7a..00000000 --- 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 fffc1be3..00000000 --- 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 985bf538..00000000 --- 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 345474c1..00000000 --- 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 92d25e31..00000000 --- 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 536690d0..00000000 --- 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 3f2b8921..00000000 --- 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 b230abd2..00000000 --- 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 1ea11f11..00000000 --- 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; - } - -} From 87ad156b0cc557ed3edc34d8a332899097702397 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:53:46 +0530 Subject: [PATCH 02/28] Delete 12SpringBoot&JPA directory --- 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 -- 15 files changed, 686 deletions(-) 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 diff --git a/12SpringBoot&JPA/.gitignore b/12SpringBoot&JPA/.gitignore deleted file mode 100644 index 82eca336..00000000 --- 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 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 diff --git a/12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.properties b/12SpringBoot&JPA/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 71b792d4..00000000 --- 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 19cc2e5c..00000000 --- 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 0822c940..00000000 --- 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 43c4d518..00000000 --- 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 c5f798b4..00000000 --- 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 fd909adc..00000000 --- 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 d4131cf4..00000000 --- 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 591a05d5..00000000 --- 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 de2a7aa5..00000000 --- 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 fb255fed..00000000 --- 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() { - } - -} From ea5f0b8f43dc81a2f9839aaa8a873529eeaf6ea2 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:53:53 +0530 Subject: [PATCH 03/28] Delete 13SpringBootJPA(REMOVEADD) directory --- 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 -- 16 files changed, 897 deletions(-) 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 diff --git a/13SpringBootJPA(REMOVEADD)/.gitignore b/13SpringBootJPA(REMOVEADD)/.gitignore deleted file mode 100644 index 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 71b792d4..00000000 --- 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 639966d0..00000000 --- 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 3f1373cc..00000000 --- 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 43c4d518..00000000 --- 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 8edca130..00000000 --- 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 2b649baa..00000000 --- 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 7541e08f..00000000 --- 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 591a05d5..00000000 --- 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 a506e30e..00000000 --- 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 de2a7aa5..00000000 --- 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 fb255fed..00000000 --- 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() { - } - -} From 7b44c533a9166081d598b3c1d9602e76a42efcd3 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:54:03 +0530 Subject: [PATCH 04/28] Delete 11SpringBootUsingJDBC directory --- 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 -- 45 files changed, 2443 deletions(-) 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 diff --git a/11SpringBootUsingJDBC/.gitignore b/11SpringBootUsingJDBC/.gitignore deleted file mode 100644 index 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 2d1e8c87..00000000 --- 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 e69de29b..00000000 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 5652055f..00000000 --- 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 68892074..00000000 --- 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 8d1b4e97..00000000 --- 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 ec8ecce7..00000000 --- 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 0de185b3..00000000 --- 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 8f1c7782..00000000 --- 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 44c49287..00000000 --- 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 6aca2c56..00000000 --- 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 86ec6b13..00000000 --- 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 8a0ffeb1..00000000 --- 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 db73d143..00000000 --- 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 00ffc730..00000000 --- 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 cfb9f3b7..00000000 --- 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 4567a72b..00000000 --- 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 bffefd8c..00000000 --- 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 7a15f84b..00000000 --- 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 5e3aeed7..00000000 --- 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 f8dfb848..00000000 --- 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 3adab528..00000000 --- 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 f9236a7a..00000000 --- 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 fffc1be3..00000000 --- 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 08932ccc..00000000 --- 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 345474c1..00000000 --- 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 bd8049c7..00000000 --- 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 536690d0..00000000 --- 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 0dd0c4a1..00000000 --- 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 b230abd2..00000000 --- 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 1ea11f11..00000000 --- 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 e69de29b..00000000 diff --git a/11SpringBootUsingJDBC/src/main/resources/database.properties b/11SpringBootUsingJDBC/src/main/resources/database.properties deleted file mode 100644 index 9c1f900e..00000000 --- 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 b76e7f2e..00000000 --- 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() { - } - -} From a140388ff3df2c4a7616f69c445ae9662f3c7436 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:56:58 +0530 Subject: [PATCH 05/28] Delete demoCommon directory --- 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 - 24 files changed, 348 deletions(-) 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 diff --git a/demoCommon/.classpath b/demoCommon/.classpath deleted file mode 100644 index 9ae7bca0..00000000 --- a/demoCommon/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demoCommon/.project b/demoCommon/.project deleted file mode 100644 index f3900a66..00000000 --- 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 24181231..00000000 --- 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 45a6e0e0..00000000 --- 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 f897a7f1..00000000 --- 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 6ce3563c..00000000 --- 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 d74c55e0..00000000 --- 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 3bd5d0a4..00000000 --- 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 05bd71b6..00000000 --- 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 04cad8cb..00000000 --- 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 e7ea0b5f..00000000 --- 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 ccc60efd..00000000 --- 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 9f88c1f9..00000000 --- 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 d617fcce..00000000 --- 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 1135b68d..00000000 --- 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 e7ea0b5f..00000000 --- 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 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 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 d617fcce..00000000 --- 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 543c4f4c..00000000 --- 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 02a624c5..00000000 --- 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 d1d33964..00000000 --- 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 e69de29b..00000000 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 58e7730d..00000000 --- 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 From 4ab828d0f54fa6fafbdab0d3c7ccb904809ff804 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:57:05 +0530 Subject: [PATCH 06/28] Delete bank directory --- 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 123 files changed, 4090 deletions(-) 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 diff --git a/bank/.classpath b/bank/.classpath deleted file mode 100644 index 6d7587a8..00000000 --- a/bank/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bank/.eclipse-pmd b/bank/.eclipse-pmd deleted file mode 100644 index 410e8c55..00000000 --- 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 d022394d..00000000 --- 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 839d647e..00000000 --- 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 714351ae..00000000 --- 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 d8582952..00000000 --- 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 a12794d6..00000000 --- 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 839d647e..00000000 --- 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 714351ae..00000000 --- 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 d8582952..00000000 --- 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 a12794d6..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 77e0a5df..00000000 --- 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 359e7982..00000000 --- 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 ac4821f3..00000000 --- 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 77e0a5df..00000000 --- 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 359e7982..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 d09d388b..00000000 --- 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 1387b62c..00000000 --- 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 15ee78f7..00000000 --- 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 3f9c0d8f..00000000 --- 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 22b501c1..00000000 --- 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 c9775065..00000000 --- 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 b9b7faea..00000000 --- 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 ffe7623d..00000000 --- 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 f1bc7c1c..00000000 --- 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 da690a62..00000000 --- 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 3399a328..00000000 --- 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 c6c1c92a..00000000 --- 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 cf8211c6..00000000 --- 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 3ccb164d..00000000 --- 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 0e789a33..00000000 --- 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 c8144f05..00000000 --- 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 7abad68a..00000000 --- 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 24b399c4..00000000 --- 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 b54e015f..00000000 --- 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 a6774624..00000000 --- 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 01ec788f..00000000 --- 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 9d6ac172..00000000 --- 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 e25f5216..00000000 --- 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 52ddab83..00000000 --- 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 1d89cdbd..00000000 --- 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 6776960c..00000000 --- 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 115117eb..00000000 --- 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 79289589..00000000 --- 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 bfc04e76..00000000 --- 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 ff020b05..00000000 --- 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 99df3a30..00000000 --- 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 0e0d7e7b..00000000 --- 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 6bd0562d..00000000 --- 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 b9e1dba2..00000000 --- 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 dfc4dad2..00000000 --- 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 ef543af1..00000000 --- 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 9418e16a..00000000 --- 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 8d490865..00000000 --- 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 85382f46..00000000 --- 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 197cc772..00000000 --- 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 f061ed16..00000000 --- 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 91dd5aff..00000000 --- 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 3bccdd00..00000000 --- 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 1d754acc..00000000 --- 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 3bf6f1fb..00000000 --- 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 ad067d4b..00000000 --- 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 d09d388b..00000000 --- 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 91dd5aff..00000000 --- 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 zcmah~YgZFj6x|n)#4v&lf=bngkRchNwGKSH~Ox9%5$~XIu z`Vza^wfY14qq@4!Jj@UWWG%RlId`9Z_IdE{e}DZ0;A1p1=ux;>bsKuC=~+&_;<~yUNzSM5{Zo~94=uy;;F)mO+>BZE?n-^(3?vg_3670zz7 z9p7r0+g8h}*yf_+xW3_AuG3N&4a}eEP19>xE#Gvire3P?(Z!SxtEOXmhHuuk4ZCg9 zDBJSoT;Ds=o}RY$nt^?3d1Y;@wDmwii%G8;4O1bXpuOpf3WOg^;jrY|?S>=1owjWo zjHj0>LZRO_ow~m(C(1Ao!{4_Yh2aEx$su9W3qo|gdZhVdk2HRAy{DnHYp%0KcpCLd zA`}Yc!}D{S7PLH{!uFow>}|R0js&myhF3TJ73RXHVEyIw)zy`aI7+?kTefby^*UqM z%UlDF*_&0{axDLrLhty*Hu)^ECUSTemom7hFx1KRl5MnF8ZP6CLWYh)VNZ=uB!Z8m z&Eb7aWH7F9CU~FXTSF076^;`qB%?4r{yI_wo&qp`oJpC|@HWnoX4!JgwRWRodRvk+ zNw`}z>}|udiGG|0#Cl`HWC$FZUmAatwZLb6H>}?bwiHfxDnGov-L~wS>19FF zkyz5gPW9DrT*zS)-$-38%I=|t9em41G@4D*q4ZP9xWeH&|9bO8ZsxQ2jzUisVti3G z@bH7+8eMQv;~fQ8rPLibD!q^e8znPYs8CZL>I&+SFt;>pNSEg}-L_XX?^x1MC*qK& zMVNT39GvW7b+S*+rp&6K2l=hf2_|wj4ve#g!-r$_7$G@HEL) zezd&WN8wMr_d6zk<+%sb{41c~{L_OQ`JccE61}{}RlXi8zQl)}CpkU^ANTQ*JkvrW zT;u=c5a5#t;2ACZcy~?!idSD?ra1Wmv&E?wnEMTr`J4N=)xjMj8Q?l!%u=8mRAr6| z%rmHkz)vy6iu@2YQciZFlCU}#Xwysox3Ltl(7A?T{DI|PXq1e6DK&&USdAXvqO}0` z3;pE|*-(VL%xyV97!9pnk?W7L&hd&XDMV(viEN}2DPb{<$V@kphjh1d2$8V96u!XS z6e6?TM2u7-W!y_6GTTkWB9SMD5D80JVGZjkMCQ7QG*gM($CqhD=DLYIBayvBh=l#4 zWFSOXE}KctEc-$76g>(dHjaQ`*3gog03n!wx`Yt2&}JhwHAw+CG*DU;SvUe)N+p@XbfzEM zFCF?c%tE@D&{Nn>K|qO^QvM zqGMO46%5|1+rCvZ*DTN4sG4)O?fAN2dJ0Yi<}bA^)AcORH*Lez3S~YTPPkY$ZPV3# zv%IEP>n4rT9=-c!t%3S;a}5BF&;@n=AF&hUu1c7NF?n7tcS}f9wT@n~;5vuBrb}`+pr7kv&dI*DUuYm*!)+Ewv zDh}e1?5?Xgf~@Rrs5pvavYS?M94FG4Wepc>&nlZaf78sxnCHTxmCSso;v>v4bjyC~ zC^()ZJF8`Ysfhtd=Vx1z9rV6?d?XDg`4%?OcxyJ4)YA z{KkaCF+KBBYTMex0vd)w1cP@le5Av8?7E`SIaCo52HoA+0ed zyDwFIg(ot&wzf>01#l&v&hYnPdT;+n&Zg7YVA95NMl@jq^s->GL0h1r$<__3!jz2V z^l+HYreRSwd0>`FFtJrygncy%$+tu=felBc0Fnv`j*-hX_5$6Z6c|7+3kDX5Zey&>uMe8}h&K z+`}88CAa5sCHMlKI1{6nA8?i1{rNZ0nolx(3S34n0pyt)8sR;>&yxViLvj5hE%$RB z7J&TaZH(u~wlR^vvW?07VDC1jenmbzvxA#W^r1kXYeb)*I@cM@B*VPHfTpPBOyF@m zM2$QWKax&%qLuI)4#W}VhXZ+f$!Q)75i^Zz7~1bx{Fz2^HRcn;x`pNF@l9Hbi#`cy zu}M7?<~GTF5+Ixit#)blMFpVXV-ymIjJFfHn@Hp~;X{2}h>W)rS*N>)9f*Xbrl5#B z2}CB^i9AUpvVzqlA`|UIHc70+GpfB2FTad$^xOWU`&eHze}10}*K@ zsfiNKB@mfvC-Pk)ksD#H4f14N3o@E0DeXV>50QJz)1 zgU4BY2L|`!vVR)xCuF}F?k8pcEZk3V$yWK#4(w(yhl1Jkn*S5~2}^h#3#t&6Z4b7B 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 Date: Wed, 16 Jul 2025 11:57:11 +0530 Subject: [PATCH 07/28] Delete SpringJDBCTemplateExampleForLearning directory --- .../.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 -- 20 files changed, 343 deletions(-) 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 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 4a77ee8e..00000000 --- a/SpringJDBCTemplateExampleForLearning/.classpath +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/SpringJDBCTemplateExampleForLearning/.project b/SpringJDBCTemplateExampleForLearning/.project deleted file mode 100644 index dfac2134..00000000 --- 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 63864f1a..00000000 --- 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 f897a7f1..00000000 --- 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 cbe105ba..00000000 --- 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 165a2106..00000000 --- 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 e5254c62..00000000 --- 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 7a4b9819..00000000 --- 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 d7585393..00000000 --- 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 3c016a79..00000000 --- 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 From f65ed8cdd93a9f3be695e6a7223f0c4246a5a2bf Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:57:16 +0530 Subject: [PATCH 08/28] Delete RabbitDemoSimple directory --- 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 -- 46 files changed, 1521 deletions(-) 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 diff --git a/RabbitDemoSimple/demoCommon/.classpath b/RabbitDemoSimple/demoCommon/.classpath deleted file mode 100644 index 9ae7bca0..00000000 --- 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 f3900a66..00000000 --- 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 24181231..00000000 --- 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 45a6e0e0..00000000 --- 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 f897a7f1..00000000 --- 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 6ce3563c..00000000 --- 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 d74c55e0..00000000 --- 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 3bd5d0a4..00000000 --- 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 05bd71b6..00000000 --- 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 04cad8cb..00000000 --- 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 e7ea0b5f..00000000 --- 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 ccc60efd..00000000 --- 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 9f88c1f9..00000000 --- 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 d617fcce..00000000 --- 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 1135b68d..00000000 --- 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 e7ea0b5f..00000000 --- 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 d617fcce..00000000 --- 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 543c4f4c..00000000 --- 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 02a624c5..00000000 --- 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 d1d33964..00000000 --- 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 e69de29b..00000000 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 58e7730d..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 da1cab78..00000000 --- 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 5b3d5379..00000000 --- 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 342f3437..00000000 --- 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 57f9aa8e..00000000 --- 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 4363a841..00000000 --- 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 d2f91279..00000000 --- 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 3b63b5d2..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 6f897176..00000000 --- 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 ef0f4478..00000000 --- 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 0dd0e093..00000000 --- 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 ab0692b8..00000000 --- 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 31ce03e5..00000000 --- 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() { - } - -} From 44c18bf9820954141df673337c7dabe8d2edd48c Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:57:22 +0530 Subject: [PATCH 09/28] Delete Rabbit MQ demo with object directory --- .../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 -- 166 files changed, 10362 deletions(-) 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 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 3b4f2d8a..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 53737639..00000000 --- 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 b092dee6..00000000 --- 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 f65ebb09..00000000 --- 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 06ec2031..00000000 --- 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 54cb1386..00000000 --- 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 d3ef5333..00000000 --- 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 5d97e9fb..00000000 --- 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 f0257c35..00000000 --- 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 6c017c2e..00000000 --- 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 d71f2792..00000000 --- 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 065159fa..00000000 --- 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 bf9f1528..00000000 --- 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 7557450d..00000000 --- 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 70ea8de2..00000000 --- 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 50c0153d..00000000 --- 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 427128d3..00000000 --- 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 c5af5af7..00000000 --- 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 40851219..00000000 --- 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 d7d7e633..00000000 --- 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 35799591..00000000 --- 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 aa42fa26..00000000 --- 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 d52ebb26..00000000 --- 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 a1a09385..00000000 --- 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 2b313054..00000000 --- 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 8ca484b5..00000000 --- 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 3d5d6d26..00000000 --- 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 c958e83c..00000000 --- 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 c08f97c5..00000000 --- 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 bb53cc1c..00000000 --- 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 c5754c5c..00000000 --- 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 15a792ac..00000000 --- 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 e603c132..00000000 --- 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 5711e5c3..00000000 --- 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 ad5053dc..00000000 --- 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 ed3ce906..00000000 --- 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 edeef456..00000000 --- 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 b3dbada0..00000000 --- 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 4839f4fa..00000000 --- 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 f8d9d16f..00000000 --- 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 1c583f50..00000000 --- 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 1d2acb94..00000000 --- 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 bb1f1c50..00000000 --- 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 937aa246..00000000 --- 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 8621dc3d..00000000 --- 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 91f56b9e..00000000 --- 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 d207310b..00000000 --- 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 47657d85..00000000 --- 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 124f9c5b..00000000 --- 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 a464c987..00000000 --- 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 8256c10f..00000000 --- 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 85867ad5..00000000 --- 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 9e8c9978..00000000 --- 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 8a4a66f1..00000000 --- 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 213e1ea6..00000000 --- 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 7a0370c7..00000000 --- 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 3d86cd80..00000000 --- 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 15bba781..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 a2136c3d..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 68500f50..00000000 --- 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 82ac709d..00000000 --- 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 a8303759..00000000 --- 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 1b55caac..00000000 --- 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 6479eb26..00000000 --- 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 c61912ac..00000000 --- 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 effe32b8..00000000 --- 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 b7d4db13..00000000 --- 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 cd8286f6..00000000 --- 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 db121ae5..00000000 --- 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 ac2a51a1..00000000 --- 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 9d3e4e0d..00000000 --- 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 86f4145b..00000000 --- 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 160469e0..00000000 --- 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 3b4f2d8a..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 5dfe4c87..00000000 --- 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 b092dee6..00000000 --- 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 f65ebb09..00000000 --- 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 06ec2031..00000000 --- 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 54cb1386..00000000 --- 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 d3ef5333..00000000 --- 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 5d97e9fb..00000000 --- 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 f0257c35..00000000 --- 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 6c017c2e..00000000 --- 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 d71f2792..00000000 --- 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 065159fa..00000000 --- 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 bf9f1528..00000000 --- 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 7557450d..00000000 --- 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 70ea8de2..00000000 --- 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 50c0153d..00000000 --- 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 427128d3..00000000 --- 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 c5af5af7..00000000 --- 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 40851219..00000000 --- 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 d7d7e633..00000000 --- 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 35799591..00000000 --- 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 0b3ec89a..00000000 --- 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 90569a44..00000000 --- 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 a1a09385..00000000 --- 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 2b313054..00000000 --- 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 eb3c1bda..00000000 --- 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 3d5d6d26..00000000 --- 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 c958e83c..00000000 --- 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 c08f97c5..00000000 --- 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 bb53cc1c..00000000 --- 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 c5754c5c..00000000 --- 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 15a792ac..00000000 --- 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 e603c132..00000000 --- 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 5711e5c3..00000000 --- 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 ad5053dc..00000000 --- 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 ed3ce906..00000000 --- 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 edeef456..00000000 --- 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 b3dbada0..00000000 --- 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 4839f4fa..00000000 --- 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 f8d9d16f..00000000 --- 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 1c583f50..00000000 --- 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 1d2acb94..00000000 --- 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 bb1f1c50..00000000 --- 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 f692e909..00000000 --- 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 8621dc3d..00000000 --- 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 91f56b9e..00000000 --- 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 d207310b..00000000 --- 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 47657d85..00000000 --- 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 124f9c5b..00000000 --- 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 a464c987..00000000 --- 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 8256c10f..00000000 --- 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 85867ad5..00000000 --- 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 9e8c9978..00000000 --- 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 8a4a66f1..00000000 --- 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 213e1ea6..00000000 --- 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 7a0370c7..00000000 --- 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 3d86cd80..00000000 --- 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 15bba781..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 a2136c3d..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 68500f50..00000000 --- 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 82ac709d..00000000 --- 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 a8303759..00000000 --- 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 1b55caac..00000000 --- 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 6479eb26..00000000 --- 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 c61912ac..00000000 --- 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 6b479c68..00000000 --- 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 b7d4db13..00000000 --- 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 cd8286f6..00000000 --- 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 db121ae5..00000000 --- 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 ac2a51a1..00000000 --- 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 9d3e4e0d..00000000 --- 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 86f4145b..00000000 --- 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 160469e0..00000000 --- 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 From cd10160033d26b64831830264b72ead0b06dc59c Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:57:27 +0530 Subject: [PATCH 10/28] Delete PPTs directory --- PPTs/JUnit and Mockito Training v1.0 (1).pptx | Bin 1184649 -> 0 bytes PPTs/SerializationPPT1452018.pptx | Bin 86634 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 PPTs/JUnit and Mockito Training v1.0 (1).pptx delete mode 100644 PPTs/SerializationPPT1452018.pptx diff --git a/PPTs/JUnit and Mockito Training v1.0 (1).pptx b/PPTs/JUnit and Mockito Training v1.0 (1).pptx deleted file mode 100644 index 93361bee3659bfd1fa7f1a152ada0d229bd22a01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184649 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%0Dq)mi<4FJ5%<24MMN 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

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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

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 From f8b8a164f010d4d978a8b881a52efecc854066f4 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:57:33 +0530 Subject: [PATCH 11/28] Delete MyDatabase for SuperMarket Project directory --- MyDatabase for SuperMarket Project/.gitignore | 4 -- .../MydatabaseQueries.txt | 47 ------------------ .../retailShopDB.mwb | Bin 7997 -> 0 bytes .../retailShopDB.mwb.bak | Bin 8001 -> 0 bytes 4 files changed, 51 deletions(-) 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 diff --git a/MyDatabase for SuperMarket Project/.gitignore b/MyDatabase for SuperMarket Project/.gitignore deleted file mode 100644 index 5c5b6eaf..00000000 --- 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 0c560094..00000000 --- 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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 Date: Wed, 16 Jul 2025 11:57:39 +0530 Subject: [PATCH 12/28] Delete EurekaServerUsingRestTemplate directory --- .../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 -- 89 files changed, 5649 deletions(-) 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 diff --git a/EurekaServerUsingRestTemplate/17BankInCapg/.eclipse-pmd b/EurekaServerUsingRestTemplate/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8a..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 b84a2e34..00000000 --- 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 0dd944cc..00000000 --- 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 f65ebb09..00000000 --- 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 06ec2031..00000000 --- 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 54cb1386..00000000 --- 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 d3ef5333..00000000 --- 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 e0d9d2c7..00000000 --- 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 f0257c35..00000000 --- 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 6c017c2e..00000000 --- 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 d71f2792..00000000 --- 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 065159fa..00000000 --- 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 bf9f1528..00000000 --- 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 7557450d..00000000 --- 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 70ea8de2..00000000 --- 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 50c0153d..00000000 --- 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 427128d3..00000000 --- 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 c5af5af7..00000000 --- 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 419e5435..00000000 --- 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 d7d7e633..00000000 --- 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 4188d6a0..00000000 --- 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 74936323..00000000 --- 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 495ed86d..00000000 --- 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 a1a09385..00000000 --- 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 2b313054..00000000 --- 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 8b08ed43..00000000 --- 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 3d5d6d26..00000000 --- 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 66e7bd96..00000000 --- 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 c3c75f02..00000000 --- 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 68015678..00000000 --- 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 927e0bee..00000000 --- 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 68dc6ea5..00000000 --- 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 7e470336..00000000 --- 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 8ae3342d..00000000 --- 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 9a71ec7c..00000000 --- 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 ed3ce906..00000000 --- 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 28627986..00000000 --- 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 232f9c26..00000000 --- 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 ed877efb..00000000 --- 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 e52db0cb..00000000 --- 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 a77ef1af..00000000 --- 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 ae1f2fe6..00000000 --- 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 7d184810..00000000 --- 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 8621dc3d..00000000 --- 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 91f56b9e..00000000 --- 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 d207310b..00000000 --- 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 47657d85..00000000 --- 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 124f9c5b..00000000 --- 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 a464c987..00000000 --- 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 8256c10f..00000000 --- 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 85867ad5..00000000 --- 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 9e8c9978..00000000 --- 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 bc21cee6..00000000 --- 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 213e1ea6..00000000 --- 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 b8e2a66e..00000000 --- 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 39ea1a91..00000000 --- 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 c0e05706..00000000 --- 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 82eca336..00000000 --- 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 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 diff --git a/EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingRestTemplate/eurekaserver/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 7d38d405..00000000 --- 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 1b2a6ba0..00000000 --- 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 90efd1c1..00000000 --- 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 a20f6a0f..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 5ae6d0ab..00000000 --- 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 134b6501..00000000 --- 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 a8303759..00000000 --- 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 1b55caac..00000000 --- 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 6479eb26..00000000 --- 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 c61912ac..00000000 --- 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 b7d4db13..00000000 --- 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 cd8286f6..00000000 --- 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 db121ae5..00000000 --- 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 ac2a51a1..00000000 --- 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 96948b95..00000000 --- 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 86f4145b..00000000 --- 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 05b8eaef..00000000 --- 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() { - } - -} From 0176e60bf8c6f7d0308ba5001c28f4587cd5cde8 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:57:45 +0530 Subject: [PATCH 13/28] Delete EurekaServerUsingFeignClientAndZuulServer directory --- .../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 -- 113 files changed, 6102 deletions(-) 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 diff --git a/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.eclipse-pmd b/EurekaServerUsingFeignClientAndZuulServer/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8a..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 1d6136d7..00000000 --- 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 85a1507a..00000000 --- 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 f65ebb09..00000000 --- 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 06ec2031..00000000 --- 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 54cb1386..00000000 --- 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 d3ef5333..00000000 --- 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 e0d9d2c7..00000000 --- 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 f0257c35..00000000 --- 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 6c017c2e..00000000 --- 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 d71f2792..00000000 --- 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 065159fa..00000000 --- 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 bf9f1528..00000000 --- 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 7557450d..00000000 --- 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 70ea8de2..00000000 --- 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 50c0153d..00000000 --- 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 427128d3..00000000 --- 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 c5af5af7..00000000 --- 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 419e5435..00000000 --- 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 d7d7e633..00000000 --- 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 4188d6a0..00000000 --- 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 74936323..00000000 --- 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 495ed86d..00000000 --- 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 a1a09385..00000000 --- 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 2b313054..00000000 --- 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 8b08ed43..00000000 --- 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 3d5d6d26..00000000 --- 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 66e7bd96..00000000 --- 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 c3c75f02..00000000 --- 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 68015678..00000000 --- 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 927e0bee..00000000 --- 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 68dc6ea5..00000000 --- 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 7e470336..00000000 --- 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 8ae3342d..00000000 --- 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 9a71ec7c..00000000 --- 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 ed3ce906..00000000 --- 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 28627986..00000000 --- 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 232f9c26..00000000 --- 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 ed877efb..00000000 --- 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 0301a571..00000000 --- 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 a77ef1af..00000000 --- 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 ae1f2fe6..00000000 --- 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 b38547f7..00000000 --- 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 8621dc3d..00000000 --- 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 91f56b9e..00000000 --- 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 d207310b..00000000 --- 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 47657d85..00000000 --- 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 124f9c5b..00000000 --- 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 a464c987..00000000 --- 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 8256c10f..00000000 --- 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 ba06a96d..00000000 --- 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 85867ad5..00000000 --- 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 9e8c9978..00000000 --- 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 bc21cee6..00000000 --- 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 213e1ea6..00000000 --- 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 10d6c4cb..00000000 --- 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 39ea1a91..00000000 --- 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 c0e05706..00000000 --- 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 9fc2de7b..00000000 --- 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 4b7efff7..00000000 --- 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 13b3428a..00000000 --- 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 f897a7f1..00000000 --- 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 a12794d6..00000000 --- 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 509de3ff..00000000 --- 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 5e3b8f9b..00000000 --- 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 afd94384..00000000 --- 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 f796421b..00000000 --- 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 234a7880..00000000 --- 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 a10114eb..00000000 --- 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 11864399..00000000 --- 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 0d4a877e..00000000 --- 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 356f13ab..00000000 --- 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 8b93bada..00000000 --- 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 509de3ff..00000000 --- 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 11864399..00000000 --- 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 0d4a877e..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 7d38d405..00000000 --- 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 1b2a6ba0..00000000 --- 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 90efd1c1..00000000 --- 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 a20f6a0f..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 5ae6d0ab..00000000 --- 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 134b6501..00000000 --- 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 a8303759..00000000 --- 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 1b55caac..00000000 --- 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 6479eb26..00000000 --- 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 c61912ac..00000000 --- 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 b7d4db13..00000000 --- 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 cd8286f6..00000000 --- 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 db121ae5..00000000 --- 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 ac2a51a1..00000000 --- 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 96948b95..00000000 --- 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 86f4145b..00000000 --- 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 05b8eaef..00000000 --- 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() { - } - -} From 9a11d3d83c4170f67c3d63656bc4561e0bce7a73 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:57:52 +0530 Subject: [PATCH 14/28] Delete EurekaServerUsingFeignClient directory --- .../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 -- 90 files changed, 5677 deletions(-) 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 diff --git a/EurekaServerUsingFeignClient/17BankInCapg/.eclipse-pmd b/EurekaServerUsingFeignClient/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8a..00000000 --- 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 82eca336..00000000 --- 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 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 diff --git a/EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingFeignClient/17BankInCapg/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 1d6136d7..00000000 --- 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 85a1507a..00000000 --- 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 f65ebb09..00000000 --- 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 06ec2031..00000000 --- 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 54cb1386..00000000 --- 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 d3ef5333..00000000 --- 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 e0d9d2c7..00000000 --- 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 f0257c35..00000000 --- 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 6c017c2e..00000000 --- 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 d71f2792..00000000 --- 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 065159fa..00000000 --- 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 bf9f1528..00000000 --- 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 7557450d..00000000 --- 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 70ea8de2..00000000 --- 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 50c0153d..00000000 --- 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 427128d3..00000000 --- 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 c5af5af7..00000000 --- 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 419e5435..00000000 --- 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 d7d7e633..00000000 --- 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 4188d6a0..00000000 --- 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 74936323..00000000 --- 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 495ed86d..00000000 --- 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 a1a09385..00000000 --- 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 2b313054..00000000 --- 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 8b08ed43..00000000 --- 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 3d5d6d26..00000000 --- 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 66e7bd96..00000000 --- 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 c3c75f02..00000000 --- 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 68015678..00000000 --- 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 927e0bee..00000000 --- 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 68dc6ea5..00000000 --- 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 7e470336..00000000 --- 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 8ae3342d..00000000 --- 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 9a71ec7c..00000000 --- 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 ed3ce906..00000000 --- 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 28627986..00000000 --- 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 232f9c26..00000000 --- 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 ed877efb..00000000 --- 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 0301a571..00000000 --- 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 a77ef1af..00000000 --- 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 ae1f2fe6..00000000 --- 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 b38547f7..00000000 --- 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 8621dc3d..00000000 --- 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 91f56b9e..00000000 --- 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 d207310b..00000000 --- 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 47657d85..00000000 --- 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 124f9c5b..00000000 --- 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 a464c987..00000000 --- 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 8256c10f..00000000 --- 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 98f45584..00000000 --- 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 85867ad5..00000000 --- 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 9e8c9978..00000000 --- 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 bc21cee6..00000000 --- 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 213e1ea6..00000000 --- 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 b8e2a66e..00000000 --- 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 39ea1a91..00000000 --- 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 c0e05706..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 7d38d405..00000000 --- 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 1b2a6ba0..00000000 --- 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 90efd1c1..00000000 --- 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 a20f6a0f..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 5ae6d0ab..00000000 --- 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 134b6501..00000000 --- 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 a8303759..00000000 --- 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 1b55caac..00000000 --- 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 6479eb26..00000000 --- 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 c61912ac..00000000 --- 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 b7d4db13..00000000 --- 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 cd8286f6..00000000 --- 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 db121ae5..00000000 --- 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 ac2a51a1..00000000 --- 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 a6723236..00000000 --- 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 86f4145b..00000000 --- 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 05b8eaef..00000000 --- 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() { - } - -} From cb29b14c39316422f9cb041eda5a187dba4bd765 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:57:59 +0530 Subject: [PATCH 15/28] Delete EurekaServerUsingConfigerver directory --- .../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 -- 123 files changed, 6595 deletions(-) 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 diff --git a/EurekaServerUsingConfigerver/17BankInCapg/.eclipse-pmd b/EurekaServerUsingConfigerver/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8a..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 69238d4e..00000000 --- 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 5b08f95f..00000000 --- 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 f65ebb09..00000000 --- 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 06ec2031..00000000 --- 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 54cb1386..00000000 --- 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 d3ef5333..00000000 --- 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 e0d9d2c7..00000000 --- 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 f0257c35..00000000 --- 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 6c017c2e..00000000 --- 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 d71f2792..00000000 --- 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 065159fa..00000000 --- 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 bf9f1528..00000000 --- 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 7557450d..00000000 --- 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 70ea8de2..00000000 --- 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 50c0153d..00000000 --- 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 427128d3..00000000 --- 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 c5af5af7..00000000 --- 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 419e5435..00000000 --- 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 d7d7e633..00000000 --- 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 4188d6a0..00000000 --- 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 74936323..00000000 --- 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 495ed86d..00000000 --- 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 a1a09385..00000000 --- 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 2b313054..00000000 --- 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 8b08ed43..00000000 --- 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 3d5d6d26..00000000 --- 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 66e7bd96..00000000 --- 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 c3c75f02..00000000 --- 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 68015678..00000000 --- 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 927e0bee..00000000 --- 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 68dc6ea5..00000000 --- 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 7e470336..00000000 --- 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 8ae3342d..00000000 --- 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 9a71ec7c..00000000 --- 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 ed3ce906..00000000 --- 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 28627986..00000000 --- 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 232f9c26..00000000 --- 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 ed877efb..00000000 --- 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 0301a571..00000000 --- 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 a77ef1af..00000000 --- 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 ae1f2fe6..00000000 --- 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 b38547f7..00000000 --- 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 8621dc3d..00000000 --- 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 91f56b9e..00000000 --- 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 d207310b..00000000 --- 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 47657d85..00000000 --- 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 124f9c5b..00000000 --- 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 a464c987..00000000 --- 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 8256c10f..00000000 --- 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 8f3f7c06..00000000 --- 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 85867ad5..00000000 --- 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 9e8c9978..00000000 --- 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 bc21cee6..00000000 --- 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 213e1ea6..00000000 --- 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 18741218..00000000 --- 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 5055004a..00000000 --- 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 c0e05706..00000000 --- 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 9fc2de7b..00000000 --- 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 ea9f7ca0..00000000 --- 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 13b3428a..00000000 --- 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 f897a7f1..00000000 --- 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 a12794d6..00000000 --- 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 fda87fc6..00000000 --- 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 5e3b8f9b..00000000 --- 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 afd94384..00000000 --- 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 f796421b..00000000 --- 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 234a7880..00000000 --- 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 a10114eb..00000000 --- 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 11864399..00000000 --- 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 0d4a877e..00000000 --- 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 5c0fc63d..00000000 --- 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 22cef4c5..00000000 --- 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 fda87fc6..00000000 --- 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 11864399..00000000 --- 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 0d4a877e..00000000 --- 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 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 diff --git a/EurekaServerUsingConfigerver/eurekaserver/.mvn/wrapper/maven-wrapper.properties b/EurekaServerUsingConfigerver/eurekaserver/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 7d38d405..00000000 --- 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 1b2a6ba0..00000000 --- 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 a4548d51..00000000 --- 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 a20f6a0f..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 a2136c3d..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 5ae6d0ab..00000000 --- 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 134b6501..00000000 --- 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 a8303759..00000000 --- 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 1b55caac..00000000 --- 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 6479eb26..00000000 --- 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 c61912ac..00000000 --- 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 b7d4db13..00000000 --- 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 cd8286f6..00000000 --- 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 db121ae5..00000000 --- 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 ac2a51a1..00000000 --- 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 8c2930b7..00000000 --- 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 86f4145b..00000000 --- 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 05b8eaef..00000000 --- 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 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 c3bff8ef..00000000 --- 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 720b1380..00000000 --- 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 1b4d780b..00000000 --- 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 f3a395b4..00000000 --- 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() { - } - -} From 9b5dfdb1fa6f745ba2f23f490e5fc9c109f46928 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:58:16 +0530 Subject: [PATCH 16/28] Delete 14SpringBootJPAmysql directory --- 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 --- 28 files changed, 1646 deletions(-) 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 diff --git a/14SpringBootJPAmysql/.gitignore b/14SpringBootJPAmysql/.gitignore deleted file mode 100644 index 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 1f26f873..00000000 --- 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 2608ef69..00000000 --- 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 c181353f..00000000 --- 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 3da2658f..00000000 --- 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 1b2087b6..00000000 --- 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 4b576333..00000000 --- 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 24b14dfa..00000000 --- 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 c0124bc8..00000000 --- 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 5dfc1a06..00000000 --- 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 0ee1b2dc..00000000 --- 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 417774f1..00000000 --- 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 edae2df1..00000000 --- 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 c4cac702..00000000 --- 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 a429b528..00000000 --- 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 dd268389..00000000 --- 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 45b4ce39..00000000 --- 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 8fe6025f..00000000 --- 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 bad09c2a..00000000 --- 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 55213cfb..00000000 --- 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 ecec5b91..00000000 --- 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 208459e0..00000000 --- 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 851712cf..00000000 --- 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 6ba1f55f..00000000 --- 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()); - } - }*/ - -} From aedb82d436ce836ed15652c50175a3939337bd26 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:58:26 +0530 Subject: [PATCH 17/28] Delete 15springBootJPACallingFromMainMethod directory --- .../.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 --- 28 files changed, 1800 deletions(-) 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 diff --git a/15springBootJPACallingFromMainMethod/.gitignore b/15springBootJPACallingFromMainMethod/.gitignore deleted file mode 100644 index 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 d4966895..00000000 --- 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 cfc85aa6..00000000 --- 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 81cea4d6..00000000 --- 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 3da2658f..00000000 --- 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 7c6a99ab..00000000 --- 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 4b576333..00000000 --- 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 24b14dfa..00000000 --- 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 c0124bc8..00000000 --- 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 37168ec0..00000000 --- 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 0ee1b2dc..00000000 --- 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 417774f1..00000000 --- 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 edae2df1..00000000 --- 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 ab5558cc..00000000 --- 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 747ed57f..00000000 --- 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 dd268389..00000000 --- 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 45b4ce39..00000000 --- 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 8fe6025f..00000000 --- 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 bad09c2a..00000000 --- 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 55213cfb..00000000 --- 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 ecec5b91..00000000 --- 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 e579783a..00000000 --- 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 4a6da677..00000000 --- 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 6ba1f55f..00000000 --- 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()); - } - }*/ - -} From 4ab5216ef4880f3fa9f16d88348ca96b77ee0a7d Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:58:32 +0530 Subject: [PATCH 18/28] Delete 16BankAppSpringBootJPA directory --- 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 127 files changed, 4283 deletions(-) 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 diff --git a/16BankAppSpringBootJPA/.classpath b/16BankAppSpringBootJPA/.classpath deleted file mode 100644 index 6d7587a8..00000000 --- a/16BankAppSpringBootJPA/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/16BankAppSpringBootJPA/.eclipse-pmd b/16BankAppSpringBootJPA/.eclipse-pmd deleted file mode 100644 index 8c5b4482..00000000 --- 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 fce9fe2c..00000000 --- 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 839d647e..00000000 --- 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 714351ae..00000000 --- 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 d8582952..00000000 --- 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 a12794d6..00000000 --- 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 839d647e..00000000 --- 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 714351ae..00000000 --- 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 d8582952..00000000 --- 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 a12794d6..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 77e0a5df..00000000 --- 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 359e7982..00000000 --- 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 ac4821f3..00000000 --- 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 77e0a5df..00000000 --- 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 359e7982..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 d09d388b..00000000 --- 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 1387b62c..00000000 --- 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 cc655e51..00000000 --- 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 80278422..00000000 --- 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 553325e0..00000000 --- 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 d92cd677..00000000 --- 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 f5673796..00000000 --- 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 28f96e7b..00000000 --- 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 e922d99d..00000000 --- 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 db6299ed..00000000 --- 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 175391be..00000000 --- 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 c6c1c92a..00000000 --- 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 135b0b5e..00000000 --- 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 5c1fdf31..00000000 --- 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 78ab35bb..00000000 --- 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 c8144f05..00000000 --- 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 6a59e423..00000000 --- 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 ec3a048c..00000000 --- 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 2ad91cd7..00000000 --- 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 6ab70cfb..00000000 --- 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 4f9760a8..00000000 --- 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 01ec788f..00000000 --- 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 2aefddb4..00000000 --- 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 a404f01b..00000000 --- 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 d5e58f91..00000000 --- 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 276159f6..00000000 --- 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 91fe7420..00000000 --- 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 dd78d4ad..00000000 --- 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 7def6b06..00000000 --- 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 922c7e65..00000000 --- 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 ec26c593..00000000 --- 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 3599a69b..00000000 --- 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 e496d258..00000000 --- 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 dba2067e..00000000 --- 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 8819a7fc..00000000 --- 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 761aed66..00000000 --- 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 5387ca94..00000000 --- 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 ef543af1..00000000 --- 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 9fafbc48..00000000 --- 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 a857db87..00000000 --- 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 dfc9283e..00000000 --- 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 0d4cdb20..00000000 --- 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 5575548d..00000000 --- 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 91dd5aff..00000000 --- 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 3bccdd00..00000000 --- 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 14b83d8d..00000000 --- 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 d7c94a95..00000000 --- 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 153572fd..00000000 --- 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 d09d388b..00000000 --- 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 91dd5aff..00000000 --- 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 Date: Wed, 16 Jul 2025 11:58:38 +0530 Subject: [PATCH 19/28] Delete 17BankInCapg directory --- 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 ------------------ 61 files changed, 3800 deletions(-) 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 diff --git a/17BankInCapg/.eclipse-pmd b/17BankInCapg/.eclipse-pmd deleted file mode 100644 index 3b4f2d8a..00000000 --- a/17BankInCapg/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/17BankInCapg/.gitignore b/17BankInCapg/.gitignore deleted file mode 100644 index 82eca336..00000000 --- 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 b573bb50..00000000 --- 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 5bf251c0..00000000 --- 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 019bd74d..00000000 --- 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 91fcd516..00000000 --- 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 f65ebb09..00000000 --- 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 adfb82f0..00000000 --- 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 06ec2031..00000000 --- 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 54cb1386..00000000 --- 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 d3ef5333..00000000 --- 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 5d97e9fb..00000000 --- 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 f0257c35..00000000 --- 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 6c017c2e..00000000 --- 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 d71f2792..00000000 --- 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 065159fa..00000000 --- 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 bf9f1528..00000000 --- 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 7557450d..00000000 --- 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 70ea8de2..00000000 --- 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 50c0153d..00000000 --- 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 427128d3..00000000 --- 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 c5af5af7..00000000 --- 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 40851219..00000000 --- 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 d7d7e633..00000000 --- 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 35799591..00000000 --- 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 50e52e5f..00000000 --- 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 d52ebb26..00000000 --- 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 a1a09385..00000000 --- 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 2b313054..00000000 --- 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 8ca484b5..00000000 --- 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 3d5d6d26..00000000 --- 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 c958e83c..00000000 --- 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 c08f97c5..00000000 --- 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 bb53cc1c..00000000 --- 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 c5754c5c..00000000 --- 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 15a792ac..00000000 --- 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 e603c132..00000000 --- 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 5711e5c3..00000000 --- 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 ad5053dc..00000000 --- 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 ed3ce906..00000000 --- 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 edeef456..00000000 --- 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 b3dbada0..00000000 --- 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 4839f4fa..00000000 --- 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 1c583f50..00000000 --- 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 1d2acb94..00000000 --- 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 bb1f1c50..00000000 --- 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 7f516c9f..00000000 --- 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 8621dc3d..00000000 --- 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 91f56b9e..00000000 --- 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 d207310b..00000000 --- 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 47657d85..00000000 --- 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 124f9c5b..00000000 --- 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 a464c987..00000000 --- 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 8256c10f..00000000 --- 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 85867ad5..00000000 --- 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 9e8c9978..00000000 --- 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 8a4a66f1..00000000 --- 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 213e1ea6..00000000 --- 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 6ebbc95c..00000000 --- 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 15bba781..00000000 --- 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 From 108e0c14ad3bfeabd2b502d52f4ef82f6b85addd Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:58:44 +0530 Subject: [PATCH 20/28] Delete 1Day1 Programs directory --- 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 -------------- 6 files changed, 326 deletions(-) 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 diff --git a/1Day1 Programs/ContainsDuplicateProgram3.java b/1Day1 Programs/ContainsDuplicateProgram3.java deleted file mode 100644 index 46e83893..00000000 --- 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 635b3418..00000000 --- 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 7eedcaea..00000000 --- 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 773665f2..00000000 --- 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 aa50186f..00000000 --- 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 7da9795f..00000000 --- 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 = ""; - } - } - } - - - - - - - - - - - - - - - - - - - - - - - - From 7c2f994da74bc4e3e934cdb3ebd8e185d6e2cde5 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:58:49 +0530 Subject: [PATCH 21/28] Delete 2Day2apr17 directory --- 2Day2apr17/LambdaExpressionDay2.java | 118 ------------------ 2Day2apr17/Person.java | 175 --------------------------- 2Day2apr17/ReorganizeStringDay2.java | 89 -------------- 3 files changed, 382 deletions(-) delete mode 100644 2Day2apr17/LambdaExpressionDay2.java delete mode 100644 2Day2apr17/Person.java delete mode 100644 2Day2apr17/ReorganizeStringDay2.java diff --git a/2Day2apr17/LambdaExpressionDay2.java b/2Day2apr17/LambdaExpressionDay2.java deleted file mode 100644 index 6086e8fb..00000000 --- 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 fba897dc..00000000 --- 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 Date: Wed, 16 Jul 2025 11:58:54 +0530 Subject: [PATCH 22/28] Delete 3PMD junit of DAY1 and DAY2 directory --- .../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 ------------------ 6 files changed, 527 deletions(-) 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 diff --git a/3PMD junit of DAY1 and DAY2/ContainsDuplicate.java b/3PMD junit of DAY1 and DAY2/ContainsDuplicate.java deleted file mode 100644 index 7e146207..00000000 --- a/3PMD junit of DAY1 and DAY2/ContainsDuplicate.java +++ /dev/null @@ -1,55 +0,0 @@ - -/* - * Program Name: Contains Duplicate - * Description : In a word if there is 2 or more than 2 occurrence - * of letter then output - * must be true or else false. - * Programmer Name: Ram Dafale - * DateOfRelease: 16-April-2018 - */ -package palindromepmd; - -import java.util.logging.Logger; - - -public class ContainsDuplicate { - - public static void main(String args[]) { - String inputString = "abcdefga"; - - final Logger printf = Logger.getLogger(ContainsDuplicate.class.getName()); - - printf.info(inputString + " " + check(inputString)); //Calling the method - inputString = "abcdefgh"; - printf.info(inputString + " " + check(inputString)); //Calling the method - inputString = "abcdefdh"; - printf.info(inputString + " " + check(inputString)); //Calling the method - } - - - - /* - *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 inputString2) { - for (int i = 0; i < (inputString2.length() - 1); i++) { - for (int j = i + 1; j < inputString2.length(); j++) { - if (inputString2.charAt(i) == inputString2.charAt(j)) { - return true; // - } - } - } - return false; - } - - - } -/********** -Output: - abcdefga true - abcdefgh false - abcdefdh true -**********/ diff --git a/3PMD junit of DAY1 and DAY2/ContainsDuplicateJunit b/3PMD junit of DAY1 and DAY2/ContainsDuplicateJunit deleted file mode 100644 index 6f07d498..00000000 --- a/3PMD junit of DAY1 and DAY2/ContainsDuplicateJunit +++ /dev/null @@ -1,84 +0,0 @@ -package mavenjunit; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -public class DuplicateTest { -@Test -public void testduplicate() - -{ - - -Duplicate dpt = new Duplicate(); // Palindrome is tested - -// assert statements -assertEquals("true", dpt.check("Wardha"),true); -assertEquals("false", dpt.check("Nagpur"),false); -} -} -//JunitTestCase - -package srcpack; - -/* - * Program Description : Reverse the input string - * Programmer Name : Ram dafale - * Release Date : 18-april-2018 - */ - - - -import java.util.Scanner; -import java.util.logging.Logger; - - - -public class COntainsDuplicate { - - public static void main(String[] args) - - { - // Applying logger - final Logger printf = Logger.getLogger(COntainsDuplicate.class.getName()); - printf.info("Enter a String"); - final Scanner scan = new Scanner(System.in); - final String str = scan.next(); - boolean value = isStringDuplicate(str); - // checking for string duplication - if (value == true) { - printf.info("String matched"); - } else { - printf.info("No match found"); - } - scan.close(); - } - - - // method to check string duplication - - public static boolean isStringDuplicate(String string) { - final char[] array = string.toCharArray(); - int count = 0; - boolean bool = false; - final int length = string.length(); - for (int i = 0; i < length - 1; i++) { - for (int j = i + 1; j < length; j++) { - - if (array[i] == array[j]) { - count++; - } - } - - if (count > 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 6f2ac5b1..00000000 --- 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 1b732f5e..00000000 --- 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 db83d65b..00000000 --- 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 cde64542..00000000 --- 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(); -} -} - - - - - - - From 1080aa4d079db37e3f2fff4370265c536b05d0ea Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:58:58 +0530 Subject: [PATCH 23/28] Delete 4Day4-19-April directory --- 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 --------------- 9 files changed, 218 deletions(-) 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 diff --git a/4Day4-19-April/.eclipse-pmd b/4Day4-19-April/.eclipse-pmd deleted file mode 100644 index 917288ec..00000000 --- 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 3a215370..00000000 --- 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 b9a14819..00000000 --- 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 746a0f87..00000000 --- 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 d16301f7..00000000 --- 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 517ac263..00000000 --- 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(); - - } -} From 2b14ba0169be9a7a254a790389017721d4413926 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:59:02 +0530 Subject: [PATCH 24/28] Delete 5Bank Application directory --- 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 21 files changed, 973 deletions(-) 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 diff --git a/5Bank Application/BankAppJunit.java b/5Bank Application/BankAppJunit.java deleted file mode 100644 index 817af257..00000000 --- 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 0e78f6be..00000000 --- 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 49bccc0e..00000000 --- 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 61377767..00000000 --- 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 a3fbfaa4..00000000 --- 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 67865d41..00000000 --- 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 d94ca7d6..00000000 --- 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 0c7b8a3e..00000000 --- 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 76a7717f..00000000 --- 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 817af257..00000000 --- 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 5f52fab4..00000000 --- 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 bae21cb3..00000000 --- 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 c8c47a73..00000000 --- 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 a713885e..00000000 --- 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 0e78f6be..00000000 --- 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 Date: Wed, 16 Jul 2025 11:59:07 +0530 Subject: [PATCH 25/28] Delete 6SpringBank directory --- 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 67 files changed, 2095 deletions(-) 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 diff --git a/6SpringBank/.checkstyle b/6SpringBank/.checkstyle deleted file mode 100644 index 6a3751a4..00000000 --- a/6SpringBank/.checkstyle +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/6SpringBank/.eclipse-pmd b/6SpringBank/.eclipse-pmd deleted file mode 100644 index 917288ec..00000000 --- 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 839d647e..00000000 --- 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 5df81821..00000000 --- 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 1deb939e..00000000 --- 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 f897a7f1..00000000 --- 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 8ce52e6a..00000000 --- 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 4b815374..00000000 --- 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 ca2af5c6..00000000 --- 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 502f11c3..00000000 --- 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 167334fa..00000000 --- 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 c8029891..00000000 --- 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 1df9e987..00000000 --- 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 b74f5aa5..00000000 --- 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 80983726..00000000 --- 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 34b3c282..00000000 --- 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 f4860678..00000000 --- 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 b6a1b1e2..00000000 --- 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 cd80e5de..00000000 --- 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 d5fef6d3..00000000 --- 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 fa7cfa99..00000000 --- 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 08828369..00000000 --- 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 2ff2963f..00000000 --- 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 e4199e93..00000000 --- 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 d8ebb80c..00000000 --- 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 5924b0fe..00000000 --- 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 a97131d1..00000000 --- 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 c334d457..00000000 --- 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 4792ce4c..00000000 --- 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 b5dc6366..00000000 --- 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 d5f59538..00000000 --- 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 595ce070..00000000 --- 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 2a152d8f..00000000 --- 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 da1fc624..00000000 --- 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 0edea518..00000000 --- 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 7508f553..00000000 --- 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 77e542dd..00000000 --- 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 6ca3f9d7..00000000 --- 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 4b815374..00000000 --- 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 0edea518..00000000 --- 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# Date: Wed, 16 Jul 2025 11:59:11 +0530 Subject: [PATCH 26/28] Delete 7SpringGettingDataFromJunit directory --- 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 32 files changed, 1120 deletions(-) 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 diff --git a/7SpringGettingDataFromJunit/.eclipse-pmd b/7SpringGettingDataFromJunit/.eclipse-pmd deleted file mode 100644 index 8c5b4482..00000000 --- a/7SpringGettingDataFromJunit/.eclipse-pmd +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ 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 f9fe3459..00000000 --- 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 2b81a1f2..00000000 --- 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 f897a7f1..00000000 --- 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 8d2bcffd..00000000 --- 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 8ce52e6a..00000000 --- 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 52ef9764..00000000 --- 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 3d0846e9..00000000 --- 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 4c435f19..00000000 --- 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 b06838ec..00000000 --- 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 a3382189..00000000 --- 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 5c8f8a5b..00000000 --- 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 b26ecc34..00000000 --- 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 b9dd2ba1..00000000 --- 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 d13e6438..00000000 --- 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 5b2cb1d6..00000000 --- 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 87fa5071..00000000 --- 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 4241b433..00000000 --- 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 d617fcce..00000000 --- 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 7ffb95a0..00000000 --- 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 52ef9764..00000000 --- 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 87fa5071..00000000 --- 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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 From 9f9811ad9ce15b73cf6a1081633926aee4705f5f Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:59:16 +0530 Subject: [PATCH 27/28] Delete 8SuperMarketxml directory --- .../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 90 files changed, 2326 deletions(-) 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 diff --git a/8SuperMarketxml/.settings/org.eclipse.core.resources.prefs b/8SuperMarketxml/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 839d647e..00000000 --- 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 ec4300d5..00000000 --- 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 0c560094..00000000 --- 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 0c560094..00000000 --- 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 cebcfbed..00000000 --- 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 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 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 c4390341..00000000 --- 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 d617fcce..00000000 --- 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 f3b7de0c..00000000 --- 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 cebcfbed..00000000 --- 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 c4390341..00000000 --- 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 cebcfbed..00000000 --- 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 f6c8f8b9..00000000 --- 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 9b565a4a..00000000 --- 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 fa09faa5..00000000 --- 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 69c134e3..00000000 --- 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 a57220a8..00000000 --- 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 a15935a5..00000000 --- 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 1db9abc3..00000000 --- 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 8fa10243..00000000 --- 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 7ba47d0c..00000000 --- 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 31ab1276..00000000 --- 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 9c5e6893..00000000 --- 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 dc80c5ac..00000000 --- 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 6f5b94ae..00000000 --- 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 d4c856b7..00000000 --- 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 7cb316e4..00000000 --- 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 c1d9f9d4..00000000 --- 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 c4390341..00000000 --- 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 bf7d030e..00000000 --- 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 d617fcce..00000000 --- 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 7963e99f..00000000 --- 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 cebcfbed..00000000 --- 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 c4390341..00000000 --- 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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 From 326a8f1f84a7ca7d8e75ec412c6c3f7ffc799964 Mon Sep 17 00:00:00 2001 From: Ram Dafale Date: Wed, 16 Jul 2025 11:59:21 +0530 Subject: [PATCH 28/28] Delete 9SuperMarketJavaConfig directory --- 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 111 files changed, 2971 deletions(-) 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 diff --git a/9SuperMarketJavaConfig/.classpath b/9SuperMarketJavaConfig/.classpath deleted file mode 100644 index 698778fe..00000000 --- a/9SuperMarketJavaConfig/.classpath +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/9SuperMarketJavaConfig/.eclipse-pmd b/9SuperMarketJavaConfig/.eclipse-pmd deleted file mode 100644 index 8c5b4482..00000000 --- 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 1100f0d7..00000000 --- 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 839d647e..00000000 --- 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 ec4300d5..00000000 --- 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 0c560094..00000000 --- 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 8c5b4482..00000000 --- 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 a102f811..00000000 --- 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 839d647e..00000000 --- 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 ec4300d5..00000000 --- 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 0c560094..00000000 --- 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 cebcfbed..00000000 --- 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 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 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 70653781..00000000 --- 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 9c1f900e..00000000 --- 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 d617fcce..00000000 --- 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 53c079fa..00000000 --- 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 cebcfbed..00000000 --- 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 70653781..00000000 --- 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 9c1f900e..00000000 --- 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 1cf0edb0..00000000 --- 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 abf85823..00000000 --- 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 5ee67adb..00000000 --- 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 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 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 448070a2..00000000 --- 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 cfb9f3b7..00000000 --- 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 2cda69ab..00000000 --- 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 bffefd8c..00000000 --- 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 193eca4d..00000000 --- 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 5e3aeed7..00000000 --- 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 331f7f9b..00000000 --- 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 1db9abc3..00000000 --- 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 c417c0ba..00000000 --- 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 fffc1be3..00000000 --- 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 5cab024c..00000000 --- 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 8c572914..00000000 --- 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 345474c1..00000000 --- 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 92d25e31..00000000 --- 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 536690d0..00000000 --- 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 0ca673bd..00000000 --- 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 b230abd2..00000000 --- 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 1ea11f11..00000000 --- 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 70653781..00000000 --- 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 9c1f900e..00000000 --- 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 6d9a363e..00000000 --- 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 c8c47a73..00000000 --- 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 d03f0f7f..00000000 --- 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 5ee67adb..00000000 --- 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 zcmb_i3wRt?bv{R0YsagxERST#@^j^5D>2o0bv^Ee-r&GVq1DDo5~Kg3|Z!YVI6HB8EL`) zdySkOrx;V^LH)4alGZU}*ZzaXfXy`5#>4i(!R`5+ZDtIMX>qq@jF`EUZCXcL{NaxF zU7eYcbSu+rS#Z8-4(6EZ!c(2G!o2u^nYE28;o`Jz(;8~YjaWc-z|u3u5z{)<;yo68 z>C}L3r_AhjcLkiNL*k&%unwmN45o$MIrnRelnpa;|Ig6Ted?-4A|&E>_R zVMWaDoBT*-TZXNt(vh?GOn!vfWn00%eJ)dJL*qWC*miT!NKh%&s#HbQajIkLoQVoO zn>B5RiI(=@D@Zwz8k)*doE8CJA)wpSdM+2IB}@y1TFXoWwy@iUn7c+2w1AcgmL${s zhReE(7PmI;n@vp1Rhmr+h05c!3dVBNFkenf_5GxRLe zriKubK3inc8X9pn*4h{vakbkjVArWsPO3t4;&d9*A|Gr~+(jvII)kZpnh9cRqe^qA zLZP{F+7vQXBnsEm=8&nP31X^MrMXn8(7ZT74FRem#ki*0LZ*r)h^cKV%_9ww?oMTm z-h5`iVeQrTr;!v|w>hAv_vuzjetUy4dpL!}tndCk-+T_?AGnc zXYEwR*q6$sV7Q<}*sXL@`CuM0Z;`6f8m9}HDl!myI;a&2^&l5A`9t~aphCM4>Wq;F z?yN!=;lY4q45sV^by1&aaWB)BhR#rQrz&9Dk;Z)rA<+_@*~5A|HJD5dirM$6)K8Z( z&4I#vA#@HpS=pJO%jpAgdOx-zs&#kLo`WoGl|D!x0?|k#{OUFB9arS_G&Wruq0g?a z#(m{1EYe^{lIcv4+YzMGO1>~I&8;ukdGyT}gH ztigOHa}=N0avtHT33)Dr@pOey%2l73EUKk?_R6u}+ZTR7q z(0oj#kJI&dWEmOruskwtr@_SARwT)mGq!W_X&;a;goTt5T5hs5tSaIM})?RJx@*g{q>^(?3o=VWO^!YeFhtefEJ*;O?VsduNcGEI?bQ`m* zoJwDy=Ml4EJ=bX)8HlQBQUmnl+vwD{z=F5BRrdU%N-xpNC^l}^?j6=4yQVO8ehN$i z;hS*MAdSsQQafo-*e*mixt1fmUOiu4G5$n9b@#BYCT=Z6nT-_%A^d^v9x$KatIyQd#co?2tPAHP}6rvUF7W zZy+|k#*w2q=9RT|xQ21Am}V5Y>|nhBiYBdRr(hFISPkgoC=)9=`Wx=w>o;d z`%7%+P|7}}qq&@`vJb?B6k!^!6v{E&6-G@DEID!ZMk$oBb2yu>3{I@=e)UxR359mzTL9rz;T?Kw6#92O2*W^Wl2R;4{zIkz6eRP| zLVP>!Iy8~6F+bTA`USEU=YC}EFQJShx-~egcGAogu?g>9^>X6nDDdF0@wE>2L@0rnM@J%TaCEuGceqoWpq+$5fsr`>DWw zcDwCF9wE^OynBV59m+$iaI$drDH{~h6;2dIE$g&9)i>ZqrZQOM(Ts-76)Mja?^>uK zdymmmd;`HqO_*RmaXJSTt^yTZh!Ad43eN}L(@(R9rH2@XUDo#S0zbLAPUVIE;izB$ zyUlr*AK5KSd-Dehvhn9bHVdMF$UbLtJ+FxKa;z%EtnX+JMOWpOyb8xKGmj!T-_5<0 z*|Hl4ep`_0nbtV3L9{{(o!h{+d@4O?SPC~nF+Qv<30_Ti;16zAc^$7u@}ub(S-@Wx zPPd@4Ph+)JOq{0j=@JITHr@10@CH6J&Kr>j&brAsRX$4^XI!qdb~=lq$!Dv)SuDuO z%IC?AyXqr$f7VAahm$7G-1gC3mb1@ukV;|6`j5rYc`CO_04w3>qVO`v(x2y;!NnuW zRUp0z?ofG$FFqf0AhqD49E?Pob6jD!6)o!|>q?iREOpmnDrK5aLz|k6E2qXOh>p9xX;kTC-@ST-^cwB5zw?d z)|^{GhiJ$9$@t-B84gd9;qp>sSJr5^h7|q)dfY*CSVzRW=nlYh;A5g6;uKPGzZ_jq z?Xn8XUiIuC4j?HcVVjeLew7TZ$~xtuw%C~N7F~r8LRS7s-W$X&{ppi}u5bqU{mBl` zNq>SA6lrJh>;*vK5zsh!w%kH0{CO@b3gf&~;ZO6!kmn-@72Ko0a_XL@M)Ew@vD+!%wGwb!Uj?72aK||>)c!rv(Kyi0>6mj z<(qY;2n9H!$%L0xenpa2uJev*Z-VStKF^BpC3#fJ*g7 zJU~e&H*ugy^qF~Uz}ShGexL?#ul8c)dXYHQ<8dkG#qs|vDsxuENx^5OyfJe=@iNN! z#G54N6R&}sPrSpyXA>;oO(6c9k6+Ki5?%>VYV8=+tev0*{jt|*VSlN%xNnS>9;f=X zYhR&yZH2b-1g$QmH)-W@YIeugYc1Z`>Bnhl4Ij^Sz=QRd)ct=1nDJoY*U$L)WmAa z#%ZV+(iw2E5nP=~OK1}%>1>Ok5E-r>rFRDxLt=@7tZw2IP{L3EN-OIeJ? zur5I+z6scoNa#a&Ch=Ut-467s0D6yhMN{)A<;Lkq0iXt>1eQvu9S*nCVn7m}lCF^e z)FS#YeZ&D(?tm)6_pAPJ04@N4P5`(N0J^6EaP<@b*ZkoC>;`~~0ALRQ^i2cc+9?1& z8VNv0KqaKLi8j$k<$)7)9R#vXGnUm)Qin@^KU`mmSF4v%4Q}KG@@oU~=R46y!b6l2 z{Zf#BEYkHJIF{(wh~rt>4JYWPQaaYA8Hr_+JXbig29eJO1b@KsS_2$d>3Oa2e93*} zk0O0-ba3EyJwZ43YqyTk?QdYcn~I`Of_4ijm+%(QQM&6` zo1p%5L98xn8%cZ^?~jj!P-~ub73vp;1oeH9es+5dRg0gPcK;}SW?Fu(f~RXx+pZ0H zst!E4u@FxWMS8joxhjlqhNt#fC+Oi4>Ta6#8tO@@WTv7$rhV3_DSiDh87R}9(4KM! z#_5@HdOQuHGM^D$|Zv~D)qc@;L977SgDFkb?2dkXc(<^iwphmG;s+~JBhHs4b zCsEWtfWIOTpgRO;>;#?gfKCX|iT=tV?KSO<%IeCIYWmU`eZ_%`VMF_>_H}pon=%{? z`ep#Q1;zMQIv1ZEbXy4YjsWzQDWGNKPaV+TiUfTn> zzO8+yQmrN+`|cEEu8!_ReC`6WyF-Z9dWaGzfRkx-NB+h^^u0(#IVf0)=_2mto(X!Z zU;Baf!!i0%ulA2kXc_-JsqVTFy&qe60E-?(Lw$%A(qj&kwXPWtN(t4`Pn^mVLmT)h zzLj8hIlWE)>LlRL0LE>-16U_1R41iBaNnc-o0R=`Cb@Sj&l5296l%b8XqTUNT)Snz zE^zHS#5vD%C}scWk-NVMnJ2q%c6Z;^AJhIzdsq8!r)U0J2)JaN{udysn48y)a_J;I z3$dE$W#BmuD`UvHaYW!%H1CNJCCve@wOr;=(!g?*UY9xRIUTa?Lw&oB3Cqz7F5+!bkz6yI^ zga5D7BKk(i|Kh;^Lay}u2c4PcMfy+UKqvZGUbc7 zoZ!{{RopPfYk{F@lv_sm3^y#iX%a1N;(QMdz7Jxfv68aEaROX7v%wn=)>>t<>CV2qAQAv_v9aKPz{&R za*l;ygt_RM!bNW+7Z$jXg3?fNL4;;{t9Vz%IA4THvJW3qDPc5UCcj97NpW z)(}v#nlI(c9L;JDB{){`<&jtn(R4v?(mMb4RNp_jZu#84y>(-Y__SD+C{+*?Lb(mEpLCID#$kae_@ z*N1?t3V^Ke5_TaKL^>P^L@1Gntezf76{ip%jz|~Ag^V`<$wp9eW(Y}`5;t9ZN~EeE zibQgS7o0WI2d9eD5}l~>fen{%E1+z}R?Z1QSrd@5irc;DxaC8lll}igF$GFg_QFjG zZv&L=fD*n1hN1LKfpSG8l*3+pn#((;ku18dwPKuYglL)!?gXAL;JFb0vL<{f3?Bn7 z<)g^ph4{xLe%JYMBpwR|QjUwue-lqWJF`UJiZ@@EDo!`)sIK9<|^ETgj%2;l4vAk2oH_d=$ zKd=k{%OJ2A(_s1JG+3f9aU&it$$%H_-BG?7w7jFeI|GswkQ}56>NiVarsAuOj7p-)9(39)h#YPqw!sZtr`yKpYKw^Dgz zdaYaqBv*r#YrsnQ(impt0sc%_D`4fMqm>6Ek%V;XA#rs35THCdvu=+8%MD=VMz9jT zDTY}o!UEm8SUwwxCF^Nrsoby}RzS+GLG8JOxgkhESdfVL26{ zoQT8{oj#6IW=x;wf#e0G&x=T(mqJKRC4F9vL=q*Hi9jk7Gf8C(V8%hq2}tGD5SUYu L%4<+(3BUe3BKfiM