From 1e12ff045c64b705d3b4a6ba909a7e51047f771c Mon Sep 17 00:00:00 2001 From: pinene Date: Mon, 2 Mar 2015 10:12:44 +0100 Subject: [PATCH] Database management was changed, now it opens the database and it closes it every time it is accessed. Furthermore, bug #17 was corrected --- ruralHouses/db/DBjcampos004.yap | Bin 4853 -> 6118 bytes .../ApplicationFacadeInterface.java | 2 - .../businessLogic/FacadeImplementation.java | 7 +-- .../src/businessLogic/LoginManager.java | 4 +- ruralHouses/src/dataAccess/DB4oManager.java | 50 ++++++++++++------ ruralHouses/src/gui/BookRuralHouseGUI.java | 2 +- ruralHouses/src/gui/StartWindow.java | 5 +- 7 files changed, 44 insertions(+), 26 deletions(-) diff --git a/ruralHouses/db/DBjcampos004.yap b/ruralHouses/db/DBjcampos004.yap index 27d41f66a353bfca6e090951770020d4b9648cb5..23ef7bcfd3ed72891835d044becdd207f07b7236 100644 GIT binary patch literal 6118 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 literal 4853 zcmds*U1(fI6vyZ8Ztf4Sor-A!UXw=qbT~I)EBW278McnMG!+e7J&h93grcGK9oaM}! zJ9B2{%sFSyIkWj}y5O0G3*+7yV}dEj+G&3PUJdjBjc)Q0J|+Q*_a)T|+fr37-Vd}J zfro(>&FBTb0Ztkd+X@~A8uF%K#!R0XGUKMrJYbH3`^^MHuEbzNrFkdS?ci~+7KX8$ zo!w^gCTr5P+n9UIOo4YqJv&%?3djPJj8>Ep+A$p|7&4DBIAjLdT;zvgz>@lL(Tm0x z&0&5+Y(}vYHKyb3Di({=B8>sIx&^$E(fco~ex`BetC7F>ZXHae(wWU2-RaJ3sy&^} zW!p1bI#T&uzB{v}JCjdwwzc8B7D-fMPXa1luQ~hki|71l`=t)2i>SlvRfixFwf7tC z7LCrKj5W|#sY>rxc>ambQ9!4d24?7kftEJfji#1*d9|?jThUG-lbqQ_-OmzMI*{9v zp|+ArNU&p}Q0wfFxT-lq?@2wte7N~ni&1unO+PaEQqghy%hV8)YtP0*hMZ^z_E`SshcA-;4sO67diT6r~V?O_kC9hNv| z9oJE8ac7NxRE6dqR0c6Rh_jhmbez3 zSsqqgnTLHyMdnjk7OTZ;*sJjb8$XJ@_ki!kfPMkXnr7dBoRHj4<<;@uz%xqep93wk zLrCvDs)i~m{zp+`@v~~I4L(t_A4zYF3mHYL&>>rzytS?z7B^%LVWFjqS+>)fLPeyD zeP)@`+{6^?D+W@^)P4cW8L&Ievf2iPu!CG9g~koV;@|JfeaBU4F$W4pwS=fYz@}LI zvr7au`cNgREdW&hOW-?zCgl4axMrt0&V|zfD2?T>5qer-XbSJu&&7fVX%DZ_a1Ojw zUS$23rt$R6s?cL!CZb8ltptS3%46F&cDDekAygRu~__P zo0TNn+K6};xC6KqsE6t`_3uUoR#B_kO(*F`28ndR{$_rykhe#5C!?-kW5z7&qZ$CO z2V?n74}l*C-w9r-?8Go@iO0HAVCiu=?Ki=-52C{`iiGixzGd5yk!8j-4#3c0a#M-REUk@1__$~X^7*`MtCo{nI+bN$xH&| zE$p8SaeNrOl5un)YmBL1k|$!A6!g!7(`>1ESc(5Fn4~iB!0es;5&Rq{ejEHA3L;zZ z)^PX{@T+XqSJL4PP$`c{_Hfn#E^0qAur|Ibjo#AyTG=wi#RzrT$#;gf`t*}_rB_zn zN~Pdm<+TpbhZyR&fzKa-Pl8SGF&`&^rrBPrDx^W85{!m;QS@;Mr1mh%m2a9i^Qt|B zvXurM<=7Kp(pL62^LZ!E@;%Fv>i&0LW{G>dd;Y)nD#haOC*%SIw&JE3?A-b+u=VXp zr}mQXN;)%fJ$mU77EjHs|q>wT_W-UJf9v&i=U+j(h_Fz zCNYUQ940Tq9bu#HG@NbHplk%rlu4G}@-%JHRjE5ADtQj5^zN*pYQV2It*@Yxe^;Eb zIV>l3e^{9Fw3R3j47@Y6*V5h?uIe88`jaDiYg@UySFYsmo|ck_dtT~o7QQIa5&Cft zNxjJ2V=}J2E`|GA{jH--Jkgn5uC07HOt0xjzb>oRSzKgO3~Gsjne^{sn8f6Ac$t99 z<0WjDnaV7}>@-w>%MxWOVWucimop-nkIRarESDL{q{8e-3Z%`t%1v~qU49~kgfWV~ J^{it(*}q;nPmurs diff --git a/ruralHouses/src/businessLogic/ApplicationFacadeInterface.java b/ruralHouses/src/businessLogic/ApplicationFacadeInterface.java index 215e60b..8863af3 100644 --- a/ruralHouses/src/businessLogic/ApplicationFacadeInterface.java +++ b/ruralHouses/src/businessLogic/ApplicationFacadeInterface.java @@ -68,6 +68,4 @@ public interface ApplicationFacadeInterface extends Remote { public Vector getAllRuralHouses()throws RemoteException, Exception; - public void close() throws RemoteException; - } \ No newline at end of file diff --git a/ruralHouses/src/businessLogic/FacadeImplementation.java b/ruralHouses/src/businessLogic/FacadeImplementation.java index c4670bb..162a38b 100644 --- a/ruralHouses/src/businessLogic/FacadeImplementation.java +++ b/ruralHouses/src/businessLogic/FacadeImplementation.java @@ -75,9 +75,7 @@ public class FacadeImplementation extends UnicastRemoteObject implements Applica return dbMngr.getAllRuralHouses(); } - public void close() throws RemoteException{ - DB4oManager.close(); - } + public Booking createBooking(RuralHouse ruralHouse, Date firstDate, Date lastDate, String bookTelephoneNumber) throws OfferCanNotBeBooked { @@ -90,7 +88,10 @@ public class FacadeImplementation extends UnicastRemoteObject implements Applica exc.printStackTrace(); return null; } + } + + } diff --git a/ruralHouses/src/businessLogic/LoginManager.java b/ruralHouses/src/businessLogic/LoginManager.java index da6078b..58ec39b 100644 --- a/ruralHouses/src/businessLogic/LoginManager.java +++ b/ruralHouses/src/businessLogic/LoginManager.java @@ -1,8 +1,8 @@ package businessLogic; -import gui.StartWindow; -import java.rmi.RemoteException; + + import java.util.Vector; import dataAccess.DB4oManager; diff --git a/ruralHouses/src/dataAccess/DB4oManager.java b/ruralHouses/src/dataAccess/DB4oManager.java index 6d55e8d..3e9fd76 100644 --- a/ruralHouses/src/dataAccess/DB4oManager.java +++ b/ruralHouses/src/dataAccess/DB4oManager.java @@ -33,9 +33,9 @@ public class DB4oManager { if (mode.compareTo("open")==0) { db=Db4o.openFile(Db4o.newConfiguration(), db4oFileName); db.ext().configure().updateDepth(5); - System.out.println("DataBase Opened"); } else if (mode.compareTo("initialize")==0){ + try { new File(db4oFileName).delete(); db=Db4o.openFile(Db4o.newConfiguration(), db4oFileName); db.ext().configure().updateDepth(5); @@ -55,16 +55,17 @@ public class DB4oManager { db.store(alfredoAcc); db.commit(); System.out.println("DataBase Initialized"); + } finally { + db.close(); + } + } } public static ObjectContainer getContainer() { return db; } - public static void close(){ - db.close(); - System.out.println("DataBase closed"); - } + /** * This method finds all existing owners @@ -72,48 +73,51 @@ public class DB4oManager { */ public Vector getOwners() throws RemoteException, Exception { + DB4oManager.openDatabase("open"); ObjectContainer db=DB4oManager.getContainer(); try { Owner proto = new Owner(null,null); - ObjectSet result = db.queryByExample(proto); + ObjectSet result = db.queryByExample(proto); Vector owners=new Vector(); while(result.hasNext()) owners.add((Owner)result.next()); return owners; } finally { - //db.close(); + db.close(); } } public Vector getAccount(String usr, String pwd) throws RemoteException, Exception { + DB4oManager.openDatabase("open"); ObjectContainer db=DB4oManager.getContainer(); try { Account proto = new Account(usr,pwd, new Owner(null,null)); - ObjectSet result = db.queryByExample(proto); + ObjectSet result = db.queryByExample(proto); Vector accounts=new Vector(); while(result.hasNext()) accounts.add((Account)result.next()); return accounts; } finally { - //db.close(); + db.close(); } } public Vector getAllRuralHouses() throws RemoteException, Exception { + DB4oManager.openDatabase("open"); ObjectContainer db=DB4oManager.getContainer(); try { RuralHouse proto = new RuralHouse(0,null,null,null); - ObjectSet result = db.queryByExample(proto); + ObjectSet result = db.queryByExample(proto); Vector ruralHouses=new Vector(); while(result.hasNext()) ruralHouses.add((RuralHouse)result.next()); return ruralHouses; } finally { - //db.close(); + db.close(); } } @@ -126,32 +130,45 @@ public class DB4oManager { */ public Offer createOffer(RuralHouse ruralHouse, Date firstDay, Date lastDay, float price) throws RemoteException, Exception { + DB4oManager.openDatabase("open"); ObjectContainer db=DB4oManager.getContainer(); + Offer o; + try { RuralHouse proto = new RuralHouse(ruralHouse.getHouseNumber(), null, ruralHouse.getDescription(), ruralHouse.getTown()); - ObjectSet result = db.queryByExample(proto); + ObjectSet result = db.queryByExample(proto); RuralHouse rh=(RuralHouse)result.next(); - Offer o=rh.createOffer(firstDay, lastDay, price); + o=rh.createOffer(firstDay, lastDay, price); db.store(o); db.commit(); + } + finally{ + db.close(); + } return o; } public RuralHouse getRuralHouse(RuralHouse rh){ + + DB4oManager.openDatabase("open"); try { ObjectContainer db=DB4oManager.getContainer(); RuralHouse proto = new RuralHouse(rh.getHouseNumber(), null, rh.getDescription(), rh.getTown()); - ObjectSet result = db.queryByExample(proto); + ObjectSet result = db.queryByExample(proto); return rh=(RuralHouse)result.next(); } catch (Exception exc) { exc.printStackTrace(); return null; } - } + finally { + db.close(); + } + } public Booking createBooking(Offer offer, String clientTelephoneNumber) throws OfferCanNotBeBooked { + DB4oManager.openDatabase("open"); try { Booking b=null; if (offer!=null) { @@ -165,6 +182,9 @@ public class DB4oManager { exc.printStackTrace(); return null; } + finally { + db.close(); + } } /** diff --git a/ruralHouses/src/gui/BookRuralHouseGUI.java b/ruralHouses/src/gui/BookRuralHouseGUI.java index fead030..eadd8b0 100644 --- a/ruralHouses/src/gui/BookRuralHouseGUI.java +++ b/ruralHouses/src/gui/BookRuralHouseGUI.java @@ -136,8 +136,8 @@ public class BookRuralHouseGUI extends JFrame { ApplicationFacadeInterface facade=StartWindow.getBusinessLogic(); Booking book=facade.createBooking(house, firstDay, lastDay, telephone); - System.out.println(book.getPrice()); if (book!=null) { + System.out.println(book.getPrice()); BookRuralHouseConfirmationWindow confirmWindow=new BookRuralHouseConfirmationWindow(book); confirmWindow.setVisible(true); } diff --git a/ruralHouses/src/gui/StartWindow.java b/ruralHouses/src/gui/StartWindow.java index 98b912e..f5e5b10 100644 --- a/ruralHouses/src/gui/StartWindow.java +++ b/ruralHouses/src/gui/StartWindow.java @@ -122,11 +122,11 @@ public class StartWindow extends JFrame { //JFrame a = new QueryAvailabilityWindow(); ApplicationFacadeInterface facade=StartWindow.facadeInterface; try { - facade.close(); + setVisible(false); System.exit(1); } - catch (RemoteException e1) { + catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } @@ -160,7 +160,6 @@ public class StartWindow extends JFrame { //System.out.println(e.toString()); e.printStackTrace(); } - int x=0; JFrame a = new StartWindow(); a.setVisible(true); } -- 2.20.1