From a4e7295bcbf6d1608b907bb50c7d5452389f3f2a Mon Sep 17 00:00:00 2001 From: Willem Date: Sat, 12 Nov 2022 13:48:19 +0100 Subject: [PATCH] Added code --- build/build.xml | 94 +++ build/lib/saxon6.jar | Bin 0 -> 572551 bytes doc/choices.txt | 29 + doc/submission/instructions.html | 519 ++++++++++++ doc/todo.txt | 3 + doc/version.txt | 26 + resources/i18n-suncertify.properties | 5 + resources/suncertify-default.properties | 17 + src/suncertify/client/ClientController.java | 30 + .../client/HotelRoomTableModel.java | 106 +++ src/suncertify/client/MainView.java | 181 +++++ src/suncertify/client/SearchPanel.java | 310 +++++++ src/suncertify/client/package.html | 32 + src/suncertify/core/LoadHotelRoomDB.java | 67 ++ src/suncertify/core/LoadServerBeans.java | 43 + src/suncertify/core/NetworkServerWorker.java | 108 +++ src/suncertify/core/PropertiesManager.java | 81 ++ src/suncertify/core/SunCertifyStarter.java | 168 ++++ src/suncertify/core/package.html | 33 + src/suncertify/db/DB.java | 91 +++ src/suncertify/db/Data.java | 86 ++ src/suncertify/db/DataBaseManager.java | 88 ++ src/suncertify/db/DuplicateKeyException.java | 32 + .../db/RecordNotFoundException.java | 31 + src/suncertify/db/data/RowCache.java | 83 ++ src/suncertify/db/data/RowLock.java | 86 ++ src/suncertify/db/data/Table.java | 767 ++++++++++++++++++ .../column/AbstractColumnObjectConverter.java | 62 ++ .../data/column/BooleanObjectConverter.java | 51 ++ src/suncertify/db/data/column/Column.java | 118 +++ .../db/data/column/ColumnObjectConverter.java | 19 + .../db/data/column/ColumnSearcher.java | 17 + .../db/data/column/DateObjectConverter.java | 41 + .../db/data/column/DeleteFlagConverter.java | 33 + .../data/column/IntegerObjectConverter.java | 31 + .../db/data/column/LongObjectConverter.java | 50 ++ .../db/data/column/StringColumnSearcher.java | 25 + .../db/data/column/StringObjectConverter.java | 34 + src/suncertify/db/data/column/TextIndex.java | 30 + src/suncertify/db/data/column/package.html | 32 + src/suncertify/db/data/package.html | 32 + src/suncertify/db/package.html | 32 + src/suncertify/models/HotelRoom.java | 231 ++++++ .../models/HotelRoomDBConverter.java | 123 +++ src/suncertify/models/package.html | 32 + src/suncertify/net/NIOChangeRequest.java | 34 + src/suncertify/net/NIOConnector.java | 308 +++++++ src/suncertify/net/NetworkClient.java | 205 +++++ src/suncertify/net/NetworkNIOConnector.java | 188 +++++ src/suncertify/net/NetworkRequest.java | 139 ++++ src/suncertify/net/NetworkResponse.java | 82 ++ .../net/NetworkResponseHandler.java | 102 +++ src/suncertify/net/NetworkServer.java | 107 +++ src/suncertify/net/package.html | 33 + src/suncertify/server/ServerException.java | 34 + src/suncertify/server/ServerManager.java | 215 +++++ src/suncertify/server/ServerResource.java | 29 + .../server/beans/BookingLogManager.java | 24 + .../server/beans/BookingLogManagerRemote.java | 20 + .../server/beans/HotelRoomManager.java | 102 +++ .../server/beans/HotelRoomManagerRemote.java | 77 ++ src/suncertify/server/beans/package.html | 32 + src/suncertify/server/package.html | 32 + test/suncertify/db/DataTest.java | 102 +++ test/suncertify/db/InsertTest.java | 111 +++ test/suncertify/net/StartServer.java | 59 ++ test/suncertify/net/ThreadedClientTest.java | 147 ++++ 67 files changed, 6291 insertions(+) create mode 100644 build/build.xml create mode 100644 build/lib/saxon6.jar create mode 100644 doc/choices.txt create mode 100644 doc/submission/instructions.html create mode 100644 doc/todo.txt create mode 100644 doc/version.txt create mode 100644 resources/i18n-suncertify.properties create mode 100644 resources/suncertify-default.properties create mode 100644 src/suncertify/client/ClientController.java create mode 100644 src/suncertify/client/HotelRoomTableModel.java create mode 100644 src/suncertify/client/MainView.java create mode 100644 src/suncertify/client/SearchPanel.java create mode 100644 src/suncertify/client/package.html create mode 100644 src/suncertify/core/LoadHotelRoomDB.java create mode 100644 src/suncertify/core/LoadServerBeans.java create mode 100644 src/suncertify/core/NetworkServerWorker.java create mode 100644 src/suncertify/core/PropertiesManager.java create mode 100644 src/suncertify/core/SunCertifyStarter.java create mode 100644 src/suncertify/core/package.html create mode 100644 src/suncertify/db/DB.java create mode 100644 src/suncertify/db/Data.java create mode 100644 src/suncertify/db/DataBaseManager.java create mode 100644 src/suncertify/db/DuplicateKeyException.java create mode 100644 src/suncertify/db/RecordNotFoundException.java create mode 100644 src/suncertify/db/data/RowCache.java create mode 100644 src/suncertify/db/data/RowLock.java create mode 100644 src/suncertify/db/data/Table.java create mode 100644 src/suncertify/db/data/column/AbstractColumnObjectConverter.java create mode 100644 src/suncertify/db/data/column/BooleanObjectConverter.java create mode 100644 src/suncertify/db/data/column/Column.java create mode 100644 src/suncertify/db/data/column/ColumnObjectConverter.java create mode 100644 src/suncertify/db/data/column/ColumnSearcher.java create mode 100644 src/suncertify/db/data/column/DateObjectConverter.java create mode 100644 src/suncertify/db/data/column/DeleteFlagConverter.java create mode 100644 src/suncertify/db/data/column/IntegerObjectConverter.java create mode 100644 src/suncertify/db/data/column/LongObjectConverter.java create mode 100644 src/suncertify/db/data/column/StringColumnSearcher.java create mode 100644 src/suncertify/db/data/column/StringObjectConverter.java create mode 100644 src/suncertify/db/data/column/TextIndex.java create mode 100644 src/suncertify/db/data/column/package.html create mode 100644 src/suncertify/db/data/package.html create mode 100644 src/suncertify/db/package.html create mode 100644 src/suncertify/models/HotelRoom.java create mode 100644 src/suncertify/models/HotelRoomDBConverter.java create mode 100644 src/suncertify/models/package.html create mode 100644 src/suncertify/net/NIOChangeRequest.java create mode 100644 src/suncertify/net/NIOConnector.java create mode 100644 src/suncertify/net/NetworkClient.java create mode 100644 src/suncertify/net/NetworkNIOConnector.java create mode 100644 src/suncertify/net/NetworkRequest.java create mode 100644 src/suncertify/net/NetworkResponse.java create mode 100644 src/suncertify/net/NetworkResponseHandler.java create mode 100644 src/suncertify/net/NetworkServer.java create mode 100644 src/suncertify/net/package.html create mode 100644 src/suncertify/server/ServerException.java create mode 100644 src/suncertify/server/ServerManager.java create mode 100644 src/suncertify/server/ServerResource.java create mode 100644 src/suncertify/server/beans/BookingLogManager.java create mode 100644 src/suncertify/server/beans/BookingLogManagerRemote.java create mode 100644 src/suncertify/server/beans/HotelRoomManager.java create mode 100644 src/suncertify/server/beans/HotelRoomManagerRemote.java create mode 100644 src/suncertify/server/beans/package.html create mode 100644 src/suncertify/server/package.html create mode 100644 test/suncertify/db/DataTest.java create mode 100644 test/suncertify/db/InsertTest.java create mode 100644 test/suncertify/net/StartServer.java create mode 100644 test/suncertify/net/ThreadedClientTest.java diff --git a/build/build.xml b/build/build.xml new file mode 100644 index 0000000..b984519 --- /dev/null +++ b/build/build.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Suncertify Application Submission (Version 1.1.3)]]> + Copyright © 2008 Willem Cazander All Rights Reserved.]]> + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/lib/saxon6.jar b/build/lib/saxon6.jar new file mode 100644 index 0000000000000000000000000000000000000000..15aa83a54de6e8b119f32daa4439e784bc7d3576 GIT binary patch literal 572551 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%0Df4%=}H$*-REG)=cW^O>FgyeX19mZusMoHyk94 zS>jbw!>?~O3#?4AM9Q6P_ST(66`h(eui?-c4i@vLI@3#{2gQHV|B${wkropswYaq1 z7G~m3EpH3nD|Ar$sk6?;gMGrTM?XGyhME{wq88e_Hfkjmh`mxFP^)0jUqE z-~s930f{I9IX%gL96emPzlbUUiHV>%MJ)kYyZb(0c&OGknXM)PDI9NS;v#LM>|_&R zpkbm-N*3bc5>Ojp;Sw9*Y$6_z8^Ee0?h+tVDbT1Q0SOXs@{v8Ivpe+6Ct+u8jO*!6$C zF)^vKa(J5PVSnLP+29pK;K>h#O+ZOnZ;a$bY{rWMqg0{rs3F&jDcrD;rjdO|apJ)4 zQy9B0679KC8c8d}3Q5&#)M!+e?9;Y9*6cm)XGY{g^z}@BKizEc{Ox$kcD;Ccsk`cx z1eo!sIuV$XZYMIw!k{FPnxJlvCjS5#hS*FbzJ2f%BNyAmWMP<|2<<8TptZDJ3lBt$wP`t@uGm+<;0u5P;27;3~gS^Fc7x0c)l zl&CaQrVBeSH@PG>C`WN(WDQ<|OwFj6PwGaE7-AGWJ{hZ$=#TSYj&n?eoTrp92f~P7 zQ!Y|oSGl?JVn;9Qd%I_M>ZCR#tjy1X$FWm44>DvkVGd@KF@<`Z47T?~MRSI_A#(aQ zB)r^8zGn?QI<;!ts``;hB`q9Nh2gv-3&%mBg;1O_poB21*G6c%@CCREe_TrJQVq*w zBpK@Pbi+~q0C zY9zPx!zerdK)E)a@!Sf0LaB38vx%$^B_`5QHilVSvy@1+HC|A6bR`>=D9uL0LtM7J zr`!n{h;O)cx4gz}t!T_G-`<;#?Xf{rCbX}2j`nT%K#SS%QKwwvd}{23yCA)o24G*j*gkrx6e0U5$u?0hmt z!$ldH9VnV8Co>g7^f~iT&O7&qX=@`{J9EDn?9nIe3yg>D5nCV}=9`&IhrM{G^M(O! zVOVV4Ctr6Wv~=rN3*Q@=PU0XU<2$OPgw3Xt5X1lNrx zKdXO=@#aC*aoO@j7(8NV?doBtfZHgk2gj0-x_`4KIpt#Q?VNEp& zc#?r0r_>SLj~j|F;t%O+Y2sUEb*@r}zbr(XWW`5B_qzzk1D*PkWAgP5&C&Px(>&~v z9c}H0u}ex}*FTUOygne$M?DKpNzie}Kam zJem*YKlw7I|33DKDzUI~F#oH+c3;x9QxnIAy8b(9r`y@X7?xS3+wmKNR?jU?Z zsuZQP>2hXs@>oAO?*X@kS#V@B-@AmRDj)67Z4_ap6VpOFjEgq%L#l|0W4n?CHi9Ll zH`$7mHeln^K6>q&JBBeJuFwlZ7JCeVh4G%SnBuut^-$^H1VW6|lQBq6g; zq(W5-7Hu5wBx*Dq`TYt3e_F@~65YN2X4S>#qz`Q1#uD6K+6kaGkgMH(Klv*qmT)cz z(}?oIg9i7Fd|!@Uh}2q0C25ltAzdJ?_omhqe*Br~3pHNuC+VNpykB zS8=5}P8Kq=lbc|RHO+Hs*&}3Fh;=e?kHIS^39P#3c;zK1ahz`hZrr2x$c>%6-GjZ7 z^vDPnqTQRm!sHa^&CdXj@9ADSKEeWI`-*lJ@a~~r$#O~s=kiYAd!)Y?^v&-8ukPb` zQcA;ktx)AlY1nftX5}))n<}FI%=2d|0-A$0<`LY;w#2He1070rPdIfXJ?DHnvo4F? zticfGBzyun=a}tFF#%F!>=GL%%0AJ##aqoka|_E(GI%)h1V11?5*3uaV z;PMvdkzCoPHm^BF$<`xN%+q1`YrzY;APX_tB>W`4{o*90M%xI3>}y35(u*>|&M~PQ zeH+0}J}23XFy0Jhp&#SE9L1>a|1rrOk&-TgQ+q%tCkvA^V6z#liIZH#Uajmuwwam7`5Na-86xtdt?gW#+_P}Zpz@6_qSNw*u3}&?)Qh$$(cxo(mkDWVv zz+GIoTc0bWrnn!TD-zWks{x4N1capbhI*JfEf(*kI~NUkA%FP@c5@)B06td$zcnbg zv5oUQ_?*26kOfmA12db`IhzH*ZR>LroozL`v!roZ=@&9QnUa=&v|2~{!aDihL8e;C za@dUTrO}uhB1@`0*+cBEL(7q?ptggRkXk<4i#2=UjL~U794gMK6RL-YLNX&!6z^zS zS3fL~qhwShp=DE~L*2ZG6=_$E7HMCNn!2IIn7pAyskZtHgVw(N2MV4-Tvhoqz6w6p z9y8e;onr3R%H8d-#mrT!5ho=P4v!GKU@!s>1Fy2E0+njqv&tyS`;`Y?Q|6x1Jd!}OFgPf_RGb|csn!8pGf&X zGaH%lN|Hm7i1VaBvEUM>?)Z*7X8K&G{r$fO2!9)5CMzBgDhi?mV+oy&KI=Hr4(&Ix z5hY2dIkyQd6<=A9{RyS5uh-V(?QyEd)Z~aI+c{Y<5W1KuVpij%<#ykF_T6!!x_FFo z{xkX_+1*(_P15BtK|fCC2fB*FUcXCDw|Zk7T<($6$E|+oZ4&JAPao}Mj@K8qQ^9{G z!z9(*xz=B4KFF5}!GE6&|A)hqs1i2^>%UpVMSVG4^M5Sj-Q%o?roechFrVAL=74Yt z&sHD{)SH+Yd}m$Z#`;i$EyD%95xQV%yuPz}ds3IP=%B~mwMfXQm`P*!9GpcrF)kSk z%QSGL)k}Es1^u%ygGGL4hsQDRn8$I)b-L;K__Nq*FauQD{4H*B(>&e2acg`LTxeE$=SR^U6n7eaikz-eCL=TFl* z3pQh2w1-oLXF+pt^S|^5R{Te+ye%K!8+{jwBE&v-KD$5(XKP$VcjxN3`iO-ryI&wq zqLJzqP95<2H?Jo)h_tVS^=jCzr-VT@4ijU|v6yyxR6QE({aJyLdZ;iq=SN*_51Vl~ zbd7&7d{P3W1PkEqRef>-Bm~P0XPHhAUNJs085bOZZTEby0Q~~NS)vogd&^h2kCg3F zPoSe)%BR9#ElqfLkThK^4OuL}$t=MFPTX_wN*IW2}qbLLCAp@10$jHy&zxpN7n98j~9;%`LJuBKcF1kpcvR;$&CR)xoPp(MRVvfdj zmFbR~7>=7dikn=Pn|^}(>)4-|<)z_JpsR6{%>raGz~?vua)98oxdYh{fLv4I>6rLj z1l-1*PV@JB$r1a_5o9(h*vy^ZE#R5bzkE9yw=Jdfv>b^=DGFCp{S-dr6hD4bAl4Kq zss+rk`?2h&1FMyaID@qp5ib48-siX4n75(?MgrCP>%`o$huY**eeD_h#m8a<*p!!A zwwQT8to0j2{$+Ujm8BTe%N95@j-@!4Qb=!Y&5nmlK+w=Dz1_B!;l+A(tHd0n*G29u zDFK~Y$avpBxBN4!24x!9w{N+S|Cd`{R#BQ;<=s80`W?bA%nZccCA!>qsC(+;+dqKCP{r zL>KKk#J0>L6n-(+fRwI3;HjSE#gULN(e#dAR+@dLOenJoLD#8bgj+9CZ}0^QU9TctzSTYWOd;_RB}ohlrR{n_=MKadM{ zgdZaBQ9Gi=yBo6ST4Z%U!%i*;o}qYWj!XitI;RIdFAn(zZ6El8g*v#AmHPNkfwH#s zzbXHabkX^Lvgp5yRZI4Ay6XRkRjv*NMd&g=@tE9u_u$~$PI(PmS>4VyqjnAKxVS1e z#*cVmOSaYv9e@^ty*CMpVN4F`M!}Q{a(ct*)Ra-EAHg>WG0Jj_$WJ9vl!en}*J;=> zL_Pse0)Uy0<6PevSHbtY8c!o*g46L`krpV5_UR(Ys!gp6i5R>V&;|&~Z4xJnh2P!% zHg>$_R0(ovWY;ZJ3)8uuy$V!#vTmj9D(foe%e2(8rDR(XcGGkCng^GZU+l`Loc+FB zt5QK*KEA|}?94|ofsAdX^W6G717*lK=w^_tV*)|(uQfv&&2w*=?D-4xQb z0%hHzd*uvE>gKqB6t9f_alML63rIlrkMICFOCZ&~>MPDiVt{yG>CUXa!TzMj4Btpkz_L=j#-sLR3>2pd))`1wfdUcVpWU(LK@V zjFA9(bS7OEz5xSpi=cocKItB_+yIfdc~f>_z6$xSa?u5LQN`J$dvt(26tL-@$L9+= z^EBh9(3jt&wo??)o$h^#>tjVq=U#koil=`)NH zSkvRv0Lil%2(tOr6ZL~+t7WJif-Dmdsml_(!5p-~62ZqDDj|0k&ZZTm&2Eb5X<{I2 z0CLt4n6K3?JMP@3X8Lt8HWAV;*%$$phw*)ElP(4Z+OUq)8($y->o1YZoJOSdI1M@M% z<(zBDYY`lo10g)a0-u=#pWT?>f|T2A-Dy>9&Uil@4=*mufZy1K+XT{S5q>`%M`RGb zXd$|vvk1s~;4}%I%bvvTP�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

(*5uL@u_Fr4MZ)U6hLYYg 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
JQ<54 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 @9*_S8Dzm{2wI)BaRc^9m@n==MuO3gDY=9OgtO% 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

X4 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 literal 0 HcmV?d00001 diff --git a/doc/choices.txt b/doc/choices.txt new file mode 100644 index 0000000..a2d7ab9 --- /dev/null +++ b/doc/choices.txt @@ -0,0 +1,29 @@ + + +** fully NIO based: + +The database server and the network layer are both based +on an implemention on the java nio libary. + +I've choices NIO because I had no real experiance with it +so it was a nice opertunty to learn it. + +Working with it is real harder then it seems at first hand. +To get all details right is even working around jvm bugs. + + +** Proxy classes + +I see proxy classes heavly used in modren (ee) server based +applictions, mostly even without the programmer noticing it. + +It provides a nice layer to dynamicly plugin the networking layer +between the database and the client. + + +** Bean bases server + +Made a simple implemention of how EE containers manages the backend +beans and depecicies. + + diff --git a/doc/submission/instructions.html b/doc/submission/instructions.html new file mode 100644 index 0000000..6e3040a --- /dev/null +++ b/doc/submission/instructions.html @@ -0,0 +1,519 @@ +/**DO NOT DELETE Security Code: 706-US24 Form: form-113.html ****/ + + + + + +Sun Certified Developer for the Java 2 Platform: Application Submission (Version 1.1.3) + + +

+Sun Certified Developer for the Java 2 Platform: Application +Submission (Version 1.1.3)

+

+Introduction and Index

+This document tells you what you need, and what you must do, to submit +your solution to the Sun Certified Developer for the Java 2 Platform programming +assignment. Read it carefully before you begin work on the solution. This +document contains strict guidelines about the way the work is to be performed.  +These guidelines ensure consistency and fairness. +

The application distribution is composed of: +

    +
  • +This document
  • +
  • +A non-relational database file
  • +
+Be sure to maintain a backup copy of all files related to your project, +including the distribution files, until you receive your certificate in +case one or more is corrupted, lost, or becomes unusable. You must not +use any materials issued to other certification candidates even if you +believe they are identical. +

This document is divided into the following sections: +

+

+Important Note About Automatic Failure

+Where this document uses the word "must" an absolute requirement is +being described. If you fail to adhere to such a requirement, your assignment +will be failed automatically, and without further evaluation. It is therefore +imperative that you pay close attention to any statement using the word +"must" in this document.  Portions of your submission will be analyzed +by software; where a specific spelling or structure is required, even a +slight deviation could result in automatic failure.  +
+

+Application Overview

+

Background

+URLyBird is a broker of discount hotel rooms. They sell +accomodations for business and pleasure travellers at short notice, +helping hotels to fill rooms that would otherwise be left empty. They +take bookings only within 48 hours of the start of room occupancy. +Curently, URLyBird sells the rooms over the phone using a team of +customer service representatives (CSRs). The CSRs interact with an +aging custom-written application that has been drawing increasing criticism +from the CSRs. In the future, URLyBird wants to move into +Internet-based marketing, and hopes to be able to accept bookings +direct from customers over the web. +

The company's IT director has decided to migrate the existing +application to a Java technology based system. Initially, the system +will support only the CSRs, although the hope is that this interim +step will give them a starting point for migrating the system to the +web. The IT director does not anticipate much reuse of the first Java +technology system, but intends to use that system as a learning +exercise before going on to a web based system. +

The company's IT department has a data file that contains the +essential information for the company, but because the data must +continue to be manipulated for reports using another custom-written +application, the new system must reimplement the database code from +scratch without altering the data file format. +

The new application, using the existing data file format, must +allow the CSRs to generate a list of accomodations that match a +customer's criteria. This is the project that you have been +commissioned to implement. +

+What you must do

+The following are the "top level" features that must be implemented: +
    +
  • +A client program with a graphical user interface that connects to the database
  • +
  • +A data access system that provides record locking and a flexible search +mechanism
  • +
  • +Network server functionality for the database system
  • +
+The work involves a number of design choices that have to be made. In all +such cases, the following principles should be applied. +

+Clarity and Maintainability

+
+
+A clear design, such as will be readily understood by junior programmers, +will be preferred to a complex one, even if the complex one is a little +more efficient. Code complexity, including nesting depth, argument passing, +and the number of classes and interfaces, should be reasonable.
+
+
+
+

+Documentation

+
+
+The code itself should be as clear as possible; do not provide comments +that do not add to the comprehensibility of the code. Awkward or complex +code should have descriptive comments, and javadoc style comments must +be used for each element of the public interface of each class. You must +create a full suite of documentation for the classes of the completed project. +This must be generated using the tool "javadoc" and must be in HTML format.  +Provide javadoc documentation for all classes you write.
+
+
+
+You must provide basic user documentation. This should be sufficient to +allow a user who is familiar with the broad purpose of the project to use +the application. This documentation must be in one of these three formats:
+
+
    +
  • +HTML
  • +
  • +Plain text (not a wordprocessor format)
  • +
  • +Within the application as a help system.
  • +
+

+Correctness

+
+Your project must conform to this specification.  Features that deviate +from specification will not receive full credit.  You will not receive +extra credit points for work beyond the requirements of the specification.
+

+Use of Standard Elements

+
Use of functionality provided by the core Java classes will be preferred +to your own implementation of that functionality, unless there is a specific +advantage to providing your own implementation.
+Return to top +
+

+Overall Architecture

+

+Major Components

+The main architecture of the application must be a traditional client-server +system. There are three key parts:  the server-side data management +system, the client-side GUI, and the network connection between the two. +

+Non-Networked Mode

+The program must be able to work in a non-networked mode. In this mode, +the database and GUI must run in the same VM and must perform no networking, +must not use loopback networking, and must not involve the serialization +of any objects when communicating between the GUI and database elements. +

The operating mode is selected using the single command line argument +that is permitted. Architecturally, this mode must use the database and +GUI from the networked form, but must not use the network server code at +all. +

+Network Communication Approach

+You have a choice regarding the network connection protocol. You must use +either serialized objects over a simple socket connection, or RMI.  +Both options are equally acceptable.  Keep in mind that networking +must be entirely bypassed in the non-networked mode. +

+Restrictions on RMI

+To avoid unnecessary complexity in the marking environment certain restrictions +are placed on solutions that use RMI.  Specifically: +
  +
  • + You must not require the use of an HTTP server.
  • +
  • + You must not require the installation of a security manager.
  • +
  • + You must provide all classes pre-installed so that no dynamic class +downloading occurs.
  • +
  • + You must use RMI over JRMP (do not use IIOP)
  • +

    Return to top +


    +

    +The User Interface

    +The user interface for this assignment must satisfy the following criteria: +
      +
    • +It must be composed exclusively with components from the Java Foundation +Classes (Swing components).
    • +
    • +It must allow the user to search the data for all records, or for records +where the name and/or location fields exactly match values specified by +the user.
    • +
    • +It must present search results in a JTable.
    • +
    • +It must allow the user to book a selected record, updating the database +file accordingly.
    • +
    +Your user interface should be designed with the expectation of future functionality +enhancements, and it should establish a framework that will support this +with minimal disruption to the users when this occurs. +

    Return to top +


    +

    +Server

    +

    Required Interface

    +Your data access class must be called "Data.java", must be in a package called "suncertify.db", and must implement the following interface: +

    +package suncertify.db;
    +public interface DB
    +{
    +// Reads a record from the file. Returns an array where each
    +// element is a record value.
    +public String[] read(int recNo) throws RecordNotFoundException;
    +// Modifies the fields of a record. The new value for field n 
    +// appears in data[n]. Throws SecurityException
    +// if the record is locked with a cookie other than lockCookie.
    +public void update(int recNo, String[] data, long lockCookie)
    +throws RecordNotFoundException, SecurityException;
    +// Deletes a record, making the record number and associated disk
    +// storage available for reuse. 
    +// Throws SecurityException if the record is locked with a cookie
    +// other than lockCookie.
    +public void delete(int recNo, long lockCookie)
    +throws RecordNotFoundException, SecurityException;
    +// Returns an array of record numbers that match the specified
    +// criteria. Field n in the database file is described by
    +// criteria[n]. A null value in criteria[n] matches any field
    +// value. A non-null  value in criteria[n] matches any field
    +// value that begins with criteria[n]. (For example, "Fred"
    +// matches "Fred" or "Freddy".)
    +public int[] find(String[] criteria);
    +// Creates a new record in the database (possibly reusing a
    +// deleted entry). Inserts the given data, and returns the record
    +// number of the new record.
    +public int create(String[] data) throws DuplicateKeyException;
    +// Locks a record so that it can only be updated or deleted by this client.
    +// Returned value is a cookie that must be used when the record is unlocked,
    +// updated, or deleted. If the specified record is already locked by a different
    +// client, the current thread gives up the CPU and consumes no CPU cycles until
    +// the record is unlocked.
    +public long lock(int recNo) throws RecordNotFoundException;
    +// Releases the lock on a record. Cookie must be the cookie
    +// returned when the record was locked; otherwise throws SecurityException.
    +public void unlock(int recNo, long cookie)
    +throws RecordNotFoundException, SecurityException;
    +}
    +
    +

    Any unimplemented exceptions in this interface must all be created as member classes of the +suncertify.db package. Each must have a zero argument constructor and a second +constructor that takes a String that serves as the exception's description. +

    Any methods that throw RecordNotFoundException should do so if a specified +record does not exist or is marked as deleted in the database file. +

    +Network Approaches

    +Your choice of RMI or serialized objects will not affect your grade, but +no other approach is acceptable. In either case, the program must allow +the user to specify the location of the database, and it must also accept +an indication that a local database is to be used, in which case, the networking +must be bypassed entirely. No authentication is required for database access. +

    +Locking

    +Your server must be capable of handling multiple concurrent requests, and +as part of this capability, must provide locking functionality as specified +in the interface provided above.  You may assume that at any moment, +at most one program is accessing the database file; therefore your locking +system only needs to be concerned with multiple concurrent clients of your +server.  Any attempt to lock a resource that is already locked should +cause the current thread to give up the CPU, consuming no CPU cycles until +the desired resource becomes available. +

    Return to top +


    +

    Data file Format

    +The format of data in the database file is as follows: +

    Start of file +
    4 byte numeric, magic cookie value. Identifies this as a data file +
    2 byte numeric, number of fields in each record +

    Schema description section. +
    Repeated for each field in a record: +
    1 byte numeric, length in bytes of field name +
    n bytes (defined by previous entry), field name +
    1 byte numeric, field length in bytes +
    end of repeating block +

    Data section. +
    Repeat to end of file: +
    1 byte flag. 00 implies valid record, 0xFF implies deleted record +
    Record containing fields in order specified in schema section, no separators +between fields, each field fixed length at maximum specified in schema +information +

    End of file +

    All numeric values are stored in the header information use the formats +of the DataInputStream and DataOutputStream classes. All text values, and +all fields (which are text only), contain only 8 bit characters, null terminated +if less than the maximum length for the field. The character encoding is +8 bit US ASCII. +

    Database schema

    +The database that URLyBird uses contains the following fields: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Field descriptive nameDatabase field nameField lengthDetailed description
    Hotel Namename64The name of the hotel this vacancy record relates to
    Citylocation64The location of this hotel
    Maximum occupancy of this roomsize4The maximum number of people permitted in this room, not including infants
    Is the room smoking or non-smokingsmoking1Flag indicating if smoking is permitted. Valid values are "Y" indicating a smoking room, +and "N" indicating a non-smoking room
    Price per nightrate8Charge per night for the room. This field includes the currency symbol
    Date availabledate10The single night to which this record relates, format is yyyy/mm/dd.
    Customer holding this recordowner8The id value (an 8 digit number) of the customer who has booked this. +Note that for this application, you should assume that customers and CSRs +know their customer ids. The system you are writing does not interact with +these numbers, rather it simply records them. If this field is all blanks, the +record is available for sale.
    +

    Return to top +


    +

    +Deliverables

    +

    +Target Platform and Execution

    +Throughout this exercise, you must use exclusively the Java 2 platform. +You may develop your code using any implementation of the Java 2 platform, +but the submission that you return must have been tested and shown to work +under a production (not development) version of the Sun Microsystems' Java +2 platform and that platform must not have been superseded by a new production +version for more than 18 months by the time you make your submission. +

    You are permitted to use any IDE tool you choose, but you must not submit +any code that is not your own work. The final program must have no dependencies +on any libraries other than those of the Java 2 Platform. +

    When you submit your assignment, each part (client and server) must +be executable using a command of this exact form: +

    java -jar <path_and_filename> [<mode>]
    +Your programs must not require use of command line arguments other than +the single mode flag, which must be supported.  Your programs must +not require use of command line property specifications. All configuration +must be done via a GUI, and must be persistent between runs of the program. +Such configuration information must be stored in a file called suncertify.properties +which must be located in the current working directory. +

    The mode flag must be either "server", indicating the server program +must run, "alone", indicating standalone mode, or left out entirely, in +which case the network client and gui must run. +

    You must not require manual editing of any files by the examiners. +

    +Packaging of Submissions

    +All elements of your submission must be packaged in a single JAR file. +The JAR file must have the following layout and contents in its root: +
      +
    • +The executable JAR containing the programs. This must be called runme.jar.
    • +
    • +The original, unchanged database file that was supplied to you. +Note that you must keep a copy of the original database file supplied to +you, and this must be the file you submit. The marking process will expect +the exact same data without any changes.
    • +
    • +A directory called code, containing all the source code and related +parts of your project. You must create subdirectories within this to reflect +your package structure and distribute your source files within those directories.
    • +
    • +A file called version.txt. This must contain pure ASCII (not a +word processor format) indicating the exact version of JDK you used, and +the host platform you worked on.
    • +
    • +A directory called docs, containing the following items at the +top level:
    • +
        +
      • +This html file.
      • +
      • +A subdirectory called javadoc, containing HTML/Javadoc documentation for +all classes and interfaces you are submitting.
      • +
      • +A file called choices.txt that containing pure ASCII (not a word +processor format) text describing the significant design choices you made. +Detail the problems you perceived, the issues surrounding them, your value +judgments, and the decisions that you made. This document should also describe +any uncertainties you had regarding the project, and the decisions you +made when resolving them.
      • +
      • +User documentation for the database server and the gui client. If your +user documentation is online then you may omit this file. However, if the +documentation is not online, you must provide either a single plain ASCII +(not word processor format) text document, which must be called userguide.txt, +or multiple HTML files which must all be accessible from a starting point +document that must be called userguide.html.
      • +
      +
    +

    Return to top +


    +
    +

    +Marking

    +This section describes how your submission will be marked, and the marking +criteria which govern allocation of marks for the Sun Certified Developer +for the Java 2 platform application submission. The first part describes +the marking process, and the second describes how the marks are allocated. +

    How The Assignment is Marked +

    The marking is done in three phases.  First, software checks that +overall structure and nomenclature conform to specification.  Second +the examiner runs the code ensuring that it functions correctly through +the specified operations. If any automatic failures are noted at this stage, +the marking process terminates and the assignment is failed. +

    Provided the essential behavioral requirements of the assignment have +been correctly implemented, the examiner proceeds to investigate the design +and implementation of your assignment. This process is time consuming, +and it is because this is done carefully and thoroughly that submissions +take time to grade. The grading process is closely controlled to ensure +consistency and fairness, and it is performed according to criteria detailed +in the next section. At any time during this process, if an automatic failure +is noted, the marking process terminates, and the assignment is failed. +For any design choice concerning topics not specifically described in the +requirements, marks are awarded for a clear and consistent approach, rather +than for any particular solution. Design decisions must be described briefly +but clearly in your comments. +

    In addition to the submission, you will be required to take a written +examination. This exam tests your understanding of your submission and +asks you to justify a number of design choices embodied in that submission. +

    +Automatic Failures

    +As noted at the beginning of this document, where this document uses +the word "must" an absolute requirement is being described. If you fail +to adhere to such a requirement, your assignment will be failed automatically, +and without further evaluation. It is therefore imperative that you pay +close attention to any statement using the word "must" in this document. +

    +Marking Criteria

    +Your work will be evaluated based on the following criteria. The minimum +passing score is 320 out of a possible 400 points. +

    General Considerations (100 points) +
    Documentation (70 points) +
    Object-orietned design (30 points) +
    User Interface (40 points) +
    Locking (80 points) +
    Data class (40 points) +
    Server (40 points) +
      +
      +

    Return to top +


    +
    +

    +What to do if you have a question

    +You might find that you want to ask for further explanation of some part +of this document, perhaps to seek permission to solve a problem in a particular +way. This document deliberately leaves some issues unspecified, and some +problems unraised. Your ability to think through these issues, in the face +of realistically imperfect specifications, and come to a tenable solution +is something upon which you are being graded. +

    In general, you should not ask your question; rather you should +consider the options available and make a decision about how to address +the problem yourself. This decision-making process is part of the marking +scheme, and as such it is crucially important that you provide documentation +of your choice. Be sure to describe the options you considered, the perceived +benefits and weaknesses of each, and why you chose the solution you did. +Provided you do not contravene any specification in this document you will +not be marked on the particular choice that you made, but rather on the +consistency of your decision making process and your adherence to other +aspects of these notes during that decision making process. +

    If you feel you must ask your question, you should address it to who2contact@sun.com. +Clearly indicate that the question relates to the Sun Certified Developer +Exam, provide your candidate ID number, name, and include your return email +address in the body of your message. Describe your issue as briefly +as reasonably possible; you will be asked for more information if necessary. +

    Return to top + + diff --git a/doc/todo.txt b/doc/todo.txt new file mode 100644 index 0000000..4d4039e --- /dev/null +++ b/doc/todo.txt @@ -0,0 +1,3 @@ + + +- on high load client network lib locks. \ No newline at end of file diff --git a/doc/version.txt b/doc/version.txt new file mode 100644 index 0000000..141bb0b --- /dev/null +++ b/doc/version.txt @@ -0,0 +1,26 @@ + +JAVA VERSION: + +willemc@battleship:~/devv/jdk1.6.0_10/bin$ ./java -version +java version "1.6.0_10" +Java(TM) SE Runtime Environment (build 1.6.0_10-b33) +Java HotSpot(TM) Server VM (build 11.0-b15, mixed mode) + + + +PLATFORM VERSION: + +willemc@battleship:~$ uname -a +Linux battleship 2.6.26-1-686 #1 SMP Wed Nov 26 19:14:11 UTC 2008 i686 GNU/Linux + +willemc@battleship:~$ cat /etc/apt/sources.list | grep main +deb http://ftp.nl.debian.org/debian/ unstable main non-free contrib + + + +IDE VERSION: + +Eclipse SDK +Version: 3.3.2 +Build id: M20080221-1800 + diff --git a/resources/i18n-suncertify.properties b/resources/i18n-suncertify.properties new file mode 100644 index 0000000..7edf217 --- /dev/null +++ b/resources/i18n-suncertify.properties @@ -0,0 +1,5 @@ +# +# A properties file for i18n keys +# + +test = i18n_test \ No newline at end of file diff --git a/resources/suncertify-default.properties b/resources/suncertify-default.properties new file mode 100644 index 0000000..1c89d96 --- /dev/null +++ b/resources/suncertify-default.properties @@ -0,0 +1,17 @@ +# +# Default suncertify application key properties file. +# + +# The default modes for startup +startup_mode = client + +# The default server and port to connect to as client +# in server mode only server_port is used to bind +server_host = localhost +server_port = 9000 + +# Cache this amount of rows. +db_cache_size = 1000; + +# default timeout of lock is 2min. +db_lock_timeout = 15000 diff --git a/src/suncertify/client/ClientController.java b/src/suncertify/client/ClientController.java new file mode 100644 index 0000000..b83c818 --- /dev/null +++ b/src/suncertify/client/ClientController.java @@ -0,0 +1,30 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.client; + +import suncertify.server.beans.HotelRoomManagerRemote; + +public class ClientController { + + + + private HotelRoomManagerRemote hotelRoomManager = null; + + /** + * @return the hotelRoomManager + */ + public HotelRoomManagerRemote getHotelRoomManager() { + return hotelRoomManager; + } + + /** + * @param hotelRoomManager the hotelRoomManager to set + */ + public void setHotelRoomManager(HotelRoomManagerRemote hotelRoomManager) { + this.hotelRoomManager = hotelRoomManager; + } +} \ No newline at end of file diff --git a/src/suncertify/client/HotelRoomTableModel.java b/src/suncertify/client/HotelRoomTableModel.java new file mode 100644 index 0000000..5eeb9ea --- /dev/null +++ b/src/suncertify/client/HotelRoomTableModel.java @@ -0,0 +1,106 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.client; + +import java.util.ArrayList; +import java.util.List; + +import javax.swing.table.AbstractTableModel; + +import suncertify.models.HotelRoom; +import suncertify.server.beans.HotelRoomManagerRemote; + +@SuppressWarnings("serial") +public class HotelRoomTableModel extends AbstractTableModel { + + private List data = new ArrayList(0); + + private HotelRoomManagerRemote hotelRoomManager = null; + + public HotelRoomTableModel(HotelRoomManagerRemote hotelRoomManager) { + if (hotelRoomManager==null) { + throw new NullPointerException("Can't get data from null hotelRoomManager"); + } + this.hotelRoomManager=hotelRoomManager; + } + + public void updateByCriteria(HotelRoom room) { + try { + data = hotelRoomManager.findByCriteria(room); + System.out.println("Got size from search: "+data.size()); + this.fireTableDataChanged(); + } catch (Exception e) { + throw new IllegalStateException("Could not get init all rooms: "+e.getMessage(),e); + } + } + + public HotelRoom getHotelRoom(int rowIndex) { + return data.get(rowIndex); + } + + + // ============ TableModel + + /** + * @see javax.swing.table.TableModel#getColumnCount() + */ + @Override + public int getColumnCount() { + return 5; + } + + /** + * @see javax.swing.table.TableModel#getRowCount() + */ + @Override + public int getRowCount() { + return data.size(); + } + + + + /** + * @see javax.swing.table.AbstractTableModel#getColumnName(int) + */ + @Override + public String getColumnName(int columnIndex) { + switch (columnIndex) { + case 0: + return "Name"; + case 1: + return "Location"; + case 2: + return "Size"; + case 3: + return "Date"; + default: + return ""; + } + } + + + + /** + * @see javax.swing.table.TableModel#getValueAt(int, int) + */ + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + HotelRoom room = data.get(rowIndex); + switch (columnIndex) { + case 0: + return room.getName(); + case 1: + return room.getLocation(); + case 2: + return room.getSize(); + case 3: + return room.getDateAvailable(); + default: + return ""; + } + } +} \ No newline at end of file diff --git a/src/suncertify/client/MainView.java b/src/suncertify/client/MainView.java new file mode 100644 index 0000000..4d73a88 --- /dev/null +++ b/src/suncertify/client/MainView.java @@ -0,0 +1,181 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + + +package suncertify.client; + +import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; + +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JMenuItem; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import javax.swing.table.TableRowSorter; + +import suncertify.server.beans.HotelRoomManagerRemote; + + +/** + * + * @author willemc + * + */ +public class MainView { + + private HotelRoomManagerRemote hotelRoomManagerRemote = null; + private JFrame frame = null; + + public MainView(HotelRoomManagerRemote hotelRoomManagerRemote) { + if (hotelRoomManagerRemote==null) { + throw new NullPointerException("Can't create MainView with null HotelRoomManager."); + } + this.hotelRoomManagerRemote=hotelRoomManagerRemote; + + frame = new JFrame(); + + frame.setTitle("URLyBird HotelRoom Manager"); + //frame.setIconImage(Toolkit.getDefaultToolkit().createImage(getClass().getResource("/resources/images/logos/gabelfresser.gif"))); + frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + frame.addWindowListener(new WindowListener() { + public void windowActivated(WindowEvent e) { } + public void windowClosed(WindowEvent e) { } + public void windowClosing(WindowEvent e) { System.exit(0); } + public void windowDeactivated(WindowEvent e) { } + public void windowDeiconified(WindowEvent e) { } + public void windowIconified(WindowEvent e) { } + public void windowOpened(WindowEvent e) { } + }); + frame.pack(); + frame.setBounds(50,50,900,700); + + JMenuBar menuBar = new JMenuBar(); + + JMenu fileMenu = new JMenu("File"); + + + JMenuItem item3 = new JMenuItem("Connect"); + item3.setEnabled(false); + fileMenu.add(item3); + + JMenuItem item2 = new JMenuItem("Preferences"); + item2.setEnabled(false); + fileMenu.add(item2); + + fileMenu.addSeparator(); + + JMenuItem item = new JMenuItem(); + item.setText("Quit"); + item.addActionListener(new ActionListener() { + /** + * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) + */ + @Override + public void actionPerformed(ActionEvent e) { + System.exit(0); + } + }); + fileMenu.add(item); + + JMenu helpMenu = new JMenu("Help"); + JMenuItem help = new JMenuItem(); + help.setText("Help"); + help.setEnabled(false); + helpMenu.add(help); + + helpMenu.addSeparator(); + + JMenuItem itemAbout = new JMenuItem("About"); + itemAbout.setEnabled(false); + helpMenu.add(itemAbout); + + menuBar.add(fileMenu); + menuBar.add(helpMenu); + frame.setJMenuBar(menuBar); + + HotelRoomTableModel model = new HotelRoomTableModel(hotelRoomManagerRemote); + SearchPanel searchPanel = new SearchPanel(model); + + frame.getContentPane().add(searchPanel.getJComponent(), BorderLayout.NORTH); + + JPanel southSide = new JPanel(); + southSide.setLayout(new BoxLayout(southSide, BoxLayout.LINE_AXIS)); + + JButton searchButton = new JButton("Search [F1]"); + JButton addButton = new JButton("Add [F2]"); + JButton delButton = new JButton("Del [F3]"); + JButton editButton = new JButton("Edit [F4]"); + JButton bookButton = new JButton("Book [F5]"); + JButton exportButton = new JButton("Export [F6]"); + JButton helpButton = new JButton("Next [F7]"); + JButton printButton = new JButton("Print [F8]"); + + searchButton.setEnabled(false); + addButton.setEnabled(false); + delButton.setEnabled(false); + editButton.setEnabled(false); + bookButton.setEnabled(false); + exportButton.setEnabled(false); + helpButton.setEnabled(false); + printButton.setEnabled(false); + + southSide.add(searchButton); + southSide.add(addButton); + southSide.add(delButton); + southSide.add(editButton); + southSide.add(bookButton); + southSide.add(exportButton); + southSide.add(helpButton); + southSide.add(printButton); + + frame.getContentPane().add(southSide, BorderLayout.SOUTH); + + // center + + final JTable table = new JTable(model); + table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + TableRowSorter sorter = new TableRowSorter(model); + table.setRowSorter(sorter); + + table.getSelectionModel().addListSelectionListener( + new ListSelectionListener() { + public void valueChanged(ListSelectionEvent event) { + int viewRow = table.getSelectedRow(); + if (viewRow < 0) { + //Selection got filtered away. + //statusText.setText(""); + } else { + System.out.println("Selected; "+viewRow+" ... "); + //details.updateHotelRoom(model.getHotelRoom(viewRow)); + } + } + }); + + JScrollPane mainPanel = new JScrollPane(); + mainPanel.setWheelScrollingEnabled(true); + mainPanel.setViewportView(table); + mainPanel.getVerticalScrollBar().setUnitIncrement(10); + mainPanel.getHorizontalScrollBar().setUnitIncrement(10); + frame.getContentPane().add(mainPanel,BorderLayout.CENTER); + + } + + public void openView() { + frame.setVisible(true); + } +} \ No newline at end of file diff --git a/src/suncertify/client/SearchPanel.java b/src/suncertify/client/SearchPanel.java new file mode 100644 index 0000000..48f5b83 --- /dev/null +++ b/src/suncertify/client/SearchPanel.java @@ -0,0 +1,310 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + + +package suncertify.client; + +import java.awt.Component; +import java.awt.Container; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.BorderFactory; +import javax.swing.Box; +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.Spring; +import javax.swing.SpringLayout; +import javax.swing.border.TitledBorder; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.PlainDocument; + +import suncertify.models.HotelRoom; + +/** + * + * @author willemc + * + */ +public class SearchPanel implements ActionListener,DocumentListener { + + private JPanel searchPanel = null; + private JButton searchButton = null; + private JButton clearButton = null; + private HotelRoomTableModel model = null; + private JTextField f0; + private JTextField f1; + private JTextField f2; + private JTextField f3; + + public SearchPanel(HotelRoomTableModel model) { + this.model=model; + searchPanel = new JPanel(); + searchPanel.setLayout(new SpringLayout()); + TitledBorder titledBorder = BorderFactory.createTitledBorder("Search"); + titledBorder.setTitleJustification(TitledBorder.LEFT); + titledBorder.setTitlePosition(TitledBorder.TOP); + searchPanel.setBorder(titledBorder); + createPanel(); + } + + public JComponent getJComponent() { + return searchPanel; + } + + + private void createPanel() { + + JPanel leftPanel = searchPanel; + + JLabel l0 = new JLabel(); + l0.setHorizontalAlignment(JLabel.TRAILING); + l0.setText("Custumber Number:"); + leftPanel.add(l0); + + f0 = new JTextField(15); + f0.getDocument().addDocumentListener(this); + leftPanel.add(f0); + + JLabel l1 = new JLabel(); + l1.setHorizontalAlignment(JLabel.TRAILING); + l1.setText("Name:"); + leftPanel.add(l1); + + f1 = new JTextField(15); + f1.getDocument().addDocumentListener(this); + leftPanel.add(f1); + + JLabel l2 = new JLabel(); + l2.setHorizontalAlignment(JLabel.TRAILING); + l2.setText("Location:"); + leftPanel.add(l2); + + f2 = new JTextField(15); + f2.getDocument().addDocumentListener(this); + leftPanel.add(f2); + + //searchPanel.add(leftPanel,BorderLayout.LINE_START); + + // === Center + + JPanel centerPanel = searchPanel; + + JLabel l3 = new JLabel(); + l3.setHorizontalAlignment(JLabel.TRAILING); + l3.setText("Size:"); + centerPanel.add(l3); + + class IntTextDocument extends PlainDocument { + private static final long serialVersionUID = 7151907649485446049L; + + public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { + if (str == null) { + return; + } + String oldString = getText(0, getLength()); + String newString = oldString.substring(0, offs) + str + oldString.substring(offs); + try { + Integer.parseInt(newString + "0"); + super.insertString(offs, str, a); + } catch (NumberFormatException e) { + } + } + } + + f3 = new JTextField(new IntTextDocument(),null,15); + f3.getDocument().addDocumentListener(this); + centerPanel.add(f3); + + + JLabel l4 = new JLabel(); + l4.setHorizontalAlignment(JLabel.TRAILING); + l4.setText("Smoking:"); + centerPanel.add(l4); + + JCheckBox c1 = new JCheckBox(); + centerPanel.add(c1); + + JLabel l5 = new JLabel(); + l5.setHorizontalAlignment(JLabel.TRAILING); + l5.setText("Price:"); + centerPanel.add(l5); + + //JTextField f4 = new JTextField(15); + //f4.getDocument().addDocumentListener(this); + + String labels[] = { "10", "20", "50", "100","150", "200", "300", "400","500", "800" }; + JComboBox comboBox = new JComboBox(labels); + comboBox.setMaximumRowCount(5); + comboBox.setEditable(true); + + centerPanel.add(comboBox); + + + JLabel l6 = new JLabel(); + l6.setHorizontalAlignment(JLabel.TRAILING); + l6.setText("Date:"); + centerPanel.add(l6); + + JTextField f5 = new JTextField(15); + //f4.getDocument().addDocumentListener(this); + centerPanel.add(f5); + + //searchPanel.add(centerPanel,BorderLayout.CENTER); + + + // South + + JLabel l7 = new JLabel(); + centerPanel.add(l7); + JLabel l8 = new JLabel(); + centerPanel.add(l8); + + JPanel buttonPane = searchPanel; + //buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS)); + //buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); + //buttonPane.add(Box.createHorizontalGlue()); + + + searchButton = new JButton(); + searchButton.setText("Search"); + searchButton.addActionListener(this); + + buttonPane.add(searchButton); + //buttonPane.add(Box.createRigidArea(new Dimension(10, 0))); + + clearButton = new JButton(); + clearButton.setText("Clear"); + clearButton.addActionListener(this); + + buttonPane.add(clearButton); + + //searchPanel.add(buttonPane,BorderLayout.SOUTH); + + //Layout the panel. + makeCompactGrid(searchPanel, + 3, 6, //rows, cols + 6, 6, //initX, initY + 6, 6); //xPad, yPad + } + + private void updateSearch() { + HotelRoom room = new HotelRoom(); + room.setName(f1.getText()); + room.setLocation(f2.getText()); + + model.updateByCriteria(room); + } + + /* (non-Javadoc) + * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) + */ + @Override + public void actionPerformed(ActionEvent e) { + if (e.getSource()==searchButton) { + updateSearch(); + } + if (e.getSource()==clearButton) { + f0.setText(null); + f1.setText(null); + f2.setText(null); + f3.setText(null); + updateSearch(); + } + } + + /* (non-Javadoc) + * @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent) + */ + @Override + public void changedUpdate(DocumentEvent e) { + //updateSearch(); + } + + /* (non-Javadoc) + * @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent) + */ + @Override + public void insertUpdate(DocumentEvent e) { + updateSearch(); + } + + /* (non-Javadoc) + * @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent) + */ + @Override + public void removeUpdate(DocumentEvent e) { + updateSearch(); + } + + + public static void makeCompactGrid(Container parent, + int rows, int cols, + int initialX, int initialY, + int xPad, int yPad) { + SpringLayout layout; + try { + layout = (SpringLayout)parent.getLayout(); + } catch (ClassCastException exc) { + System.err.println("The first argument to makeCompactGrid must use SpringLayout."); + return; + } + + //Align all cells in each column and make them the same width. + Spring x = Spring.constant(initialX); + for (int c = 0; c < cols; c++) { + Spring width = Spring.constant(0); + for (int r = 0; r < rows; r++) { + width = Spring.max(width,getConstraintsForCell(r, c, parent, cols).getWidth()); + } + for (int r = 0; r < rows; r++) { + SpringLayout.Constraints constraints = + getConstraintsForCell(r, c, parent, cols); + constraints.setX(x); + constraints.setWidth(width); + } + x = Spring.sum(x, Spring.sum(width, Spring.constant(xPad))); + } + + //Align all cells in each row and make them the same height. + Spring y = Spring.constant(initialY); + for (int r = 0; r < rows; r++) { + Spring height = Spring.constant(0); + for (int c = 0; c < cols; c++) { + height = Spring.max(height,getConstraintsForCell(r, c, parent, cols).getHeight()); + } + for (int c = 0; c < cols; c++) { + SpringLayout.Constraints constraints = getConstraintsForCell(r, c, parent, cols); + constraints.setY(y); + constraints.setHeight(height); + } + y = Spring.sum(y, Spring.sum(height, Spring.constant(yPad))); + } + + //Set the parent's size. + SpringLayout.Constraints pCons = layout.getConstraints(parent); + pCons.setConstraint(SpringLayout.SOUTH, y); + pCons.setConstraint(SpringLayout.EAST, x); + } + + private static SpringLayout.Constraints getConstraintsForCell( + int row, int col, + Container parent, + int cols) { + SpringLayout layout = (SpringLayout) parent.getLayout(); + Component c = parent.getComponent(row * cols + col); + return layout.getConstraints(c); + } +} \ No newline at end of file diff --git a/src/suncertify/client/package.html b/src/suncertify/client/package.html new file mode 100644 index 0000000..b52847d --- /dev/null +++ b/src/suncertify/client/package.html @@ -0,0 +1,32 @@ + + + + + + +The GUI of the application.
    + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/src/suncertify/core/LoadHotelRoomDB.java b/src/suncertify/core/LoadHotelRoomDB.java new file mode 100644 index 0000000..28fef50 --- /dev/null +++ b/src/suncertify/core/LoadHotelRoomDB.java @@ -0,0 +1,67 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.core; + +import java.io.File; +import java.io.IOException; + +import suncertify.db.DataBaseManager; +import suncertify.db.data.Table; +import suncertify.db.data.column.BooleanObjectConverter; +import suncertify.db.data.column.Column; +import suncertify.db.data.column.DateObjectConverter; +import suncertify.db.data.column.IntegerObjectConverter; +import suncertify.db.data.column.LongObjectConverter; +import suncertify.db.data.column.StringColumnSearcher; +import suncertify.db.data.column.StringObjectConverter; + + +/** + * LoadHotelRoomDB loads the db-1x3.db database file. + * And fills in some meta data in the Table model which is missing in the db file. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class LoadHotelRoomDB { + + + /** + * Loads the database and configs the fields acouring the file specefications. + * @param dbm + * @return + * @throws IOException + */ + public Table loadTable(DataBaseManager dbm) throws IOException { + + File f = new File("db-1x3.db"); + dbm.openTable(f); + + Table table = dbm.getTable(f.getName()); + // manual config for data safe type + for (Column c:table.getColumns()) { + if (1==c.getColumnIndex() | 2==c.getColumnIndex()) { + c.setObjectConverter(new StringObjectConverter()); + c.setColumnSearcher(new StringColumnSearcher()); + } + if (3==c.getColumnIndex() | 7==c.getColumnIndex()) { + c.setObjectConverter(new IntegerObjectConverter()); + } + if (4==c.getColumnIndex()) { + c.setObjectConverter(new BooleanObjectConverter()); + } + if (5==c.getColumnIndex()) { + c.setObjectConverter(new LongObjectConverter()); + } + if (6==c.getColumnIndex()) { + c.setObjectConverter(new DateObjectConverter()); + } + } + return table; + } + +} \ No newline at end of file diff --git a/src/suncertify/core/LoadServerBeans.java b/src/suncertify/core/LoadServerBeans.java new file mode 100644 index 0000000..e12b5de --- /dev/null +++ b/src/suncertify/core/LoadServerBeans.java @@ -0,0 +1,43 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.core; + +import java.io.IOException; + +import suncertify.db.DataBaseManager; +import suncertify.models.HotelRoomDBConverter; +import suncertify.server.ServerManager; +import suncertify.server.beans.BookingLogManager; +import suncertify.server.beans.BookingLogManagerRemote; +import suncertify.server.beans.HotelRoomManager; +import suncertify.server.beans.HotelRoomManagerRemote; + + +/** + * Loads the application needed beans into the ServerManager + * + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class LoadServerBeans { + + /** + * Loads the application backend beans into the ServerManager + * @param server The server to initation with beans. + * @param dataBaseManager The databaseManager is needed for injection into beans. + * @throws IOException + */ + public void loadBeans(ServerManager server,DataBaseManager dataBaseManager) throws IOException { + + server.putServerInitBean("hotelRoom.tableBackend", dataBaseManager.getHotelRoomDB()); + server.putServerInitBean("hotelRoom.beanConverter", new HotelRoomDBConverter(dataBaseManager.getHotelRoomTable())); + + server.putServerBean(HotelRoomManagerRemote.class,HotelRoomManager.class); + server.putServerBean(BookingLogManagerRemote.class,BookingLogManager.class); + } +} \ No newline at end of file diff --git a/src/suncertify/core/NetworkServerWorker.java b/src/suncertify/core/NetworkServerWorker.java new file mode 100644 index 0000000..ed4d080 --- /dev/null +++ b/src/suncertify/core/NetworkServerWorker.java @@ -0,0 +1,108 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + + +package suncertify.core; + +import java.nio.ByteBuffer; +import java.nio.channels.SocketChannel; +import java.lang.reflect.Method; +import java.util.logging.Level; +import java.util.logging.Logger; + +import suncertify.net.NetworkRequest; +import suncertify.net.NetworkResponse; +import suncertify.net.NetworkServer; +import suncertify.net.NetworkNIOConnector.ObjectHandler; +import suncertify.server.ServerManager; + +/** + * The NetworkServerWorker + * + * This Runnable worker handlers the data from the nio server and decode it. + * Then it will invoke the bean methode and return the result to the nio server. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ + +public class NetworkServerWorker implements Runnable { + + private Logger logger = Logger.getLogger(NetworkServerWorker.class.getName()); + NetworkServer server = null; + SocketChannel socket = null; + private ServerManager serverManager = null; + private ByteBuffer data = ByteBuffer.allocate(8192); + + /** + * Creates an new NetworkServerWorker which can handle requests from the server and executes them on the serverManager. + * @param serverManager + * @param server + * @param socket + * @param data + */ + public NetworkServerWorker(ServerManager serverManager,NetworkServer server,SocketChannel socket,byte[] data) { + this.socket=socket; + this.server=server; + this.data.put(data); + this.data.limit(data.length); + this.serverManager=serverManager; + } + + /** + * Gets an chuck of data from server and process an response to it. + */ + public void run() { + String tName = Thread.currentThread().getName(); + long startTime = System.currentTimeMillis(); + logger.fine("Starting exec in "+tName); + try { + ByteBuffer leftOver = server.receiveObject(socket,data, new ObjectHandler() { + public void processObject(Object object) { + NetworkRequest request = (NetworkRequest)object; + NetworkResponse response = new NetworkResponse(request.getRequestId()); + try { + Object bean = serverManager.getServerBean(request.getBeanName()); + + int pS = 0; + if (request.getMethodArgs()!=null) { + pS = request.getMethodArgs().length; + } + Class[] para = new Class[pS]; + for (int i=0;i1) { + System.err.println("To many arguments given, only one optionale argument supperted with values: "+StartupMode.values()); + System.exit(1); + } + SunCertifyStarter starter = new SunCertifyStarter(mode); + try { + starter.start(); + } catch (Exception e) { + System.err.println("Could not start SunCertify: "+e.getMessage()); + System.exit(1); + } + } +} \ No newline at end of file diff --git a/src/suncertify/core/package.html b/src/suncertify/core/package.html new file mode 100644 index 0000000..9592f01 --- /dev/null +++ b/src/suncertify/core/package.html @@ -0,0 +1,33 @@ + + + + + + +The core classes.
    +These bind the different object layers of the application toghter to form the application. + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/src/suncertify/db/DB.java b/src/suncertify/db/DB.java new file mode 100644 index 0000000..f6429b8 --- /dev/null +++ b/src/suncertify/db/DB.java @@ -0,0 +1,91 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db; + +/** + * File provided by the Application Submission + * + * @author suncertify.db + * @version 1.0 Dec 14, 2008 + */ +public interface DB { + + /** + * Reads a record from the file. Returns an array where each + * element is a record value. + */ + public String[] read(int recNo) throws RecordNotFoundException; + + /** + * Modifies the fields of a record. The new value for field n + * appears in data[n]. Throws SecurityException + * if the record is locked with a cookie other than lockCookie. + */ + public void update(int recNo, String[] data, long lockCookie) throws RecordNotFoundException, SecurityException; + + /** + * Deletes a record, making the record number and associated disk + * storage available for reuse. + * Throws SecurityException if the record is locked with a cookie + * other than lockCookie. + * + * @param recNo + * @param lockCookie + * @throws RecordNotFoundException + * @throws SecurityException + */ + public void delete(int recNo, long lockCookie) throws RecordNotFoundException, SecurityException; + + /** + * + * Returns an array of record numbers that match the specified + * criteria. Field n in the database file is described by + * criteria[n]. A null value in criteria[n] matches any field + * value. A non-null value in criteria[n] matches any field + * value that begins with criteria[n]. (For example, "Fred" + * matches "Fred" or "Freddy".) + * + * @param criteria + * @return + */ + public int[] find(String[] criteria); + + /** + * Creates a new record in the database (possibly reusing a + * deleted entry). Inserts the given data, and returns the record + * number of the new record. + * + * @param data + * @return + * @throws DuplicateKeyException + */ + public int create(String[] data) throws DuplicateKeyException; + + /** + * Locks a record so that it can only be updated or deleted by this client. + * Returned value is a cookie that must be used when the record is unlocked, + * updated, or deleted. If the specified record is already locked by a different + * client, the current thread gives up the CPU and consumes no CPU cycles until + * the record is unlocked. + * + * @param recNo + * @return + * @throws RecordNotFoundException + */ + public long lock(int recNo) throws RecordNotFoundException; + + /** + * Releases the lock on a record. Cookie must be the cookie + * returned when the record was locked; otherwise throws SecurityException. + * + * @param recNo + * @param cookie + * @throws RecordNotFoundException + * @throws SecurityException + */ + public void unlock(int recNo, long cookie) throws RecordNotFoundException, SecurityException; +} diff --git a/src/suncertify/db/Data.java b/src/suncertify/db/Data.java new file mode 100644 index 0000000..7ca6f32 --- /dev/null +++ b/src/suncertify/db/Data.java @@ -0,0 +1,86 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db; + +import suncertify.db.data.Table; + +/** + * Wrapper class for interface DB , to Table object. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class Data implements DB { + + /** The table we wrap. */ + final private Table table; + + /** + * Creates an Data wrapper for an Table object. + * @param table + */ + public Data(Table table) { + this.table=table; + } + + /** + * @see suncertify.db.DB#read(int) + */ + @Override + public String[] read(int row) throws RecordNotFoundException { + return table.getInterfaceRow(row); + } + + + /** + * @see suncertify.db.DB#find(java.lang.String[]) + */ + @Override + public int[] find(String[] criteria) { + return table.searchByInterfaceCriteria(criteria); + } + + /** + * @see suncertify.db.DB#lock(int) + */ + @Override + public long lock(int row) throws RecordNotFoundException { + return table.lock(row).getLockId(); + } + + /** + * @see suncertify.db.DB#unlock(int, long) + */ + @Override + public void unlock(int row, long lockId) throws RecordNotFoundException,SecurityException { + table.unlock(row, lockId); + } + + /** + * @see suncertify.db.DB#update(int, java.lang.String[], long) + */ + @Override + public void update(int row, String[] data, long lockId) throws RecordNotFoundException, SecurityException { + table.update(row, data, lockId); + } + + /** + * @see suncertify.db.DB#delete(int, long) + */ + @Override + public void delete(int row, long lockId) throws RecordNotFoundException, SecurityException { + table.delete(row, lockId); + } + + /** + * @see suncertify.db.DB#create(java.lang.String[]) + */ + @Override + public int create(String[] data) throws DuplicateKeyException { + return table.create(data); + } +} \ No newline at end of file diff --git a/src/suncertify/db/DataBaseManager.java b/src/suncertify/db/DataBaseManager.java new file mode 100644 index 0000000..86c1254 --- /dev/null +++ b/src/suncertify/db/DataBaseManager.java @@ -0,0 +1,88 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db; + +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; + +import suncertify.db.data.Table; + +/** + * Manages all open database files in the application. + * + * At the moment this is only one. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class DataBaseManager { + + private Logger logger = Logger.getLogger(DataBaseManager.class.getName()); + private Map tables = null; + + /** + * Creates the DataBaseManager. + */ + public DataBaseManager() { + tables = new HashMap(5); + } + + /** + * @return the only managed database table namely the hotelRoom table. + */ + public DB getHotelRoomDB() { + Table table = getTable("db-1x3.db"); + DB db = new Data(table); + return db; + } + + // hackje voor server->DB-api converters + public Table getHotelRoomTable() { + return getTable("db-1x3.db"); + } + + /** + * Starts the database + */ + public void start() { + } + + /** + * Stops the database manager + */ + public void stop() { + for (Table t:tables.values()) { + try { + closeTable(t); + } catch (Exception e) { + logger.log(Level.WARNING,"Error while closing table: "+t.getName()+" error: "+e.getMessage(),e); + } + } + } + + public Table openTable(File file) throws IOException { + Table t = new Table(); + t.openTable(file); + tables.put(t.getName(),t); + logger.fine("Opened table: "+t.getName()); + return t; + } + + public void closeTable(Table table) throws IOException { + logger.fine("Closing table: "+table.getName()); + table.closeTable(); + } + + public Table getTable(String name) { + return tables.get(name); + } + +} \ No newline at end of file diff --git a/src/suncertify/db/DuplicateKeyException.java b/src/suncertify/db/DuplicateKeyException.java new file mode 100644 index 0000000..502c957 --- /dev/null +++ b/src/suncertify/db/DuplicateKeyException.java @@ -0,0 +1,32 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db; + +/** + * An DuplicateKeyException is thrown the the database when a record already execits in the database. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +@SuppressWarnings("serial") +public class DuplicateKeyException extends Exception { + + /** + * Default constructor + */ + public DuplicateKeyException() { + } + + /** + * Message constructor + * @param message The error message + */ + public DuplicateKeyException(String message) { + super(message); + } + +} diff --git a/src/suncertify/db/RecordNotFoundException.java b/src/suncertify/db/RecordNotFoundException.java new file mode 100644 index 0000000..8e8407a --- /dev/null +++ b/src/suncertify/db/RecordNotFoundException.java @@ -0,0 +1,31 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db; + +/** + * An RecordNotFoundException is thrown the the database when a record is not found. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +@SuppressWarnings("serial") +public class RecordNotFoundException extends Exception { + + /** + * Default constructor + */ + public RecordNotFoundException() { + } + + /** + * Message constructor + * @param message The error message + */ + public RecordNotFoundException(String message) { + super(message); + } +} diff --git a/src/suncertify/db/data/RowCache.java b/src/suncertify/db/data/RowCache.java new file mode 100644 index 0000000..f5cf912 --- /dev/null +++ b/src/suncertify/db/data/RowCache.java @@ -0,0 +1,83 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data; + +import java.util.Date; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * RowCache stores one record and meta data of data for caching. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class RowCache { + + private Integer recordRow = null; + private String[] record = null; + private Date dateCreated = null; + private Date dateAccess = null; + private AtomicInteger countAccess = null; + + /** + * Creates new cache row and validates it contains data. + * @param record + */ + public RowCache(Integer recordRow,String[] record) { + if (recordRow==null) { + throw new NullPointerException("Can't cache null record row number."); + } + if (record==null) { + throw new NullPointerException("Can't cache null record."); + } + if (record.length==0) { + throw new NullPointerException("Can't cache empty record."); + } + this.record=record; + dateCreated = new Date(); + dateAccess = new Date(); + countAccess = new AtomicInteger(0); + } + + /** + * @return the record + */ + public String[] getRecord() { + dateAccess = new Date(); + countAccess.incrementAndGet(); + return record; + } + + /** + * @return the dateCreated + */ + public Date getDateCreated() { + return dateCreated; + } + + /** + * @return the dateAccess + */ + public Date getDateAccess() { + return dateAccess; + } + + /** + * note: use int here so we not cast to much. + * @return the countAccess + */ + public int getCountAccess() { + return countAccess.get(); + } + + /** + * @return the recordRow + */ + public Integer getRecordRow() { + return recordRow; + } +} \ No newline at end of file diff --git a/src/suncertify/db/data/RowLock.java b/src/suncertify/db/data/RowLock.java new file mode 100644 index 0000000..ed1a14d --- /dev/null +++ b/src/suncertify/db/data/RowLock.java @@ -0,0 +1,86 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data; + +import java.util.Date; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * RowLock lock a certain row and has timeout of the lock. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class RowLock { + + private Integer recordRow = null; + private Long lockId = null; + private Date dateCreated = null; + private Date dateAccess = null; + private Date dateRelease = null; + private AtomicInteger countAccess = null; + + /** + * Creates an RowLock + * @param recordRow The row index to lock. + * @param lockTimeout The lock timeout + * @param lockId The id of the lock + */ + public RowLock(Integer recordRow,long lockTimeout,long lockId) { + if (recordRow==null) { + throw new NullPointerException("Can't lock null record row number."); + } + dateCreated = new Date(); + dateAccess = new Date(); + dateRelease = new Date(dateAccess.getTime()+lockTimeout); + countAccess = new AtomicInteger(0); + this.lockId = lockId; + } + + /** + * @return the recordRow + */ + public Integer getRecordRow() { + return recordRow; + } + + /** + * @return the dateCreated + */ + public Date getDateCreated() { + return dateCreated; + } + + /** + * @return the dateAccess + */ + public Date getDateAccess() { + return dateAccess; + } + + /** + * @return the dateRelease + */ + public Date getDateRelease() { + return dateRelease; + } + + /** + * note: use int here so we not cast to much. + * @return the countAccess + */ + public int getCountAccess() { + return countAccess.get(); + } + + /** + * @return the lockId + */ + public Long getLockId() { + return lockId; + } +} \ No newline at end of file diff --git a/src/suncertify/db/data/Table.java b/src/suncertify/db/data/Table.java new file mode 100644 index 0000000..7bee91b --- /dev/null +++ b/src/suncertify/db/data/Table.java @@ -0,0 +1,767 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.RandomAccessFile; +import java.lang.reflect.Method; +import java.nio.MappedByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.charset.Charset; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Set; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.logging.Level; +import java.util.logging.Logger; + +import suncertify.db.DuplicateKeyException; +import suncertify.db.RecordNotFoundException; +import suncertify.db.data.column.Column; +import suncertify.db.data.column.DeleteFlagConverter; + +/** + * The Table class manages one open database file on disk. + * + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class Table { + + /** The NMAP'ed bytebuffer to the file database on disk. */ + private MappedByteBuffer byteBuffer = null; + /** Object to locking the bytebuffer. */ + private Object byteBufferLock = new Object(); + /** All the columns of this table */ + private List columns = null; + /** The logger to log to. */ + private Logger logger = null; + /** The total records which are in this file.(incl deleted) */ + private int records = 0; + /** Offset where the data starts in the byteBuffer */ + private int recordsOffset = 0; + /** The charset encoding used for the data. */ + private Charset charset = null; + /** The name of the file */ + private String name = null; + /** locks for rows */ + private Map locks = Collections.synchronizedMap(new HashMap()); + /** cach for rows */ + private Map cache = new HashMap(); + /** The maximum of rows in the cache. */ + private int cacheMax = 100; + /** File which is opened */ + private RandomAccessFile tableFile = null; + /** The number of records added when table is enlarged. */ + private int extraRecords = 4; + + // declair final so can't be altered by reflection + /** The readLock for the cache */ + final private Lock readLock; + /** The writeLock for the cache */ + final private Lock writeLock; + /** The row lock counter */ + final private AtomicInteger rowLocks; + + // REST ARE cache values + + private int totalColumnsByteSize = 0; + + private boolean isFinerLog = false; + + /** + * Creates the table object. + */ + public Table() { + logger = Logger.getLogger(Table.class.getName()); + isFinerLog = logger.isLoggable(Level.FINER); + columns = new ArrayList(10); + charset = Charset.forName("US-ASCII"); + + ReentrantReadWriteLock locking = new ReentrantReadWriteLock(); + readLock = locking.readLock(); + writeLock = locking.writeLock(); + + Random random = new Random(); + rowLocks= new AtomicInteger(random.nextInt()); + } + + /** + * Opens a table. + * + * note: no locking here because connurent access is pas possible + * when the table is put in DBManager table storage, which is after this method call. + * + * @param file + */ + public void openTable(File file) throws IOException { + // http://www.codefund.com/52/nio-mappedbytebuffer-filechannel-resizing-524047.shtm + // + long startTime = System.currentTimeMillis(); + name = file.getName(); + + tableFile = new RandomAccessFile(file,"rw"); + FileChannel channel = tableFile.getChannel(); + int length = (int)channel.size(); + logger.fine("Mapping table size: "+length); + byteBuffer = channel.map(FileChannel.MapMode.READ_WRITE, 0, length); + logger.finer("Buf info direct: "+byteBuffer.isDirect()+" loaded: "+byteBuffer.isLoaded()+" readonly: "+byteBuffer.isReadOnly()); + // read 4 magic bytes + int cookie = byteBuffer.getInt(); + logger.fine("DB File cookie: "+cookie); + if (259!=cookie) { + throw new IllegalStateException("DB file magic cookie is not correct 259!="+cookie); + } + + // # fields + char fields = byteBuffer.getChar(); + + // dele flag + Column c = new Column(); + c.setCharset(charset); + c.setFieldLength(1); + c.setFieldName("___DB___DELETED_ROW_FLAG"); + c.setFieldNameLength(c.getFieldName().length()); // should column 0 should not be saved. + c.setObjectConverter(new DeleteFlagConverter()); + c.setColumnIndex(0); + addColumn(c); + + // header + for (int i=0;i columns) throws IOException { + + if (file.exists()) { + throw new IllegalArgumentException("File: "+file.getName()+" already excists."); + } + if (columns.size()>255) { + throw new IllegalArgumentException("More then 255 columns is not supported."); + } + char colSize = (char)columns.size(); + + // create file + FileOutputStream outputFile = new FileOutputStream(file, true); + logger.info("File stream created successfully: "+file.getName()); + + try { + long startTime = System.currentTimeMillis(); + + FileChannel channel = outputFile.getChannel(); + MappedByteBuffer byteBuffer = channel.map(FileChannel.MapMode.READ_WRITE, 0, 4096); + logger.finer("Buf info direct: "+byteBuffer.isDirect()+" loaded: "+byteBuffer.isLoaded()+" readonly: "+byteBuffer.isReadOnly()); + + // write 4 magic bytes + byteBuffer.putInt(259); + + // # fields + byteBuffer.putChar(colSize); + + // write field headers + for (int i=0;i0) { + return totalColumnsByteSize; + } + int result = 0; + for (Column c:columns) { + result+=c.getFieldLength(); + } + totalColumnsByteSize = result; + return result; + } + + /** + * Checks if the row Id is in bound of this table. + * @param row The row to check + * @throws RecordNotFoundException Throws an RecordNotFoundException if row is negative or is out of bounds. + */ + private void checkBounds(int row) throws RecordNotFoundException { + if (row<0) { + throw new RecordNotFoundException("Can't handle negative rows."); + } + if (row>records) { + throw new RecordNotFoundException("row number is out of bounds."); + } + } + + /** + * Check if this row is an deleted row. + * @param row The row to check. + * @return true if row is an deleted row. + */ + private boolean checkDeletedRow(int row) { + Column c = columns.get(0); + byte[] data = getColumnDataByte(row,0); + // extra converting to fit in db interface + String result = c.getObjectConverter().decodeStorage(c, data); + if ("true".equals(result)) { + return true; + } + return false; + } + + /** + * Checks if an row is deleted. + * @param row The row to check. + * @throws RecordNotFoundException is throw when the row is deleted. + */ + private void checkDeleted(int row) throws RecordNotFoundException { + if (checkDeletedRow(row)) { + throw new RecordNotFoundException("row is deleted: "+row); + } + } + + private Map colBytes = new HashMap(20); + public int getTotalColumnsByteSize(int col) { + + // cached value. + if (colBytes.containsKey(col)) { + return colBytes.get(col); + } + + int result = 0; + int cols = 0; + for (Column c:columns) { + // we store the number of bytes BEFORE column !! + colBytes.put(cols, result); + result+=c.getFieldLength(); + cols++; + } + + if (colBytes.containsKey(col)) { + return colBytes.get(col); + } + + throw new IllegalArgumentException("Column not found: "+col); + } + + private byte[] getColumnDataByte(int row,int column) { + Column c = columns.get(column); + int bb = getTotalColumnsByteSize(); + int offset = recordsOffset+(row*bb)+getTotalColumnsByteSize(column); + if (isFinerLog) { + logger.finer("Get raw data byte[] ACCESS: row: "+row+" col: "+column+" off: "+offset+" recs: "+records+" start: "+recordsOffset+" recLen: "+bb); + } + byte[] result = new byte[c.getFieldLength()]; + + // only lock byteBuffer access + synchronized (byteBufferLock) { + byteBuffer.position(offset); + byteBuffer.get(result, 0, c.getFieldLength()); + } + return result; + + } + + private void setColumnDataByte(int row,int column,byte[] data) { + int bb = getTotalColumnsByteSize(); + int offset = recordsOffset+(row*bb)+getTotalColumnsByteSize(column); + if (isFinerLog) { + logger.finer("Set raw data byte[] ACCESS: row: "+row+" col: "+column+" off: "+offset+" recs: "+records+" start: "+recordsOffset+" recLen: "+bb+" dataSize: "+data.length); + } + if (data.length>bb) { + throw new SecurityException("May not writes longer data then "); + } + if (offset>=byteBuffer.limit()) { + resizeTable(); + } + + // only lock byteBuffer access + synchronized (byteBufferLock) { + byteBuffer.position(offset); + byteBuffer.put(data, 0, data.length); + } + } + + private String getColumnDataString(int row,int column) { + Column c = columns.get(column); + byte[] data = getColumnDataByte(row,column); + + // extra converting to fit in db interface + String result = c.getObjectConverter().decodeStorage(c, data); + try { + Object o = c.getObjectConverter().decodeInterface(c, result); + String result2 = c.getObjectConverter().encodeInterface(c, o); + return result2; + } catch (Exception e) { + throw new IllegalStateException("Could not convert data: "+e.getMessage(),e); + } + } + + private void putColumnDataString(int row,int column,String data) { + Column c = columns.get(column); + // extra converting to fit in db interface + Object result = c.getObjectConverter().decodeInterface(c, data); + try { + String o = c.getObjectConverter().encodeInterface(c, result); + byte[] result2 = c.getObjectConverter().encodeStorage(c, o); + setColumnDataByte(row,column,result2); + } catch (Exception e) { + throw new IllegalStateException("Could not convert data: "+e.getMessage(),e); + } + } + + public String[] getInterfaceRow(int row) throws RecordNotFoundException { + String[] result = cacheGet(row); + if (result!=null) { + return result; + } + + checkBounds(row); + checkDeleted(row); + + int cols = getTotalColumns()-1; + result = new String[cols]; + for (int i=0;i getColumns() { + return columns; + } + + /** + * Returns the name of this table + * @return The name of this table + */ + public String getName() { + return name; + } + + // search + + public int[] searchByInterfaceCriteria(String[] criteria) { + + if (criteria==null) { + throw new NullPointerException("Can't search null criteria"); + } + // -1 = deleted flag column + if (criteria.length!=getTotalColumns()-1) { + throw new IllegalArgumentException("criteria array is not same size as table columns."); + } + + Set result = new HashSet(50); + + + for (int i=0;icacheMax) { + return; // don't put anything in cache until there is space + } + } finally { + readLock.unlock(); + } + try { + writeLock.lock(); // write lock and add the new cache item + RowCache c = new RowCache(row,data); + cache.put(row, c); + } finally { + writeLock.unlock(); + } + } + + /** + * Removes an cache item + * @param row + */ + private void cacheRemove(int row) { + try { + writeLock.lock(); // write lock and removed the cache item. + cache.remove(row); + } finally { + writeLock.unlock(); + } + } + +} diff --git a/src/suncertify/db/data/column/AbstractColumnObjectConverter.java b/src/suncertify/db/data/column/AbstractColumnObjectConverter.java new file mode 100644 index 0000000..ffdd7bc --- /dev/null +++ b/src/suncertify/db/data/column/AbstractColumnObjectConverter.java @@ -0,0 +1,62 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + + +abstract public class AbstractColumnObjectConverter implements ColumnObjectConverter { + + protected Class convertClass = null; + abstract public Object decodeInterface(Column c,String object); + abstract public String encodeInterface(Column c,Object object); + + public AbstractColumnObjectConverter(Class convertClass) { + this.convertClass=convertClass; + } + + /** + * @see suncertify.db.data.column.ColumnObjectConverter#getConvertClass() + */ + @Override + public Class getConvertClass() { + return convertClass; + } + /** + * @see suncertify.db.data.column.ColumnObjectConverter#decodeStorage(suncertify.db.data.column.Column, java.lang.Object) + */ + @Override + public byte[] encodeStorage(Column c, String str) { + if (str.length()>c.getFieldLength()) { + throw new IllegalArgumentException("String is to large to DB"); + } + byte[] data = str.getBytes(c.getCharset()); + + // fill out space + if (data.length getConvertClass(); + + public Object decodeInterface(Column c,String object); + public String encodeInterface(Column c,Object object); + + public String decodeStorage(Column c,byte[] data); + public byte[] encodeStorage(Column c,String object); +} diff --git a/src/suncertify/db/data/column/ColumnSearcher.java b/src/suncertify/db/data/column/ColumnSearcher.java new file mode 100644 index 0000000..453251b --- /dev/null +++ b/src/suncertify/db/data/column/ColumnSearcher.java @@ -0,0 +1,17 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + + +import suncertify.db.RecordNotFoundException; +import suncertify.db.data.Table; + + +public interface ColumnSearcher { + + public boolean searchColumn(Table table, Column column,String searchString,String columnData) throws RecordNotFoundException; +} diff --git a/src/suncertify/db/data/column/DateObjectConverter.java b/src/suncertify/db/data/column/DateObjectConverter.java new file mode 100644 index 0000000..8b52d32 --- /dev/null +++ b/src/suncertify/db/data/column/DateObjectConverter.java @@ -0,0 +1,41 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + + +public class DateObjectConverter extends AbstractColumnObjectConverter { + + public DateObjectConverter() { + super(Date.class); + } + + public Object decodeInterface(Column c,String object) { + Date realDate = null; + try { + DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); + realDate = dateFormat.parse(object); + } catch (ParseException e) { + throw new IllegalStateException("Date format error on: '"+object+"'"); + } + return realDate; + } + + public String encodeInterface(Column c,Object object) { + if ((object instanceof Date)==false) { + throw new IllegalStateException("Object is no date"); + } + String value = null; + DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); + value = dateFormat.format((Date)object); + return value; + } +} diff --git a/src/suncertify/db/data/column/DeleteFlagConverter.java b/src/suncertify/db/data/column/DeleteFlagConverter.java new file mode 100644 index 0000000..65e5796 --- /dev/null +++ b/src/suncertify/db/data/column/DeleteFlagConverter.java @@ -0,0 +1,33 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + + +public class DeleteFlagConverter extends BooleanObjectConverter { + + @Override + public byte[] encodeStorage(Column c, String str) { + Boolean value = new Boolean(str); + byte[] data = new byte[1]; + if (value) { + data[0] = (byte)255; // java bytes are signed so; -128 == 255 == 0xFF + } else { + data[0] = 0; + } + return data; + } + + @Override + public String decodeStorage(Column c, byte[] data) { + if (data[0]==0) { + return new Boolean(false).toString(); + } else if (data[0]==(byte)255) { + return new Boolean(true).toString(); + } + throw new IllegalArgumentException("Unknow delete flag value: '"+data[0]+"'"); + } +} diff --git a/src/suncertify/db/data/column/IntegerObjectConverter.java b/src/suncertify/db/data/column/IntegerObjectConverter.java new file mode 100644 index 0000000..1588f8f --- /dev/null +++ b/src/suncertify/db/data/column/IntegerObjectConverter.java @@ -0,0 +1,31 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + + +public class IntegerObjectConverter extends AbstractColumnObjectConverter { + + public IntegerObjectConverter() { + super(Integer.class); + } + + public Object decodeInterface(Column c,String object) { + if ("".equals(object)) { + return 0; + } + Integer result = new Integer(object); + return result; + } + + public String encodeInterface(Column c,Object object) { + if ((object instanceof Integer)==false) { + throw new IllegalStateException("wrong data type"); + } + Integer value = (Integer)object; + return value.toString(); + } +} diff --git a/src/suncertify/db/data/column/LongObjectConverter.java b/src/suncertify/db/data/column/LongObjectConverter.java new file mode 100644 index 0000000..be4f194 --- /dev/null +++ b/src/suncertify/db/data/column/LongObjectConverter.java @@ -0,0 +1,50 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + +import java.text.NumberFormat; +import java.text.ParseException; +import java.util.Locale; + + +public class LongObjectConverter extends AbstractColumnObjectConverter { + + public LongObjectConverter() { + super(Long.class); + } + + public Object decodeInterface(Column c,String object) { + Long realRate = null; + try { + Number number = NumberFormat.getCurrencyInstance(Locale.getDefault()).parse(object); + // 123.45 + if (number instanceof Long) { + // Long value + realRate = (Long)number; + } else if (number instanceof Double) { + realRate = ((Double)number).longValue(); + } else { + System.out.println("unknow number: "+number.getClass()); + } + } catch (ParseException e) { + e.printStackTrace(); + } + return realRate; + } + + public String encodeInterface(Column c,Object object) { + if ((object instanceof Long)==false) { + throw new IllegalStateException("Data err"); + } + Long value = (Long)object; + String str = "$"+value; + if (str.length()>c.getFieldLength()) { + return null; + } + return str; + } +} diff --git a/src/suncertify/db/data/column/StringColumnSearcher.java b/src/suncertify/db/data/column/StringColumnSearcher.java new file mode 100644 index 0000000..b1a66d0 --- /dev/null +++ b/src/suncertify/db/data/column/StringColumnSearcher.java @@ -0,0 +1,25 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + +import suncertify.db.RecordNotFoundException; +import suncertify.db.data.Table; + +public class StringColumnSearcher implements ColumnSearcher { + + /** + * @see suncertify.db.data.column.ColumnSearcher#searchColumn(suncertify.db.data.Table, suncertify.db.data.column.Column, java.lang.String, java.util.Set) + */ + @Override + public boolean searchColumn(Table table, Column column,String searchString,String columnData) throws RecordNotFoundException { + return columnData.contains(searchString); + } + + public void indexColumn(Table table, Column column,String columnData) throws RecordNotFoundException { + + } +} \ No newline at end of file diff --git a/src/suncertify/db/data/column/StringObjectConverter.java b/src/suncertify/db/data/column/StringObjectConverter.java new file mode 100644 index 0000000..db19b95 --- /dev/null +++ b/src/suncertify/db/data/column/StringObjectConverter.java @@ -0,0 +1,34 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + + +public class StringObjectConverter extends AbstractColumnObjectConverter { + + public StringObjectConverter() { + super(String.class); + } + + /** + * @see suncertify.db.data.column.ColumnObjectConverter#decodeInterface(suncertify.db.data.column.Column, java.lang.String) + */ + @Override + public Object decodeInterface(Column c, String object) { + return object; + } + + /** + * @see suncertify.db.data.column.ColumnObjectConverter#encodeInterface(suncertify.db.data.column.Column, java.lang.Object) + */ + @Override + public String encodeInterface(Column c, Object object) { + if ((object instanceof String)==false) { + throw new IllegalStateException("Can only do string"); + } + return (String)object; + } +} diff --git a/src/suncertify/db/data/column/TextIndex.java b/src/suncertify/db/data/column/TextIndex.java new file mode 100644 index 0000000..fb9e7cb --- /dev/null +++ b/src/suncertify/db/data/column/TextIndex.java @@ -0,0 +1,30 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.db.data.column; + +import java.nio.MappedByteBuffer; +import java.nio.charset.Charset; + +public class TextIndex { + + /** The NMAP'ed bytebuffer to the file database on disk. */ + private MappedByteBuffer byteBuffer = null; + /** Object to locking the bytebuffer. */ + private Object byteBufferLock = new Object(); + + + + /// use own table imple for Hit object, word obj == ~~ +} + +class HitIndex { + + + + + +} \ No newline at end of file diff --git a/src/suncertify/db/data/column/package.html b/src/suncertify/db/data/column/package.html new file mode 100644 index 0000000..081578f --- /dev/null +++ b/src/suncertify/db/data/column/package.html @@ -0,0 +1,32 @@ + + + + + + +Database columns objects.
    + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/src/suncertify/db/data/package.html b/src/suncertify/db/data/package.html new file mode 100644 index 0000000..183e9cb --- /dev/null +++ b/src/suncertify/db/data/package.html @@ -0,0 +1,32 @@ + + + + + + +Related data database classes.
    + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/src/suncertify/db/package.html b/src/suncertify/db/package.html new file mode 100644 index 0000000..0c037e1 --- /dev/null +++ b/src/suncertify/db/package.html @@ -0,0 +1,32 @@ + + + + + + +The database for doing work on the binary data files.
    + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/src/suncertify/models/HotelRoom.java b/src/suncertify/models/HotelRoom.java new file mode 100644 index 0000000..0647ee1 --- /dev/null +++ b/src/suncertify/models/HotelRoom.java @@ -0,0 +1,231 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.models; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.util.Date; + + +/** + * The HotelRoom model class. + * + * This stores all the data which belongs to one hotelroom. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class HotelRoom implements Externalizable { + + private Integer id = null; + private String name = null; + private String location = null; + private Integer size = null; + private Boolean smoking = null; + private Long priceRate = null; + private Date dateAvailable = null; + private Integer customerId = null; + + /** + * @return the id + */ + public Integer getId() { + return id; + } + + /** + * @param id the id to set + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * @return the name + * + * + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the location + */ + public String getLocation() { + return location; + } + + /** + * @param location the location to set + */ + public void setLocation(String location) { + this.location = location; + } + + /** + * @return the size + */ + public Integer getSize() { + return size; + } + + /** + * @param size the size to set + */ + public void setSize(Integer size) { + this.size = size; + } + + /** + * @return the smoking + */ + public Boolean getSmoking() { + return smoking; + } + + /** + * @param smoking the smoking to set + */ + public void setSmoking(Boolean smoking) { + this.smoking = smoking; + } + + /** + * @return the priceRate + */ + public Long getPriceRate() { + return priceRate; + } + + /** + * @param priceRate the priceRate to set + */ + public void setPriceRate(Long priceRate) { + this.priceRate = priceRate; + } + + /** + * @return the dateAvailable + */ + public Date getDateAvailable() { + return dateAvailable; + } + + /** + * @param dateAvailable the dateAvailable to set + */ + public void setDateAvailable(Date dateAvailable) { + this.dateAvailable = dateAvailable; + } + + /** + * @return the customerId + */ + public Integer getCustomerId() { + return customerId; + } + + /** + * @param customerId the customerId to set + */ + public void setCustomerId(Integer customerId) { + this.customerId = customerId; + } + + + + /** + * We support reading null fields because BU checks should not take place here. + * This is here for speed. + * @see java.io.Externalizable#readExternal(java.io.ObjectInput) + */ + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + boolean nullRes = in.readBoolean(); + id = nullRes?in.readInt():null; + nullRes = in.readBoolean(); + name = nullRes?in.readUTF():null; + nullRes = in.readBoolean(); + location = nullRes?in.readUTF():null; + nullRes = in.readBoolean(); + size = nullRes?in.readInt():null; + nullRes = in.readBoolean(); + smoking = nullRes?in.readBoolean():null; + nullRes = in.readBoolean(); + priceRate = nullRes?in.readLong():null; + nullRes = in.readBoolean(); + dateAvailable = nullRes?new Date(in.readLong()):null; + nullRes = in.readBoolean(); + customerId = nullRes?in.readInt():null; + } + + /** + * We support writeing null fields because BU checks should not take place here. + * This is here for speed. + * @see java.io.Externalizable#writeExternal(java.io.ObjectOutput) + */ + public void writeExternal(ObjectOutput out) throws IOException { + + if (id==null) { + out.writeBoolean (false); + } else { + out.writeBoolean (true); + out.writeInt (id); + } + if (name==null) { + out.writeBoolean (false); + } else { + out.writeBoolean (true); + out.writeUTF (name); + } + if (location==null) { + out.writeBoolean (false); + } else { + out.writeBoolean (true); + out.writeUTF (location); + } + if (size==null) { + out.writeBoolean (false); + } else { + out.writeBoolean (true); + out.writeInt (size); + } + if (smoking==null) { + out.writeBoolean (false); + } else { + out.writeBoolean (true); + out.writeBoolean (smoking); + } + if (priceRate==null) { + out.writeBoolean (false); + } else { + out.writeBoolean (true); + out.writeLong (priceRate); + } + if (dateAvailable==null) { + out.writeBoolean (false); + } else { + out.writeBoolean (true); + out.writeLong (dateAvailable.getTime()); + } + if (customerId==null) { + out.writeBoolean (false); + } else { + out.writeBoolean (true); + out.writeInt (customerId); + } + } +} \ No newline at end of file diff --git a/src/suncertify/models/HotelRoomDBConverter.java b/src/suncertify/models/HotelRoomDBConverter.java new file mode 100644 index 0000000..74d62c0 --- /dev/null +++ b/src/suncertify/models/HotelRoomDBConverter.java @@ -0,0 +1,123 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.models; + +import java.util.Date; + +import suncertify.db.data.Table; +import suncertify.db.data.column.Column; + +/** + * The HotelRoomDBConverter + * + * Converts betreen the HotelRoom model and the binany DB data. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class HotelRoomDBConverter { + + private Table table = null; + + /** + * Creates an HotelRoomDBConverter for the given table. + * @param table The DB table to do converts for. + */ + public HotelRoomDBConverter(Table table) { + if (table==null) { + throw new NullPointerException("Table may not be null."); + } + this.table=table; + } + + /** + * Converts String[] data to en HotelRoom data model. + * + * @param data The string data. + * @return The HotelRoom model. + */ + public HotelRoom decode(String[] data) { + HotelRoom hr = new HotelRoom(); + for (int i=0;i<=6;i++) { + Column c = table.getColumns().get(i+1); // todo bounds + Object object = c.getObjectConverter().decodeInterface(c,data[i]); + switch(i) { + case 0: + hr.setName((String)object); + break; + case 1: + hr.setLocation((String)object); + break; + case 2: + hr.setSize((Integer)object); + break; + case 3: + hr.setSmoking((Boolean)object); + break; + case 4: + hr.setPriceRate((Long)object); + break; + case 5: + hr.setDateAvailable((Date)object); + break; + case 6: + hr.setCustomerId((Integer)object); + break; + default: + throw new IllegalStateException("out of bounds"); + } + } + return hr; + } + + /** + * Converts an HotelRoom model to the String data. + * + * @param hr The hotelRoom model + * @return The data as an String array. + */ + public String[] encode(HotelRoom hr) { + String[] result = new String[7]; + for (int i=0;i<=6;i++) { + Column c = table.getColumns().get(i+1); // todo bounds + Object object = null; + switch(i) { + case 0: + object = hr.getName(); + break; + case 1: + object = hr.getLocation(); + break; + case 2: + object = hr.getSize(); + break; + case 3: + object = hr.getSmoking(); + break; + case 4: + object = hr.getPriceRate(); + break; + case 5: + object = hr.getDateAvailable(); + break; + case 6: + object = hr.getCustomerId(); + break; + default: + throw new IllegalStateException("out of bounds"); + } + String r = null; + if (object!=null) { + r = c.getObjectConverter().encodeInterface(c, object); + } else { + r = ""; + } + result[i]=r; + } + return result; + } +} \ No newline at end of file diff --git a/src/suncertify/models/package.html b/src/suncertify/models/package.html new file mode 100644 index 0000000..0c67375 --- /dev/null +++ b/src/suncertify/models/package.html @@ -0,0 +1,32 @@ + + + + + + +The models used in the application.
    + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/src/suncertify/net/NIOChangeRequest.java b/src/suncertify/net/NIOChangeRequest.java new file mode 100644 index 0000000..59bd289 --- /dev/null +++ b/src/suncertify/net/NIOChangeRequest.java @@ -0,0 +1,34 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + + +package suncertify.net; + +import java.nio.channels.SocketChannel; + +/** + * The NIOChangeRequest is used by the NIOConnector to register of change the operation key. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class NIOChangeRequest { + + public enum ChangeType { + REGISTER, + CHANGEOPS + } + + public SocketChannel socket; + public ChangeType type; + public int ops; + + public NIOChangeRequest(SocketChannel socket, ChangeType type, int ops) { + this.socket = socket; + this.type = type; + this.ops = ops; + } +} \ No newline at end of file diff --git a/src/suncertify/net/NIOConnector.java b/src/suncertify/net/NIOConnector.java new file mode 100644 index 0000000..2d4b567 --- /dev/null +++ b/src/suncertify/net/NIOConnector.java @@ -0,0 +1,308 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.net; + +import java.io.IOException; +import java.net.InetAddress; +import java.nio.ByteBuffer; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.SocketChannel; +import java.nio.channels.spi.SelectorProvider; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.concurrent.atomic.AtomicInteger; + +import suncertify.net.NIOChangeRequest.ChangeType; + +/** + * The NIOConnector is an abstract base class for creating NIO client/servers. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +abstract public class NIOConnector implements Runnable { + + /** The hostAddress to bind or connect to. */ + private InetAddress hostAddress; + /** The port of the hostAddress */ + private int port; + + /** The selector we'll be monitoring */ + protected Selector selector; + + /** The buffer into which we'll read data when it's available */ + private ByteBuffer readBuffer = ByteBuffer.allocate(8192); + + /** A list of PendingChange instances */ + private List pendingChanges = null; + + /** Maps a SocketChannel to a list of ByteBuffer instances */ + private Map> pendingData = null; + + /** The connection counter */ + final protected AtomicInteger connectsCounter = new AtomicInteger(); + + /** Counter for total connection */ + volatile protected int totalConnections = 0; + + /** The logger to log to */ + private Logger logger = Logger.getLogger(NIOConnector.class.getName()); + + /** Flag to stop thread */ + volatile protected boolean stop = false; + + /** + * Creates an abstract NIOConnector + * @param hostAddress + * @param port + * @throws IOException + */ + public NIOConnector(InetAddress hostAddress, int port) { + this.hostAddress = hostAddress; + this.port = port; + pendingChanges = new LinkedList(); + pendingData = new HashMap>(); + } + + abstract public void start() throws IOException; + abstract public void stop() throws IOException; + + /** + * Sends data to the socket, appends it to the pendingData queu + * @param socket + * @param data + */ + protected void send(SocketChannel socket,ByteBuffer data) { + // Indicate we want the interest ops set changed + addChangeRequest(socket, NIOChangeRequest.ChangeType.CHANGEOPS, SelectionKey.OP_WRITE); + + // And queue the data we want written + synchronized (pendingData) { + List queue = pendingData.get(socket); + if (queue == null) { + queue = new ArrayList(); + pendingData.put(socket, queue); + } + queue.add(data); + } + + // Finally, wake up our selecting thread so it can make the required changes + selector.wakeup(); + } + + /** + * The NIO IO selector runnable + */ + public void run() { + logger.info("NIO network thread started."); + while (stop==false) { + try { + synchronized (pendingChanges) { + int totalChanges = pendingChanges.size(); + if (totalChanges>0) { + for (int i=0;i selectedKeys = selector.selectedKeys().iterator(); + while (selectedKeys.hasNext()) { + SelectionKey key = selectedKeys.next(); + selectedKeys.remove(); + + if (key.isValid()==false) { + continue; + } + + + // check on session object + Object o = key.attachment(); + //mm we can only set attech ment after key is accepted + if (o==null & key.isAcceptable()==false) { + o = new Integer(connectsCounter.getAndIncrement()); + key.attach(o); + totalConnections++; + logger.info("Init Connection: "+key.attachment()+" total: "+totalConnections); + } + + // Check what event is available and deal with it + try { + if (key.isConnectable()) { + connect(key); + } else if (key.isAcceptable()) { + accept(key); + } else if (key.isReadable()) { + read(key); + } else if (key.isWritable()) { + write(key); + } else { + throw new IOException("NIO error, key could not be processed."); + } + } catch (IOException ioe) { + Integer conNr = (Integer)key.attachment(); + if (ioe.getMessage()!=null && ioe.getMessage().contains("reset by peer")) { + logger.log(Level.WARNING,"Connection: "+conNr+" has disconnected on error: "+ioe.getMessage()); + } else { + logger.log(Level.WARNING,"Connection: "+conNr+" has disconnected on error: "+ioe.getMessage(),ioe); + } + key.cancel(); + } + + if (key.isValid()==false) { + totalConnections--; + } + } + } catch (Exception e) { + logger.log(Level.WARNING,"Error in NIO Thread: "+e.getMessage(),e); + } + } + + // cleaning resources + pendingChanges.clear(); + pendingData.clear(); + totalConnections = 0; + logger.info("NIO network thread stoped."); + } + + /** + * Is called when the key is connected, emty method. + * @param key + * @throws IOException + */ + protected void connect(SelectionKey key) throws IOException { + } + + /** + * Is called when the key is accepted, emty method. + * @param key + * @throws IOException + */ + protected void accept(SelectionKey key) throws IOException { + } + + /** + * Reads the data from the key and hands it over to processData + * @param key + * @throws IOException + */ + protected void read(SelectionKey key) throws IOException { + SocketChannel socketChannel = (SocketChannel) key.channel(); + + // Clear out our read buffer so it's ready for new data + readBuffer.clear(); + + int numRead = socketChannel.read(readBuffer); + if (numRead == -1) { + key.cancel(); + return; + } + readBuffer.rewind(); + readBuffer.limit(numRead); + processData(socketChannel, readBuffer); + } + + /** + * Processes the readed data. + * + * @param socket + * @param readBuffer + * @throws IOException + */ + abstract void processData(SocketChannel socket, ByteBuffer readBuffer) throws IOException; + + /** + * Writes the data from the key to the pendingData queue + * @param key + * @throws IOException + */ + protected void write(SelectionKey key) throws IOException { + SocketChannel socketChannel = (SocketChannel) key.channel(); + + synchronized (pendingData) { + List queue = pendingData.get(socketChannel); + // Write until there's not more data ... + while (queue.isEmpty()==false) { + ByteBuffer buf = queue.get(0); + socketChannel.write(buf); + if (buf.remaining() > 0) { + break; // ... or the socket's buffer fills up + } + queue.remove(0); + } + if (queue.isEmpty()) { + // We wrote away all data, so we're no longer interested + // in writing on this socket. Switch back to waiting for data. + addChangeRequest(socketChannel, NIOChangeRequest.ChangeType.CHANGEOPS, SelectionKey.OP_READ); + } + } + } + + /** + * Opens the default Selector. + * @return + * @throws IOException + */ + protected Selector initSelector() throws IOException { + return SelectorProvider.provider().openSelector(); + } + + /** + * Adds an ChangeRequest for the socket + * @param socket + * @param type + * @param ops + */ + public void addChangeRequest(SocketChannel socket, ChangeType type, int ops) { + synchronized (pendingChanges) { + pendingChanges.add(new NIOChangeRequest(socket, type, ops)); + } + } + + /** + * @return the hostAddress + */ + public InetAddress getHostAddress() { + return hostAddress; + } + + /** + * @return the port + */ + public int getPort() { + return port; + } +} \ No newline at end of file diff --git a/src/suncertify/net/NetworkClient.java b/src/suncertify/net/NetworkClient.java new file mode 100644 index 0000000..2ce1746 --- /dev/null +++ b/src/suncertify/net/NetworkClient.java @@ -0,0 +1,205 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.net; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.nio.ByteBuffer; +import java.nio.channels.SelectionKey; +import java.nio.channels.SocketChannel; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * The NetworkClient + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class NetworkClient extends NetworkNIOConnector { + + /** Maps a SocketChannel to a RspHandler */ + private Map responseHandlers = null; + /** Keeps track of the request IDs. */ + private AtomicInteger requestIds = new AtomicInteger(0); + /** The sockets wo connect to */ + private SocketChannel socket = null; + /** The logger to log to. */ + private Logger logger = Logger.getLogger(NetworkClient.class.getName()); + /** The left over buffer, used to fix multi threaded requests. */ + private byte[] leftBuf = null; + + /** + * Creates an NetworkClient. + * + * @param hostAddress + * @param port + * @throws IOException + */ + public NetworkClient(InetAddress hostAddress, int port) throws IOException { + super(hostAddress,port); + responseHandlers = Collections.synchronizedMap(new HashMap(100)); + } + + /** + * We override stop to clean our private resources here + * @see suncertify.net.NetworkNIOConnector#stop() + */ + @Override + public void stop() throws IOException { + try { + super.stop(); + } finally { + leftBuf = null; + try { + if (socket!=null) { // start,stop when nothing happend, then socket is still null. + socket.close(); + } + } finally { + responseHandlers.clear(); + } + } + } + + /** + * Sends an NetworkRequest to the server. + * @param request + * @param handler + * @throws IOException + */ + public void send(NetworkRequest request, NetworkResponseHandler handler) throws IOException { + // We connect on first send + if (socket==null) { + socket = initiateConnection(); + } + // Register the response handler + responseHandlers.put(handler.getNetworkRequest().getRequestId(), handler); + + // send object to socket + sendObject(socket,request); + } + + /** + * Process data from the server. + */ + @Override + protected void processData(SocketChannel socket,ByteBuffer readBuffer) throws IOException { + + // we should make sure the happens less often or not at all, because the allocate is an heavy function. + if (leftBuf!=null) { + if (logger.isLoggable(Level.FINE)) { + logger.fine("Fixing data: appendSize: "+leftBuf.length+" buf: "+readBuffer.remaining()); + } + + ByteBuffer buffer = ByteBuffer.allocate(8192+leftBuf.length+readBuffer.remaining()); + buffer.limit(leftBuf.length+readBuffer.remaining()); + + buffer.put(leftBuf); + buffer.put(readBuffer); + + buffer.rewind(); + readBuffer.clear(); + readBuffer = buffer; + leftBuf = null; + } + + ByteBuffer leftOver = receiveObject(socket,readBuffer, new ObjectHandler() { + public void processObject(Object object) { + NetworkResponse response = (NetworkResponse)object; + NetworkResponseHandler handler = responseHandlers.remove(response.getRequestId()); + if (handler==null) { + logger.warning("Error no handler for read data of request "+response.getRequestId()); + return; + } + // And pass the response to it + handler.handleResponse(response); + } + },0); + if (leftOver==null) { + return; // all oke + } + + // save left over for when next bytes come in. + byte[] data2 = new byte[leftOver.remaining()]; + leftOver.get(data2); + leftBuf = data2; + + if (logger.isLoggable(Level.FINE)) { + ByteArrayInputStream in = new ByteArrayInputStream(leftBuf); + ObjectInputStream objstream = new ObjectInputStream(in); + int objectSize = objstream.readInt(); + objstream.close(); + + logger.fine("Pasting LeftOver size: "+data2.length+" Next object size: "+objectSize); + } + } + + /** + * Creates our connection to the server. + * @return + * @throws IOException + */ + private SocketChannel initiateConnection() throws IOException { + // Create nonblocking socket channel + SocketChannel socketChannel = SocketChannel.open(); + socketChannel.configureBlocking(false); + + // Connect to server + socketChannel.connect(new InetSocketAddress(getHostAddress(),getPort())); + socketChannel.finishConnect(); + + // select register on selector in nio thread + addChangeRequest(socketChannel, NIOChangeRequest.ChangeType.REGISTER, SelectionKey.OP_CONNECT); + return socketChannel; + } + + /** + * Returns an InvocationHandler for creating proxed objects. + * @param obj + * @return + */ + public InvocationHandler getInvocationHandler(Class obj) { + return new NetworkInvocationHandler(obj,this); + } + + /** + * InvocationHandler for handeling the method calls of the proxy bean. + * + */ + private class NetworkInvocationHandler implements InvocationHandler { + private String beanName = null; + private NetworkClient client = null; + + public NetworkInvocationHandler(Class obj,NetworkClient client) { + beanName = obj.getName(); + this.client=client; + } + + public Object invoke(Object proxy, Method method,Object[] args) throws Throwable { + // create request and fill it. + NetworkRequest request = new NetworkRequest(requestIds.getAndIncrement()); + request.setRequestBean(beanName, method.getName(), args); + // Create handler for when we get response. + NetworkResponseHandler handler = new NetworkResponseHandler(request,client); + // send and wait.. + client.send(request, handler); + handler.waitForResponse(); + // we have it. + Object result = handler.getResult(); + return result; + } + } +} \ No newline at end of file diff --git a/src/suncertify/net/NetworkNIOConnector.java b/src/suncertify/net/NetworkNIOConnector.java new file mode 100644 index 0000000..281ffd2 --- /dev/null +++ b/src/suncertify/net/NetworkNIOConnector.java @@ -0,0 +1,188 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.net; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.net.InetAddress; +import java.nio.ByteBuffer; +import java.nio.channels.SocketChannel; +import java.util.Timer; +import java.util.TimerTask; +import java.util.logging.Logger; + +/** + * The NetworkNIOConnector for creating object based serialezed nio client/servers + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +abstract public class NetworkNIOConnector extends NIOConnector { + + /** The logger to log to. */ + private Logger logger = Logger.getLogger(NetworkNIOConnector.class.getName()); + + /** Counter for send Objects */ + volatile private int sendObjectCounter = 0; + + /** indicating the milisecond value for 1min.. */ + static final private long ONCE_PER_MINUTE = 1000*60; + + /** Timer object to print stats. */ + private Timer statsTimer = null; + + /** + * Creates an NetworkNIOConnector. + * + * @param hostAddress + * @param port + * @throws IOException + */ + public NetworkNIOConnector(InetAddress hostAddress, int port) throws IOException { + super(hostAddress,port); + } + + /** + * Starts this Connector by creating the selector + * and starts the backend nio thread. + * Creates an Timer for printing the stats of this connector. + */ + @Override + public void start() throws IOException { + // create selectort + selector = initSelector(); + + // Start the backend thread + Thread t = new Thread(this,"net-nio"); + t.setDaemon(true); + t.start(); + + // start the stats timers + statsTimer = new Timer("net-stats"); + statsTimer.scheduleAtFixedRate(new TimerTask() { + public void run() { + try { + logger.info("sendObject() Statistics"+ + " TPM: "+sendObjectCounter+ + " TPS: "+(sendObjectCounter/60)+ + " totalEstablisedConnections: "+totalConnections+ + " totalHandledConnections: "+connectsCounter.get()); + } finally { + sendObjectCounter=0; + } + } + }, 0, ONCE_PER_MINUTE); + + // reset stats counters + sendObjectCounter=0; + } + + /** + * Stops the connector and backend threads. + * cleaning all resources and closing the connections/selector. + */ + @Override + public void stop() throws IOException { + if (stop) { + throw new IllegalStateException("Can't stop already stopped connector."); + } + stop = true; // note: thread stops his resources (and selector) + try { + selector.wakeup(); + } finally { + try { + statsTimer.cancel(); + } finally { + + // simple stop check + int max=10; + while (totalConnections!=0 & max!=0) { + try { + max--; + Thread.sleep(200); + } catch (InterruptedException e) { + } + } + selector.close(); + } + } + } + + public void sendObject(SocketChannel socket,Object object) throws IOException { + + // write request + ByteArrayOutputStream dataArray = new ByteArrayOutputStream(256); // it grows when needed + ObjectOutputStream objOutstream = new ObjectOutputStream(dataArray); + objOutstream.writeObject(object); + objOutstream.close(); + + int objectSize = dataArray.size(); + + // write request size + ByteArrayOutputStream dataArray2 = new ByteArrayOutputStream(objectSize+8); + ObjectOutputStream objOutstream2 = new ObjectOutputStream(dataArray2); // todo: remove this new statement + objOutstream2.writeInt(objectSize); + objOutstream2.close(); + + // add request object + dataArray2.write(dataArray.toByteArray()); + super.send(socket, ByteBuffer.wrap(dataArray2.toByteArray())); + sendObjectCounter++; + } + + public ByteBuffer receiveObject(SocketChannel socket,ByteBuffer readBuffer,ObjectHandler objectHandler,int offset) throws IOException { + + if (readBuffer.limit()<8) { + logger.fine("Missing bytes, could not read object Size bufLimit: "+readBuffer.limit()); + return readBuffer; + } + + ByteArrayInputStream in = new ByteArrayInputStream(readBuffer.array(),0,readBuffer.limit()); + + //System.out.println("in: "+in.available()+" off: "+offset); + if ((in.available()-offset)<8) { + logger.info("--------------------------------- TODO: error, fix"); + return readBuffer; + } + + in.skip(offset); + + ObjectInputStream objstream = new ObjectInputStream(in); + int objectSize = objstream.readInt(); + objstream.close(); + + if (objectSize>in.available()) { + logger.fine("Not all bytes gotten: objSize: "+objectSize+" inA: "+in.available()); + readBuffer.position(offset); + return readBuffer; + } + + + objstream = new ObjectInputStream(in); + Object result = null; + try { + result = objstream.readObject(); + objectHandler.processObject(result); + } catch (ClassNotFoundException e) { + throw new IOException("Could not load object class: "+e.getMessage(),e); + } finally { + if (in.available()>0 ) { + logger.fine("==== dubbel request added left over: "+in.available()+" offset: "+(readBuffer.limit()-in.available())); + return receiveObject(socket,readBuffer,objectHandler,(readBuffer.limit()-in.available())); + //return null; + } + } + return null; + } + + public interface ObjectHandler { + public void processObject(Object object); + } +} \ No newline at end of file diff --git a/src/suncertify/net/NetworkRequest.java b/src/suncertify/net/NetworkRequest.java new file mode 100644 index 0000000..f84b909 --- /dev/null +++ b/src/suncertify/net/NetworkRequest.java @@ -0,0 +1,139 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.net; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; + +/** + * The NetworkRequest is the object sent to the server for invoking a method on a bean. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class NetworkRequest implements Externalizable { + + /** The request ID, should be an uniq number */ + private Integer requestId = null; + + /** The beanName we do the request on. */ + private String beanName = null; + + /** The methodName of the bean to call. */ + private String methodName = null; + + /** The argruments of the method name. */ + private Object[] methodArgs = null; + + public NetworkRequest() { + } + + /** + * Creates an NetworkRequest with an given requestId. + * @param requestId The requestId of the response. + */ + public NetworkRequest(Integer requestId) { + if (requestId==null) { + throw new NullPointerException("can't handle null requestID."); + } + this.requestId=requestId; + } + + /** + * Sets and check all info for request. + * @param beanName + * @param methodName + * @param methodArgs + */ + public void setRequestBean(String beanName,String methodName,Object[] methodArgs) { + if (beanName==null) { + throw new NullPointerException("Can't request null beanName."); + } + if (beanName.isEmpty()) { + throw new IllegalArgumentException("Can't request empty beanName."); + } + if (methodName==null) { + throw new NullPointerException("Can't request null methodName"); + } + if (methodName.isEmpty()) { + throw new NullPointerException("Can't request empty methodName"); + } + this.beanName=beanName; + this.methodName=methodName; + this.methodArgs=methodArgs; + } + + /** + * Returns the request id. + * @return The requestId + */ + public Integer getRequestId() { + return requestId; + } + + /** + * Returns the beanName + * @return The beanName to request + */ + public String getBeanName() { + return beanName; + } + + /** + * Returns the methodName + * @return The methodName to request + */ + public String getMethodName() { + return methodName; + } + + /** + * Returns the methodArgs + * @return The methodArgs to invoke on bean. + */ + public Object[] getMethodArgs() { + return methodArgs; + } + + /** + * @see java.io.Externalizable#readExternal(java.io.ObjectInput) + */ + @Override + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + requestId = in.readInt(); + beanName = in.readUTF(); + methodName = in.readUTF(); + int argsCount = in.readInt(); + if (argsCount==0) { + return; + } + methodArgs = new Object[argsCount]; + for (int i=0;i + + + + + +The network layer.
    +Bases on a NIO sockets with object stream serilatition. + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/src/suncertify/server/ServerException.java b/src/suncertify/server/ServerException.java new file mode 100644 index 0000000..25c19b4 --- /dev/null +++ b/src/suncertify/server/ServerException.java @@ -0,0 +1,34 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.server; + +/** + * The ServerException is thrown when the server has an exception. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +@SuppressWarnings("serial") +public class ServerException extends Exception { + + /** + * Message constructor + * @param message The error message + */ + public ServerException(String message) { + super(message); + } + + /** + * Full constructor + * @param message The error message + * @param exception The error exception + */ + public ServerException(String message,Exception exception) { + super(message,exception); + } +} \ No newline at end of file diff --git a/src/suncertify/server/ServerManager.java b/src/suncertify/server/ServerManager.java new file mode 100644 index 0000000..2de7d44 --- /dev/null +++ b/src/suncertify/server/ServerManager.java @@ -0,0 +1,215 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.server; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * The ServerManager manages server beans and create and inject depencicies on the beans. + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class ServerManager { + + private ThreadPoolExecutor threadPoolExecutor = null; + private Map> beans = new HashMap>(5); + private Map initBeans = new HashMap(5); + + /** + * Creates an ServerManager with an worker pool of threads. + */ + public ServerManager() { + // core, max, keepalive + threadPoolExecutor = new ThreadPoolExecutor ( + 3,10,2, + TimeUnit.SECONDS, + new LinkedBlockingQueue(), + new NameingThreadFactory("server-") + ); + } + + /** + * Starts the serverManager backend thread pool. + */ + public void start() { + threadPoolExecutor.prestartAllCoreThreads(); + } + + /** + * Stops the ServerManager backend thread pool. + */ + public void stop() { + threadPoolExecutor.shutdown(); + } + + /** + * Execute an Runnable object in the ServerManager thread pool. + * @param run The Object to run. + */ + public void execute(Runnable run) { + threadPoolExecutor.execute(run); + } + + /** + * Adds an bean by its class. + * @param serverBeanRemote + * @param serverBean + */ + public void putServerBean(Class serverBeanRemote,Class serverBean) { + beans.put(serverBeanRemote.getName(),serverBean); + } + + /** + * Add an bean which is already created. + * @param name + * @param serverBean + */ + public void putServerInitBean(String name,Object serverBean) { + initBeans.put(name,serverBean); + } + + /** + * Request an server bean. + * This methode also makes sure all depencies are injectes into the bean. + * + * @param name + * @return + * @throws ServerException + */ + public Object getServerBean(String name) throws ServerException { + + // let init bean be first + if (initBeans.containsKey(name)) { + return initBeans.get(name); + } + + Class c = beans.get(name); + if (c==null) { + throw new ServerException("Could not find bean for: "+name); + } + + Object result = null; + try { + result = c.newInstance(); + } catch (Exception e) { + throw new ServerException("Could error while init bean: '"+name+"' "+e.getMessage(),e); + } + + for (Field field:result.getClass().getFields()) { + ServerResource resource = field.getAnnotation(ServerResource.class); + if (resource==null) { + continue; + } + String beanName = resource.beanName(); + if ("null".equals(beanName)) { + beanName = field.getType().getName(); + } + Object bean = getServerBean(beanName); + if (bean==null) { + continue; + } + try { + field.set(result,bean); + } catch (Exception e) { + throw new ServerException("Could not load resource for bean: "+name+" resource: "+beanName); + } + } + + return result; + } + + /** + * Get all the Beans know in the server. + * @return + */ + public List getServerBeanNames() { + List result = new ArrayList(beans.keySet()); + result.addAll(initBeans.keySet()); + return result; + } + + /** + * Get local InvocationHandler which is used for none network mode for this server. + * @return + */ + public InvocationHandler getLocalInvocationHandler() { + return new LocalRequestProxy(this); + } + + /** + * Custum ThreadFactory for getting thread nameing correctly. + */ + private class NameingThreadFactory implements ThreadFactory { + final ThreadGroup group; + final AtomicInteger threadNumber = new AtomicInteger(1); + final String namePrefix; + + public NameingThreadFactory(String namePrefix) { + if (namePrefix==null) { + namePrefix = "thread-"; + } + this.namePrefix=namePrefix; + SecurityManager s = System.getSecurityManager(); + if (s != null) { + group = s.getThreadGroup(); + } else { + group = Thread.currentThread().getThreadGroup(); + } + } + + public Thread newThread(Runnable r) { + Thread t = new Thread(group, r,namePrefix+threadNumber.getAndIncrement(),0); + if (t.isDaemon()) { + t.setDaemon(false); + } + if (t.getPriority() != Thread.NORM_PRIORITY) { + t.setPriority(Thread.NORM_PRIORITY); + } + return t; + } + } + + /** + * InvocationHandler for handeling the method calls of the proxy bean. + * + */ + private class LocalRequestProxy implements InvocationHandler { + + private ServerManager serverManager = null; + + public LocalRequestProxy(ServerManager serverManager) { + this.serverManager=serverManager; + } + + public Object invoke(Object proxy, Method method,Object[] args) throws Throwable { + Object bean = serverManager.getServerBean(proxy.getClass().getName()); + int pS = 0; + if (args!=null) { + pS = args.length; + } + Class[] para = new Class[pS]; + for (int i=0;i getLastBookings(int logID) { + List result = new ArrayList(1); + return result; + } +} \ No newline at end of file diff --git a/src/suncertify/server/beans/BookingLogManagerRemote.java b/src/suncertify/server/beans/BookingLogManagerRemote.java new file mode 100644 index 0000000..2ea2945 --- /dev/null +++ b/src/suncertify/server/beans/BookingLogManagerRemote.java @@ -0,0 +1,20 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.server.beans; + +import java.util.List; + +/** + * The BookingLogManagerRemote + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public interface BookingLogManagerRemote { + + public List getLastBookings(int logID); +} \ No newline at end of file diff --git a/src/suncertify/server/beans/HotelRoomManager.java b/src/suncertify/server/beans/HotelRoomManager.java new file mode 100644 index 0000000..de442ad --- /dev/null +++ b/src/suncertify/server/beans/HotelRoomManager.java @@ -0,0 +1,102 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.server.beans; + +import java.util.ArrayList; +import java.util.List; + +import suncertify.db.DB; +import suncertify.db.DuplicateKeyException; +import suncertify.db.RecordNotFoundException; +import suncertify.models.HotelRoom; +import suncertify.models.HotelRoomDBConverter; +import suncertify.server.ServerResource; + +/** + * The HotelRoomManager + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public class HotelRoomManager implements HotelRoomManagerRemote { + + @ServerResource(beanName="hotelRoom.tableBackend") + public DB backend = null; + + @ServerResource(beanName="hotelRoom.beanConverter") + public HotelRoomDBConverter hotelRoomDBConverter = null; + + /** + * @see suncertify.server.beans.HotelRoomManagerRemote#findByCriteria(suncertify.models.HotelRoom) + */ + @Override + public List findByCriteria(HotelRoom hotelRoom) throws RecordNotFoundException { + String[] data = hotelRoomDBConverter.encode(hotelRoom); + int[] result = backend.find(data); + List rooms = new ArrayList(result.length); + for (int i:result) { + String[] rec = backend.read(i); + HotelRoom hr = hotelRoomDBConverter.decode(rec); + hr.setId(i); + rooms.add(hr); + } + return rooms; + } + + /** + * @see suncertify.server.beans.HotelRoomManagerRemote#getAllHotelRooms() + */ + @Override + public List getAllHotelRooms() throws RecordNotFoundException { + HotelRoom room = new HotelRoom(); + room.setName("a"); + return findByCriteria(room); // leaven all values null does an select all + } + + /** + * @see suncertify.server.beans.HotelRoomManagerRemote#delete(suncertify.models.HotelRoom, java.lang.Long) + */ + @Override + public void delete(HotelRoom hotelRoom, Long lockId) throws RecordNotFoundException { + backend.delete(hotelRoom.getId(), lockId); + } + + /** + * @see suncertify.server.beans.HotelRoomManagerRemote#merge(suncertify.models.HotelRoom, java.lang.Long) + */ + @Override + public void merge(HotelRoom hotelRoom, Long lockId) throws RecordNotFoundException, SecurityException { + String[] data = hotelRoomDBConverter.encode(hotelRoom); + backend.update(hotelRoom.getId(), data, lockId); + } + + /** + * @see suncertify.server.beans.HotelRoomManagerRemote#persist(suncertify.models.HotelRoom) + */ + @Override + public Integer persist(HotelRoom hotelRoom) throws DuplicateKeyException { + String[] data = hotelRoomDBConverter.encode(hotelRoom); + return backend.create(data); + } + + + /** + * @see suncertify.server.beans.HotelRoomManagerRemote#lockHotelRoom(java.lang.Integer) + */ + @Override + public Long lockHotelRoom(Integer id) throws RecordNotFoundException { + return backend.lock(id); + } + + /** + * @see suncertify.server.beans.HotelRoomManagerRemote#unlockHotelRoom(java.lang.Integer, java.lang.Long) + */ + @Override + public void unlockHotelRoom(Integer id, Long lockId) throws RecordNotFoundException { + backend.unlock(id, lockId); + } +} \ No newline at end of file diff --git a/src/suncertify/server/beans/HotelRoomManagerRemote.java b/src/suncertify/server/beans/HotelRoomManagerRemote.java new file mode 100644 index 0000000..e5b9623 --- /dev/null +++ b/src/suncertify/server/beans/HotelRoomManagerRemote.java @@ -0,0 +1,77 @@ +/* + * Copyright 2008 Willem Cazander. + * Created for Sun Certified Developer for the Java 2 Platform + * Application Submission (Version 1.1.3) + */ + +package suncertify.server.beans; + +import java.util.List; + +import suncertify.db.DuplicateKeyException; +import suncertify.db.RecordNotFoundException; +import suncertify.models.HotelRoom; + +/** + * The HotelRoomManagerRemote manages the HotelRooms. + * + * + * + * @author Willem Cazander + * @version 1.0 Dec 14, 2008 + */ +public interface HotelRoomManagerRemote { + + // TEMP !!! + public List getAllHotelRooms() throws RecordNotFoundException; + + /** + * + * @param hotelRoom + * @return + * @throws RecordNotFoundException + */ + public List findByCriteria(HotelRoom hotelRoom) throws RecordNotFoundException; + + /** + * + * @param id + * @return + * @throws RecordNotFoundException + */ + public Long lockHotelRoom(Integer id) throws RecordNotFoundException; + + /** + * + * @param id + * @param lockId + * @throws RecordNotFoundException + */ + public void unlockHotelRoom(Integer id,Long lockId) throws RecordNotFoundException; + + /** + * Persists an HotelRoom + * @param hotelRoom + * @return + * @throws DuplicateKeyException + */ + public Integer persist(HotelRoom hotelRoom) throws DuplicateKeyException; + + /** + * Merges an HotelRoom + * @param hotelRoom + * @param lockId + * @throws RecordNotFoundException + * @throws SecurityException + */ + public void merge(HotelRoom hotelRoom,Long lockId) throws RecordNotFoundException, SecurityException; + + /** + * Deletes an HotelRoom + * @param hotelRoom + * @param lockId + * @throws RecordNotFoundException + * @throws SecurityException + */ + public void delete(HotelRoom hotelRoom,Long lockId) throws RecordNotFoundException, SecurityException; +} \ No newline at end of file diff --git a/src/suncertify/server/beans/package.html b/src/suncertify/server/beans/package.html new file mode 100644 index 0000000..6d45005 --- /dev/null +++ b/src/suncertify/server/beans/package.html @@ -0,0 +1,32 @@ + + + + + + +The server service beans.
    + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/src/suncertify/server/package.html b/src/suncertify/server/package.html new file mode 100644 index 0000000..88352f1 --- /dev/null +++ b/src/suncertify/server/package.html @@ -0,0 +1,32 @@ + + + + + + +The server for executing services.
    + + + + +

    Related Documentation

    + +None. + + + + + \ No newline at end of file diff --git a/test/suncertify/db/DataTest.java b/test/suncertify/db/DataTest.java new file mode 100644 index 0000000..2c56cc7 --- /dev/null +++ b/test/suncertify/db/DataTest.java @@ -0,0 +1,102 @@ + + +package suncertify.db; + +import suncertify.core.LoadHotelRoomDB; +import suncertify.db.Data; +import suncertify.db.data.RowLock; +import suncertify.db.data.Table; +import suncertify.models.HotelRoom; +import suncertify.models.HotelRoomDBConverter; +import junit.framework.TestCase; + + +public class DataTest extends TestCase { + + + public void printRecord(String[] record) { + for (String value:record) { + System.out.print("'"); + System.out.print(value); + System.out.print("'\t"); + } + System.out.println(""); + } + + + public void testData() throws Exception { + + DataBaseManager dataBaseManager = new DataBaseManager(); + new LoadHotelRoomDB().loadTable(dataBaseManager); + Table table = dataBaseManager.getHotelRoomTable(); + + HotelRoomDBConverter c = new HotelRoomDBConverter(table); + + Data d = new Data(dataBaseManager.getHotelRoomTable()); + printRecord(d.read(0)); + printRecord(d.read(1)); + printRecord(d.read(9)); + + String[] first = d.read(8); + printRecord(first); + HotelRoom hr = c.decode(first); + String[] back = c.encode(hr); + printRecord(back); + //assertEquals(first,back); + + table.closeTable(); + } + + public void testLock() throws Exception { + + DataBaseManager dataBaseManager = new DataBaseManager(); + new LoadHotelRoomDB().loadTable(dataBaseManager); + Table table = dataBaseManager.getHotelRoomTable(); + + String[] interfaceData = {"name-FIELD-Data"+System.nanoTime(),"location-FIELD-DATa","45","true","$349.34","2008/02/13","888"}; + int row = table.create(interfaceData); + System.out.println("NEW Rcords row:"+row); + + RowLock lock = table.lock(2); + table.unlock(2, lock.getLockId()); + lock = table.lock(2); + table.unlock(2, lock.getLockId()); + lock = table.lock(2); + table.unlock(2, lock.getLockId()); + + // get lock + lock = table.lock(2); + + boolean error = false; + try { + table.delete(20, lock.getLockId()); + } catch (SecurityException se) { + error = true; + } + assertEquals(true,error); + + + error = false; + try { + table.delete(200000, lock.getLockId()); + } catch (RecordNotFoundException se) { + error = true; + } + assertEquals(true,error); + + //table.delete(2, lock.getLockId()); + table.unlock(2, lock.getLockId()); + + error = false; + try { + Data d = new Data(table); + printRecord(d.read(2)); + } catch (RecordNotFoundException re) { + error = true; + } + //assertEquals(true,error); + + table.closeTable(); + } + +} \ No newline at end of file diff --git a/test/suncertify/db/InsertTest.java b/test/suncertify/db/InsertTest.java new file mode 100644 index 0000000..0948048 --- /dev/null +++ b/test/suncertify/db/InsertTest.java @@ -0,0 +1,111 @@ + + +package suncertify.db; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.net.URL; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.logging.Logger; + +import suncertify.core.LoadHotelRoomDB; +import suncertify.db.Data; +import suncertify.db.data.RowLock; +import suncertify.db.data.Table; +import suncertify.models.HotelRoom; +import suncertify.models.HotelRoomDBConverter; +import junit.framework.TestCase; + + +public class InsertTest extends TestCase { + + + public void printRecord(String[] record) { + StringBuilder buf = new StringBuilder(200); + for (String value:record) { + buf.append("'"); + buf.append(value); + buf.append("'\t"); + } + buf.append(""); + + Logger.getAnonymousLogger().info("data: "+buf); + } + + public List getKamers() throws Exception { + + URL u = new URL("url-not-there......"); + InputStream in = u.openStream(); + + InputStreamReader fileReader = new InputStreamReader(in,"UTF-8"); + LineNumberReader lineReader = new LineNumberReader(fileReader); + + List result = new ArrayList(200); + + String line = null; + int i = 0; + while ((line = lineReader.readLine()) !=null) { + if (line.contains("offerid")) { + continue; // skip header + } + i++; + + String[] d = line.split("\t"); + + HotelRoom r = new HotelRoom(); + r.setDateAvailable(new Date()); // d[11] + + String s = d[1]; + if (s.length()>63) { + s = s.substring(0,63); + } + r.setLocation(s); + + if ("".equals(s)) { + continue; + } + + s = d[2]; + if (s.length()>63) { + s = s.substring(0,63); + } + r.setName(s); + + if ("".equals(s)) { + continue; + } + + r.setCustomerId(i); + r.setPriceRate(new Long(d[5])); + r.setSize(1); + r.setSmoking(false); + + result.add(r); + } + + + + return result; + } + + + public void testData() throws Exception { + DataBaseManager dataBaseManager = new DataBaseManager(); + new LoadHotelRoomDB().loadTable(dataBaseManager); + Table table = dataBaseManager.getHotelRoomTable(); + + Data d = new Data(dataBaseManager.getHotelRoomTable()); + HotelRoomDBConverter c = new HotelRoomDBConverter(table); + + for (HotelRoom r:getKamers()) { + String[] data = c.encode(r); + printRecord(data); + d.create(data); + } + + table.closeTable(); + } +} \ No newline at end of file diff --git a/test/suncertify/net/StartServer.java b/test/suncertify/net/StartServer.java new file mode 100644 index 0000000..c9bace3 --- /dev/null +++ b/test/suncertify/net/StartServer.java @@ -0,0 +1,59 @@ + +package suncertify.net; + +import java.io.IOException; +import java.nio.channels.SocketChannel; + +import suncertify.core.LoadHotelRoomDB; +import suncertify.core.LoadServerBeans; +import suncertify.core.NetworkServerWorker; +import suncertify.db.DataBaseManager; +import suncertify.net.NetworkServer.ServerBackendProvider; +import suncertify.server.ServerManager; + +/** + * Starts the server. + * + * Currently max: (note: fully cached results) + * Dec 15, 2008 1:19:01 AM suncertify.net.NetworkNIOConnector$1 run + * INFO: sendObject() Statistics TPM: 86326 TPS: 1438 + * + * @author Willem Cazander + */ +public class StartServer { + + private NetworkServer server = null; + + public void start() throws Exception { + DataBaseManager dataBaseManager = new DataBaseManager(); + dataBaseManager.start(); + final ServerManager serverManager = new ServerManager(); + serverManager.start(); + + new LoadHotelRoomDB().loadTable(dataBaseManager); + new LoadServerBeans().loadBeans(serverManager,dataBaseManager); + + ServerBackendProvider serverBackendProvider = new ServerBackendProvider() { + public void executeWorker(Runnable runable) { + serverManager.execute(runable); + } + public Runnable dataWorker(NetworkServer server,SocketChannel socket,byte[] data) { + return new NetworkServerWorker(serverManager,server,socket,data); + } + }; + server = new NetworkServer(null, 9090, serverBackendProvider); + server.start(); + } + + public void stop() throws IOException { + server.stop(); + } + + public static void main(String[] args) { + try { + new StartServer().start(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/test/suncertify/net/ThreadedClientTest.java b/test/suncertify/net/ThreadedClientTest.java new file mode 100644 index 0000000..558d0e3 --- /dev/null +++ b/test/suncertify/net/ThreadedClientTest.java @@ -0,0 +1,147 @@ + + +package suncertify.net; + +import java.io.IOException; +import java.lang.reflect.Proxy; +import java.net.InetAddress; +import java.util.List; + +import suncertify.models.HotelRoom; +import suncertify.server.beans.HotelRoomManagerRemote; +import junit.framework.TestCase; + +/** + * Tests the network layer with multi threads and connections + * + * @author Willem Cazander + */ +public class ThreadedClientTest extends TestCase { + + NetworkClient client = null; + + @Override + protected void setUp() throws Exception { + client = new NetworkClient(InetAddress.getByName("localhost"), 9090); + client.start(); + } + + @Override + protected void tearDown() throws Exception { + client.stop(); + } + + public void testSingleRequest() throws Exception { + final HotelRoomManagerRemote remote = (HotelRoomManagerRemote)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), + new Class[] { HotelRoomManagerRemote.class }, + client.getInvocationHandler(HotelRoomManagerRemote.class)); + long startTime = System.currentTimeMillis(); + List rooms = remote.getAllHotelRooms(); + long stopTime = System.currentTimeMillis(); + System.out.println("got rooms1: "+rooms.size()+" from threads: "+Thread.currentThread().getName()+" in "+(stopTime-startTime)+" ms."); + + if (rooms.isEmpty()) { + assertEquals(true,false); + } + } + + public void testThreadedRequestSingleRemote() throws Exception { + final HotelRoomManagerRemote remote = (HotelRoomManagerRemote)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), + new Class[] { HotelRoomManagerRemote.class }, + client.getInvocationHandler(HotelRoomManagerRemote.class)); + + for (int i=0;i<1;i++) { + Thread tt = new Thread(new Runnable() { + public void run() { + try { + for (int i=0;i<20000;i++) { + long startTime = System.currentTimeMillis(); + List rooms = remote.getAllHotelRooms(); + long stopTime = System.currentTimeMillis(); + if (i%1000==0) { + System.out.println(i+" got rooms: "+rooms.size()+" from threads: "+Thread.currentThread().getName()+" in "+(stopTime-startTime)+" ms."); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + tt.setPriority(10); + tt.setDaemon(false); + tt.setName("client-bench-"+i); + tt.start(); + } + + Thread.sleep(22000); + } + + public void testThreadedRequestThreadRemote() throws Exception { + for (int i=0;i<10;i++) { + Thread tt = new Thread(new Runnable() { + public void run() { + try { + HotelRoomManagerRemote remote = (HotelRoomManagerRemote)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), + new Class[] { HotelRoomManagerRemote.class }, + client.getInvocationHandler(HotelRoomManagerRemote.class)); + for (int i=0;i<1000;i++) { + //Thread.sleep(new Random().nextInt(400) ); + long startTime = System.currentTimeMillis(); + List rooms = remote.getAllHotelRooms(); + long stopTime = System.currentTimeMillis(); + if (i%100==0) { + System.out.println(i+" got rooms: "+rooms.size()+" from threads: "+Thread.currentThread().getName()+" in "+(stopTime-startTime)+" ms."); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + tt.setPriority(10); + tt.setDaemon(false); + tt.setName("client-bench-"+i); + tt.start(); + } + Thread.sleep(22000); + } + + public void testThreadedRequestPerThreadClient() throws Exception { + for (int i=0;i<10;i++) { + Thread tt = new Thread(new Runnable() { + NetworkClient clientThread = null; + public void run() { + try { + clientThread = new NetworkClient(InetAddress.getByName("localhost"), 9090); + clientThread.start(); + HotelRoomManagerRemote remote = (HotelRoomManagerRemote)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), + new Class[] { HotelRoomManagerRemote.class }, + clientThread.getInvocationHandler(HotelRoomManagerRemote.class)); + for (int i=0;i<1000;i++) { + //Thread.sleep(new Random().nextInt(400) ); + long startTime = System.currentTimeMillis(); + List rooms = remote.getAllHotelRooms(); + long stopTime = System.currentTimeMillis(); + if (i%100==0) { + System.out.println(i+" got rooms: "+rooms.size()+" from threads: "+Thread.currentThread().getName()+" in "+(stopTime-startTime)+" ms."); + } + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + clientThread.stop(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + }); + tt.setPriority(10); + tt.setDaemon(false); + tt.setName("client-bench-"+i); + tt.start(); + } + Thread.sleep(22000); + } +} \ No newline at end of file