From 5c2def1ba6fb4f11f1b23035feed5174a1e4c558 Mon Sep 17 00:00:00 2001 From: Jane Aarthy Date: Tue, 28 Jul 2015 17:57:16 +0530 Subject: [PATCH] Adding database model files --- .../META-INF/persistence | 20 ++ .../src/main/database/ER-MODEL.mwb | Bin 0 -> 9411 bytes .../src/main/database/Stratos-dbScript | 91 ++++++ .../Persistence/PersistenceManager.java | 259 ++++++++++++++++++ 4 files changed, 370 insertions(+) create mode 100644 components/org.apache.stratos.manager/META-INF/persistence create mode 100644 components/org.apache.stratos.manager/src/main/database/ER-MODEL.mwb create mode 100644 components/org.apache.stratos.manager/src/main/database/Stratos-dbScript create mode 100644 components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/Persistence/PersistenceManager.java diff --git a/components/org.apache.stratos.manager/META-INF/persistence b/components/org.apache.stratos.manager/META-INF/persistence new file mode 100644 index 0000000000..339782b4e4 --- /dev/null +++ b/components/org.apache.stratos.manager/META-INF/persistence @@ -0,0 +1,20 @@ + + + + + org.apache.openjpa.persistence.PersistenceProviderImpl + + org.apache.stratos.messaging.domain.application.signup.ApplicationSignUp + org.apache.stratos.messaging.domain.application.signup.ArtifactRepository + org.apache.stratos.messaging.domain.application.signup.DomainMapping + org.apache.stratos.messaging.domain.topology.Cluster + + + + + + + + + + \ No newline at end of file diff --git a/components/org.apache.stratos.manager/src/main/database/ER-MODEL.mwb b/components/org.apache.stratos.manager/src/main/database/ER-MODEL.mwb new file mode 100644 index 0000000000000000000000000000000000000000..1cd2055a605f2e8ad052f5a6194988cd2a1fa76d GIT binary patch literal 9411 zcmZ{KWl$YJkmkeP-5>7okYK?fxVyW%JX{~{8Z-oVC%6O%?ydoXTX1){>~7WF-qzhr z_4L$qfB*WMnd)v8c^Ft+004jp*b9A?8hzhxOa}r0_!Q6p%zvjA&gLGDmQG+cM=vur zZ%2nSLtXb>zLdZ`G&heM%} zoF!0*djtbPECyaE2RCt0pW?&U`_A(taXd7rbhR-N=N9ae2G1v)Lklmkb@|ASfY9?A zb_Jk7HI{!90WqOtTvL(c?=V1wt}iVWO5Azu_AY_QfkFdxm%)iw$>+L9GRqAfdr;GY za|VVF4!pgD?Ko;jNJWSKGcR{4ejZ@;2Z?FswZmPYQYTi3tMx)2B}qDbJ%EG~ggOb1 zy3D;=tBa(blNghjqU#d6k3CK9HV15(WOQ-v@g%tQG0UZf$n4v6BkY#R`?}%(a)S4x zrVH6_eZ5o{LZHmq21eQF?|0fH5!hbDl}q2O70^xvCCZh#!!=sx#AlzS8K=9DK5LSe zy@lB9?o{;$$q*-`oFC=Q9bhB|J!!m$j*27}?X}Cgc3Tck9zE6n$_Tp*m?&)T@h=>Z zCKgybHG6=TZ?q^MK;xLs!wPHmi%^6mZ$C1v zsCmF;bDm7Uw#1&ebziUGWEFC*#Amuqd-?fi>+7cL;a45RhHfHq(Wo{b7c|1m-j?AZ zUMhk8@;S_;@Ih(YxzO>ZmrpTQtt@1>Wq<6iZHDsyuDEa`IjrOO+-^ldx?aWoryb@E zb~)*IiSd^uM-IsGC2oX*QFqBm7S#|vkks1b5x#t#K$GIRIodE;_yN7&z&Q;^0t2xc zn?ZcNfZ}-IKzKT0W=6?H#UCpRMMc0xI{s#EMJFPd6dA{I9D$ntCxzRGM8aSAb!aS@ z9Rfi(8aC&^y>;(4AvZ`DD3nH9oL8K_H136Q@HQ-*!L8nPzy#ybSKE>d4F2#3E0kFQnUD-H?A z)Y$_wqM6zmo^6MOuAoD~FTjY@=QktR9FhHn4o*GLlV?!)2 ze=nsdI0FFd<8<`R4;k29zzkUB1YDs>Lq$PjQUZ`%M3goe7_$(m#62Q`une(6HRL+Sc6UClLEOD6qz2eezz4uA zBX*rZq2$+_h1Q4IASuLr&IHp=aPmc+VH@%Jnq+r$=6OR|6|M0N5g;Yz>*luHny7_&2GdW{~^XAo>NMm^~ zG*K3(n|V(uQ9=jOw%O?qIt)8fZ9Ha78Iye~q|1{PI6ASg`mpsGtXWk%h9A%)dBk>h zxfjp~22gVWzpTTB98Lc|L7QqWLc#(qy2^I3%Tlj2OViaUDs!YIHRp%QG&RZh825xq7%guyX_! zzVgKSf~Y5sSS6~o{83YmHbb?FK1WXyKCL7lIsD-ZleyhGF?>#m?T&9`>z0Yq#B*eL zl^Lr@AcQd3&O%^&@ag+$k;IS#qH@Pg6oG)V{^}?jSifxa^qL5b@PO{PLjG2Bx+xbz z+WoSJQ^g?L1X<=mu0q#$Il5*aHsKi@If-d{8R}`{xoV<#9kZChsCE%>33rln^vK<* zH3(TL4_=leG;d}^AJc{dR`>b3xtf&G4D{4XP@jd&W`)$eG@)z8N~4}GRT#@+t-2I3 z;4@dE*_ObbLL>A-rBt@yBxQ79T?C0MRMlNLQ>qli?{{W7x8~_?XNMP#jG6fPoKDb2 z|9A~^em7qoS3PjsNQl!WZEI}fYK~jAvtwk`QTWHGtX8j$`zOA-=eK3g}p2DSK~e>0I1pLF+uw(nt*Luoi`BUx)bt zvzFWvi<+k2Y`B(eF)^WepmogDYL_wRK2P4DE-TwU(FD8PtyAx|Uq<1GmZ^i_hfFY| z<M?NoZqCE4s;-1PXwZ*T>pgVAC> zHxPFKI%*v|SaXV!loa+|Y0GomwFHiEh`Y3&x5dmKU%j<*6T3p*grBZlO}9mzDWqB) zC6|8pzO>~VP}F-s?jU%BaE^_YRo^2}mdFU|StewLoe7v;=|UbHZERU#>n`=F0{u+f zFFOO83Bnss`9ACEJt2ZEsW$9JEu6%98(Z@G@E3%*5J}%}`QMTC2dX8!P?#OCuyk{w zp1u?_IUs4Tn2r8jKSI`L@m&1Tr}epJC;>sX-pQrzjj;xQ`R~%WyIfUG{F)DYZ;5o)y>oj%qOqz_l%^cru}5FA*~8?Dt4xQkVE zyol2@S>qJ!k$}Lsq9oKKhL|3mPQCR)^U(UPFjD2V5V(gX@fvG0dCi+Gnbgf-J93K& zf6d8I#yIUo!9S5`pahdYftqpAaa(^0P{eCH_EHnb40*Ge8Bf_{0H0NW4VFMCQg^?x z%nO;TUJCxHKa>N(f_8lf&o8jluiWt*3QO@=`+ugCv(KVlZ2hXYs9Gg5O@TP=@SYF2 zT;iV^Rs<#x13d1+vvm+5Qc^je2SxZZXs=Y(C`Uk0x1<*5j21cx*;WoD7CN;RKnbx3 zki~j}lH3RcRm-jumI%>aX~lrt*^9D&X@SLj4fr2QLQE=FcW9%e7-`5&{4*?W3(^~C zz(yI;r|BMB1B0wQ$%?BI1qBzfr#r*ylkS4YjLqKGDf^G}^LNbW!;@Fc#zJ zES5H*GG8Am{?3(1)!wNz{=&GF+9@xIt49vIPNmk~+1K95LNCHA;FU30t8rdi*;UF^ zccup}<#c=Cqs|BmNGRcS`kC8Mf}Ge}GB{7KXf<{_?(TQ{5NN4Bm!X}dc+Y14Z}fI zERt+=(J_`Ntjc2-ZWc2Wmoq;kZ4SLavRop6?N6=}t6*^{zJ4S&BwMe%BAieoE=EhF zaQnm31fF-43>t$K&|wO{KT28ewFSlcX>f(-GB~}GsH|54RS=)of}A!j8K1 zDIfg%3rtSrDZv-l3C;}TIrc!&!HALe2s~13x`;>=f8KoRzyNm_w`UhucUGv$KbFx+ z(;Alvk*qc0TlNVSyAb144a7?UoV)&XtNtj#YBSFmu|NybsxLDDfb?&m>9i`qE$0KEe9r6gS%^R!uIl< z>kxI<4iGf58=bRGq_on*(N{gS4UQF$+iqT5h@^w#d-6C+4tD(9lys10r6B^EBw%UFi77`S;_e zXsjEm(zEu?nuvdEVLsQ+{nfPl)Gsy`uxzJEA+{*3a)-rpkTm2lOBvB@Yg<5t+~>$5 zP%NPxO01UO(N`!@^H8~jT6y;1k6Z4Od};?qzuhlHjs7k{in^L$-{x zF~N$;nwaYY$RTG-)tYc(nqn^Bm=QZ7DuHb$c(7RC8K!EWN5cJpObF0f8)V=U!O**o%~2X(*Tl(?qYA^AR@=5%9pVSTzhQNo--PH9(Ti+Y(G=FDEFv*gzna`DC}!Y3g~ zlndZF5n&f}=mZnFmQdvkkMxkkUvg^^S5H|B0d#bFj6dyRO!x-cQhSo2tvM6&R}S3T z!X_qATj?H9rNY&P2ESh59xIDx7m*gf$|b}mP;jq(Uexa;D&p;wX!H*HDc!rg z#>B=#QJCpcO!9u9WQ6JnNktEu>_WEWbk^kbV&P|1Xxqg=#&h^GA1oP^7Qy+X2$7&$ zzjndM`5OqgSqE#pMp_pk{TKYLtdQ{vXX=7lG<8e*+b}34sFOpyjsJ>t3i!>=-}q^I!t75ajXXzvAh#i?z$p+sP9rBB(lZmLLJi5HW6oGxC$1u52Xspb%+ z2IAaD#eRpswTthg-CeGqP@*?(sXK0I_!AGheTFj*1Fn50*#6%ZRv*@_HqsM*k6fwS zAos@9;0TT)-u2-ykgyiv zBEQr}Kg{dj-!aZh#XYWh*KpF0VEN(D3;IH6-O&HVGqBYV&^bVMO4S>2J_Y5VVWq|3 zZOGfzkqy6*7^YngXJU9syj26y*5;yIxAtCyGzMMj-RvZ;HKsB{7r^F4nYw3b=ar#El0f+2yRD(3-vAIsg_Yk+COV-`_bmihYiF6c^ zAWS?n9V8<1*5DZ2Iw0zWc?q^T#oV$y&X2-g|5ZnbhFlF&raNdjXl&ANaBO>YdQ}np zX6`0LKAX~-ZQll0zAr>Ld_96S84EAubGxT{T~sS*W|||e+Y|y86*tr!0L6?%$rWmO zp%notBIL=!;Tzvn*L0VP=ZfI--{VYaxT`onE<={_b;^B@>9l{@)GDo03D|_0D^&SZSTv2 zcm2k9AGik4&u;GSt7aS02Puh<-H>_#(@ci=XF$AwNc$h<667LnQioi*Pb{<5q9s#P z%IvjDY#){OA2rc-i_5W_)6@4FWk-D!D}p7JhDinxxqzQt{63hPw9jlS=7w&(Gh&Nu zGIf0-8?WUeyMx7w=Ye)O(Q05k5zS#`QQYH^@#jC4sSQ4V7n=0jp#wVTljmtQ89Kwo ziTtWm4h|SKb_4H_x&QusJ>40`(`2j*m&@|2QX?UZsZ-7xD}nwQP7e9GScHb!e}Yk6 zEt=MC;9vCH!iKfUHVDSmz^Ff;G?jZ8Y?OELWB0e@bhH9GgQMN6hF6lMCDcO3_&4^D z-yS~hZ)aPrsh#Wu%Xb9f7m+EmFuva^%{f+(*>FJ{+b6Vy`8%jP!ReYbYe?eya(I(K-$+w~Wld8WAEZ41s zMf_5soaz_Cqg?ejB|s}*je7!Lg!9X$Fn_?x-W~i>V`=@J?tB(ksgK0QvjG3Alo2z# zGR80MBqb(n~>BuSh@cIF92AzvH$t-k=Q^t0Pb&ggM?Q1R-cX6(r% zLsqx#O;^@7VLxdsM-I+B$({$%$oOp_x7OlCt;S*dIj@ZzmC@4vEE>FlvyxgOiIEdE ztKqzNar2CSYH^B1rhw~re3v68)%5N?(`0AQL8psiQa&v{?nmptzPNLIz6b;m#Ns0pF^Zo3jbff9nV2bBgqiGPD1puf1 zi66I&A3c5L-Qfy$+QD^PO7}e9hk?X2Lo=n3RmC(y04yZWo9z@`hg*6maY{X{qZM!Y z$HXMahIadAw{O2AvFr-SZpXabQ}oT0a9aKCjSjV;1k(5Q5f)u9{AkbSr%4Ubs zy8t$C>-9|R)R3^@b)jUz#?G<`$K9S%!=A~k=tt#zbW?WdxGH@pf#Cv&85f-c`_<#g z14Qn@^X@gKhPlCBI73X1%nfc2;qCp=LU~;-r}xD5@qwi zP(3p`9?_Nw49Hq~0GWX>8%?tma*C}G2b9Jx^|L6iVOxo6-zT#r8%-6; zH1WziYCH~Pgf#&hPULWnmu8moBsts)KCeZXoFW#x>(82!ddHBik{=o?%Sq$yZcC1zsTxBwOK9{ad zfSY@FaD`A9Z87Lz2sfpJ(jQDOcU_b3kru$^#ZQrcX^~^-1=J$qAit@&?S$2U?$1qI zW4e9N`(w*nW23!oD=f;2*TeRmXJdB>)(+p9c?H-y)z@*Al`e-ZhVz)Toi4ty=jr3? zMM_(*_N$Wzppkz^kBi5`{cWI09ocB65?L8>*Hw9@yE4G$o)7rvV3WKS@*vE ztFdvYaTyE@R*ODG-^Q07^ix&?@Tyb~xWq!)Z4bDmryu7EW@y7x<86PZ-l*BlxwdMs%|`H=Uu$(DgTDS{wV>_XODe zd|xkP-ZzAYl?XefQ%K7otnTV*};jI zjfYDZ9Cq2-B1rJUi)l#ZW6rIRwr>CNn3s@=7MQ*PLVlcUSK*3WQ!9O|r zS`vAKyZ6-h=LDQ=%kcD+R%WKjk43byqU4X;>C%eTJdsTTB9^&VWV-rJ%xg^`7Lr4i z0C|7cV=gAW-+lN}?Fhe_v?5C1%$(~kTc0bxXWbwxOKuxkjTK<6MSOXbEcR(yv^W`9qKsh%vkP2-={ffZ?*y0g!^Jc3r6f#%m^Mi?uhLjL2UmzHO3Xb z&Jlcp$NkUBgD%P@g76f!!InW2t%Dw0^q*||6S8UL!gdm*QQVb~ajRZ4E*^1`&kP2f zhS<%n>6IqpgJHTCDC3rOUGQb=g%Dn+_lZG_}dw_nq~&6xtN*G9ePj70HH*Be|NSG?NS`y&xk}AkGF$vg^^C zabO~L&LM(VDB(E!`S{N?HlEDd4KsQ;g8CakncmvIK2F{5dht*eYP5I?89V`q;s=jV_V}p zR-kT+!HbBvt*7*fn5JW<;aKhoygk3!XE&#gd$jB1d{C(3b?}f4w#5$G&H{INA`nGN zTt!(m<7O1uiMRPQ4Jol7rd2;q9@MqPk-D- zPdSA?9nHQw{Pow6^WrWrqaZqf90c${eNKzOvAA=-YXp0@M8l^c*m|o7ZimiFSW%_w zQ{5&Ez0P5VJ4H8A;ghpYY-)!~LB|BjL!bK@;FkD(V-V;SIOuVr7ERdYpYrCmV$_at zX%Rrp!j>G(Xkv(vW(Cw+V9dM35cFBoM zjx4Y;dE*6^`wr-lmuA4;(QjH$#dSS?zxMIr#e}^utLvx~1|MHtuKacJsOJ1?&~wal z!}s(!PVXB&cV+xeq4K|b7_KP75m#%^H>Hf6IgJIhpd{tY4=`mT~MzQa>d>3h|npolk2Hy{*Gi9RpT zTmrUN{^ja`7A;CJC(>DaqP;qNG`u3c;@bM%Qy2RP`NSsRo7Ss(hq=;`4r^5Xh8 zW3dif?ri#BrK&~)*4&zM3~*EwD5;EvGjm6@r=kU0_2j-p;a755j*K;JS^W zOY=jnHDGSS6qR9sFF0l~ z$thR8SIl=S4AZo%oCnapt;NOqM_h%ZR@lVcpp>P!1#J@>j0jB9$1oVQkzwy`sg(b% zkiZn<@$**U^6e9x9?Y#YD&;lVQ)_;=e||GA(lrW%Qjv%H7smhpE}nm}{ols_?CJUM z=>Hdg{tt8j_+M=LpNRiSr2m6B`-k{%v{I3WgZ~dB%)eRjPY+Q4GXoTT)KwLL+RkqF zW|mIoHb6yZ3rh!}shhctt*0fBgAIi2_#Y>%?&da@j;8JcKy|R2DcIRv(bUP*+R_dA Fe*rbRvD*Lu literal 0 HcmV?d00001 diff --git a/components/org.apache.stratos.manager/src/main/database/Stratos-dbScript b/components/org.apache.stratos.manager/src/main/database/Stratos-dbScript new file mode 100644 index 0000000000..961bee7d8b --- /dev/null +++ b/components/org.apache.stratos.manager/src/main/database/Stratos-dbScript @@ -0,0 +1,91 @@ +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; + +CREATE SCHEMA IF NOT EXISTS `StratosManager` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; +USE `StratosManager` ; + +-- ----------------------------------------------------- +-- Table `StratosManager`.`Cluster` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `StratosManager`.`Cluster` ( + `clusterId` VARCHAR(255) NULL, + `serviceName` VARCHAR(255) NULL, + `autoscalePolicyName` VARCHAR(255) NULL, + `deploymentPolicyName` VARCHAR(255) NULL, + `hostNames` VARCHAR(255) NULL, + `tenantRange` VARCHAR(45) NULL, + `isLbCluster` TINYINT(1) NULL, + `isKubernetesCluster` TINYINT(1) NULL, + `appId` VARCHAR(45) NULL, + PRIMARY KEY (`clusterId`)) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `StratosManager`.`ArtifactRepository` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `StratosManager`.`ArtifactRepository` ( + `alias` VARCHAR(255) NOT NULL, + `isPrivateRepo` TINYINT(1) NULL, + `repoUserName` VARCHAR(255) NULL, + `repoPassword` VARCHAR(255) NULL, + `repoURL` VARCHAR(255) NULL, + `catridgeType` VARCHAR(255) NULL, + PRIMARY KEY (`alias`)) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `StratosManager`.`ApplicationSignUp` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `StratosManager`.`ApplicationSignUp` ( + `applicationId` VARCHAR(255) NOT NULL, + `tenantId` INT NOT NULL, + `Cluster_clusterId` VARCHAR(255) NOT NULL, + `ArtifactRepository_alias` VARCHAR(255) NOT NULL, + PRIMARY KEY (`applicationId`, `tenantId`), + INDEX `fk_ApplicationSignUp_Cluster_idx` (`Cluster_clusterId` ASC), + INDEX `fk_ApplicationSignUp_ArtifactRepository1_idx` (`ArtifactRepository_alias` ASC), + CONSTRAINT `fk_ApplicationSignUp_Cluster` + FOREIGN KEY (`Cluster_clusterId`) + REFERENCES `StratosManager`.`Cluster` (`clusterId`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_ApplicationSignUp_ArtifactRepository1` + FOREIGN KEY (`ArtifactRepository_alias`) + REFERENCES `StratosManager`.`ArtifactRepository` (`alias`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + + +-- ----------------------------------------------------- +-- Table `StratosManager`.`DomainMapping` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `StratosManager`.`DomainMapping` ( + `domainName` VARCHAR(255) NOT NULL, + `serviceName` VARCHAR(255) NULL, + `contextPath` VARCHAR(255) NULL, + `ApplicationSignUp_applicationId` VARCHAR(255) NOT NULL, + `ApplicationSignUp_tenantId` INT NOT NULL, + `Cluster_clusterId` VARCHAR(255) NOT NULL, + PRIMARY KEY (`domainName`, `ApplicationSignUp_tenantId`, `ApplicationSignUp_applicationId`), + INDEX `fk_DomainMapping_ApplicationSignUp1_idx` (`ApplicationSignUp_applicationId` ASC, `ApplicationSignUp_tenantId` ASC), + INDEX `fk_DomainMapping_Cluster1_idx` (`Cluster_clusterId` ASC), + CONSTRAINT `fk_DomainMapping_ApplicationSignUp1` + FOREIGN KEY (`ApplicationSignUp_applicationId` , `ApplicationSignUp_tenantId`) + REFERENCES `StratosManager`.`ApplicationSignUp` (`applicationId` , `tenantId`) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_DomainMapping_Cluster1` + FOREIGN KEY (`Cluster_clusterId`) + REFERENCES `StratosManager`.`Cluster` (`clusterId`) + ON DELETE NO ACTION + ON UPDATE NO ACTION) +ENGINE = InnoDB; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/Persistence/PersistenceManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/Persistence/PersistenceManager.java new file mode 100644 index 0000000000..ac81fa82a5 --- /dev/null +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/Persistence/PersistenceManager.java @@ -0,0 +1,259 @@ +package org.apache.stratos.manager.Persistence; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.persistence.*; + +import java.util.*; +/** + * Created by aarthy on 7/27/15. + */ +public class PersistenceManager { + + private static final Log log; + + static { + log = LogFactory.getLog(PersistenceManager.class); + } + + private EntityManagerFactory entitymanagerFactory = Persistence.createEntityManagerFactory("PersistenceUnit"); + + private static final PersistenceManager instance = new PersistenceManager(); + + EntityManager entityManager = null; + + + public static PersistenceManager getInstance() { + return instance; + } + + + /** + * Add object to persist + * @param object + * @throws PersistenceException + */ + public void add(Object object) + { + System.out.printf("entered"); + + System.out.printf("true"); + try { + entityManager = this.entitymanagerFactory.createEntityManager(); + entityManager.getTransaction().begin(); + entityManager.persist(object); + entityManager.flush(); + entityManager.getTransaction().commit(); + String msg="Added Successfully"; + log.info(msg); + } + catch (PersistenceException e) + { + String msg="Error while adding"; + log.error(msg); + } + + } + + + /** + * remove object by primary key + * @param object + * @param primaryKey + * @throws PersistenceException + */ + + public void remove(Object object,Object primaryKey) + { + try { + entityManager = this.entitymanagerFactory.createEntityManager(); + entityManager.getTransaction().begin(); + Object found=entityManager.find(object.getClass(), primaryKey); + if(found!=null) { + entityManager.remove(found); + entityManager.getTransaction().commit(); + String msg = "Deleted sucessfully"; + log.info(msg); + } + else + { + String msg ="Object does not exists"; + log.error(msg); + } + } + catch (PersistenceException e) + { + + String msg="Error while Deleting"; + log.error(msg); + } + + } + + /** + * retrieve an object by primary key + * @param object + * @param primaryKey + * @return + */ + + public Object retrieve(Object object,Object primaryKey) + { + Object found=null; + try{ + + entityManager=this.entitymanagerFactory.createEntityManager(); + entityManager.getTransaction().begin(); + found= entityManager.find(found.getClass(), primaryKey); + if(found!=null) + log.info("Object Found"); + else + log.error("Object not Found"); + return found; + + } + catch (PersistenceException e) + { + + String msg="Error while retrieving"; + log.error(msg); + return found; + } + + } + + /** + * + * @param tableName + * @return + */ + + + public List retrieveAll(String tableName) + { + List objectList=new ArrayList(); + try{ + + entityManager=this.entitymanagerFactory.createEntityManager(); + entityManager.getTransaction().begin(); + String msg="Successfully retrieved"; + + objectList= entityManager.createQuery("select obj from "+tableName+" obj" ).getResultList(); + + if(objectList!=null) + { + log.info(msg); + return objectList; + } + else + return null; + + } + catch (javax.persistence.PersistenceException e) + { + String msg="Object not found"; + System.out.println(msg); + return null; + } + + } + + /** + * + * @param object + * @param primaryKey + * @param setValues + * @param whereValues + */ + + public void update(Object object,Object primaryKey,Map setValues,Map whereValues) + { + String setQuery=""; + String updateQuery=""; + String whereQuery=""; + + try { + + Object foundObject =retrieve(object,primaryKey); + + if(foundObject!=null) + { + + String query ="Update "+ object +" obj Set "; + int count =0; + for (String key : setValues.keySet()) { + setQuery += "obj."+key + "="; + + if(setValues.get(key)instanceof String) + { + setQuery+="'"+setValues.get(key)+"'"; + } + else + { + setQuery+=setValues.get(key); + } + + count++; + if(setValues.size()>1 && count!=setValues.size()) + { + setQuery+=","; + } + } + updateQuery=query+setQuery+" Where "; + + int pkCount=0; + for (String key : whereValues.keySet()){ + + whereQuery+="obj."+key+"="; + if(whereValues.get(key)instanceof String) + { whereQuery+="'"+whereValues.get(key)+"'"; + } + else + { whereQuery+=whereValues.get(key); + } + pkCount++; + if(whereValues.size()>1 && pkCount!=whereValues.size()) + { whereQuery+=" and "; + } + } + + updateQuery+=whereQuery; + entityManager=this.entitymanagerFactory.createEntityManager(); + + entityManager.getTransaction().begin(); + + Query queryString= entityManager.createQuery(updateQuery); + int updatedCount =queryString.executeUpdate(); + + if (updatedCount==1) + { + entityManager.getTransaction().commit(); + String msg="updated Successfully"; + log.info(msg); + } + + else + { + String msg= "Error while Updating"; + log.error(msg); + } + } + else { + String msg="Object not found"; + log.error(msg); + } + + } + catch (PersistenceException e) + { + String msg="Error while updating"; + log.error(msg); + } + + + + } + + +}