ebook img

Ticket Monster Tutorial PDF

326 Pages·2013·10.75 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Ticket Monster Tutorial

TicketMonsterTutorial i Ticket Monster Tutorial TicketMonsterTutorial ii Contents I WhatisTicketMonster? 1 1 Preamble 2 2 Usecases 3 2.1 Whatcanendusersdo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Whatcanadministratorsdo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Architecture 6 4 Howcanyourunit? 7 4.1 BuildingTicketMonster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 RunningTicketMonster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2.1 RunningTicketMonsterlocally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2.2 RunningTicketMonsterinOpenShift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5 Learnmore 9 II Introduction&GettingStarted 10 6 PurposeandTargetAudience 11 7 Installation 13 8 CreatinganewJavaEE6projectwithMaven 15 9 Exploringthenewlygeneratedproject 25 10 AddinganewentityusingForge 31 11 Reviewingpersistence.xml&updatingimport.sql 37 12 AddinganewentityusingJBossDeveloperStudio 38 13 Deployment 45 TicketMonsterTutorial iii 14 AddingaJAX-RSRESTfulwebservice 50 15 AddingajQueryMobileclientapplication 60 16 Conclusion 81 16.1 Cleaningupthegeneratedcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 III BuildingthepersistencelayerwithJPA2andBeanValidation 83 17 Whatwillyoulearnhere? 84 18 Yourfirstentity 85 19 Databasedesign&relationships 91 19.1 Mediaitems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 19.2 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 19.3 Shows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 19.4 Performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 19.5 Venue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 19.6 Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 19.7 Booking,Ticket&Seat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 20 Connectingtothedatabase 114 21 Populatingtestdata 116 22 Conclusion 118 IV BuildingTheBusinessServicesWithJAX-RS 119 23 WhatWillYouLearnHere? 120 24 BusinessServicesAndTheirRelationships 121 25 Preparations 122 25.1 AddingJacksonCore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 25.2 VerifyingtheversionsoftheJBossBOMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 25.3 EnablingCDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 25.4 Addingutilityclasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 26 InternalServices 124 26.1 TheMediaManager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 26.2 TheSeatAllocationService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 TicketMonsterTutorial iv 27 JAX-RSServices 130 27.1 InitializingJAX-RS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 27.2 ABaseServiceForReadOperations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 27.3 RetrievingVenues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 27.4 RetrievingEvents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 27.5 Creatinganddeletingbookings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 28 Testingtheservices 141 28.1 ABasicDeploymentClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 28.2 WritingRESTfulservicetests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 28.3 Runningthetests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 28.3.1 Executingtestsfromthecommandline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 28.3.2 RunningArquilliantestsfromwithinEclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 V BuildingTheUserUIUsingHTML5 149 29 WhatWillYouLearnHere? 150 30 First,thebasics 151 30.1 Client-sideMVCSupport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 30.2 Modularity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 30.3 Templating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 30.4 Mobileanddesktopversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 31 Settingupthestructure 154 31.1 Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 32 Settinguptheinitialviews 160 33 DisplayingEvents 162 33.1 TheEventmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 33.2 TheEventscollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 33.3 TheEventsViewview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 34 Viewingasingleevent 166 35 CreatingBookings 172 36 Mobileview 181 36.1 Settingupthestructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 36.2 Thelandingpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 36.3 Theeventsview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 36.4 Displayinganindividualevent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 36.5 Bookingtickets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 TicketMonsterTutorial v 37 MoreResources 198 VI BuildingtheAdministrationUIusingForge 199 38 WhatWillYouLearnHere? 200 39 SettingupForge 201 39.1 JBossEnterpriseApplicationPlatform6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 39.2 JBossAS7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 39.3 RequiredForgePlugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 40 GettingstartedwithForge 202 41 GeneratingtheCRUDUI 204 41.1 GeneratetheRESTresourcesfromtheJPAentities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 41.2 Updatetheproject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 41.3 ScaffoldtheAngularJSUIfromtheJPAentities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 42 TesttheCRUDUI 206 43 MakesomechangestotheUI 207 VII BuildingTheStatisticsDashboardUsingHTML5andJavaScript 212 44 WhatWillYouLearnHere? 213 45 ImplementingtheMetricsAPI 214 46 CreatingtheBotservice 218 47 DisplayingMetrics 226 47.1 TheMetricsmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 47.2 TheMetricscollection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 47.3 TheMetricsViewview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 48 DisplayingtheBotinterface 229 48.1 TheBotmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 48.2 TheBotViewview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 49 Creatingthedashboard 233 49.1 CreatingacompositeMonitorview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 49.2 Configuretherouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 TicketMonsterTutorial vi VIII CreatinghybridmobileversionsoftheapplicationwithApacheCordova 235 50 Whatwillyoulearnhere? 236 51 Whatarehybridmobileapplications? 237 52 Tweakyourapplicationforremoteaccess 238 53 DownloadingApacheCordova 240 54 CreatinganAndroidhybridmobileapplication 241 54.1 CreatinganAndroidprojectusingApacheCordova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 54.2 AddingApacheCordovatoTicketMonster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 55 CreatinganiOShybridmobileapplication 250 55.1 CreatinganiOSprojectusingApacheCordova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 55.2 AddingApacheCordovaforiOStoTicketMonster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 56 Conclusion 253 IX Addingadatagrid 254 57 WhatWillYouLearnHere? 255 58 Theproblemathand 256 59 AddingInfinispan 257 60 Configuringtheinfrastructure 259 61 Usingcachesforseatreservations 261 62 Implementingcarts 264 63 Conclusion 286 X Addingafull-textsearchengine 287 64 Whatwillyoulearnhere? 288 65 Settinguptheinfrastructure 289 65.1 Setupthedependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 65.2 Addsomeconfiguration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 TicketMonsterTutorial vii 66 Buildthecoresearchengine 291 66.1 Indexingthedomainmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 66.1.1 Addingthemetadatatoourdomainmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 66.1.2 Indexingexistingdata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 66.2 Writingthesearchengine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 66.2.1 BuildtheApacheLucenequery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 66.2.2 Buildtheobjectquery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 66.3 ExposingsearchtotheUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 67 Filterresultsbylocation 302 68 Enableandexposenavigationbyfacets 307 68.1 Indexingdataforfaceting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 68.2 Createthefacetingrequests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 68.3 Returnthefacetinginformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 68.4 Selectingafacet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 68.5 ExposingfacetingtotheUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 69 Moreresources 319 TicketMonsterTutorial 1/319 Part I What is TicketMonster? TicketMonsterTutorial 2/319 Chapter 1 Preamble TicketMonsterisanexampleapplicationthatfocusesonJavaEE6-JPA2,CDI,EJB3.1andJAX-RSalongwithHTML5and jQueryMobile. Itisamoderatelycomplexapplicationthatdemonstrateshowtobuildmodernwebapplicationsoptimizedfor mobile & desktop. TicketMonster is representative of an online ticketing broker - providing access to events (e.g. concerts, shows,etc)withanonlinebookingapplication. Apartfrombeingademo, TicketMonsterprovidesanalreadyexistingapplicationstructurethatyoucanuseasastartingpoint foryourapp. Youcouldtryoutyourusecases,testyourownideas,or,contributeimprovementsbacktothecommunity. ForkusonGitHub! The accompanying tutorials walk you through the various tools & technologies needed to build TicketMonster on your own. AlternativelyyoucandownloadTicketMonsterasacompletedapplicationandimportitintoyourfavoriteIDE. Beforewediveintothecode,let’sdiscusstherequirementsfortheapplication. TicketMonsterTutorial 3/319 Chapter 2 Use cases Wehavegroupedthecurrentusecasesintwomajorcategories: enduseroriented,andadministrative. 2.1 What can end users do? Theendusersoftheapplicationwanttoattendsomecoolevents.Theywilltrytofindshows,createbookings,orcancelbookings. Theusecasesare: • lookforcurrentevents; • lookforvenues; • selectshows(eventstakingplaceatspecificvenues)andchooseaperformancetime; • booktickets; • viewcurrentbookings; • cancelbookings;

Description:
15 Adding a jQuery Mobile client application. 60. 16 Conclusion. 81 . V Building The User UI Using HTML5. 149 . 41.3 Scaffold the AngularJS UI from the JPA entities . Visual Page Editor has experimental support for 64-bit JVMs in JBoss .. You can read how to do this in the h2console quickstart.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.