Java EE Technologies for Development of Modern Information Systems
Total Page:16
File Type:pdf, Size:1020Kb
MASARYKOVA UNIVERZITA FAKULTA}w¡¢£¤¥¦§¨ INFORMATIKY !"#$%&'()+,-./012345<yA| Java EE technologies for development of modern information systems BACHELOR THESIS Andrej Makovický Brno, spring 2013 Declaration Hereby I declare, that this paper is my original authorial work, which I have worked out by my own. All sources, references and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. Andrej Makovický Advisor: Ing. Petr Adámek ii Acknowledgement I would like to thank my supervisor Ing. Petr Adámek for all the support he provided, for his comments, help and supervision during my work on the thesis. I would like to thank head seminar tutor Mgr. Eva Kuˇcírkováfor her invaluable feedback. Last but not least, special thanks go to my family and friends who put their trust and hope into me, comforted me on the days when I was down and pushed me even further when the success was in my reach. iii Abstract The aim of this bachelor thesis is to map the current situation of ar- ticles on Laboratory of Software Architectures and Information Sys- tems wiki and then consolidate and extend the range of existing in- formation about commonly used Java Enterprise Edition technolo- gies on kore.fi.muni.cz, and thus provide centralized source infor- mation about this topic. iv Keywords Java EE, Java, Spring, Enterprise Java Beans, EJB, PA165, Enterprise Applications in Java, Java Platform Enterprise Edition v Contents 1 Introduction ............................3 2 Java Platform, Enterprise Edition ...............5 2.1 Overview ...........................5 2.2 Brief history .........................5 2.2.1 Java 2 Platform, Enterprise Edition 1.2......5 2.2.2 Java 2 Platform, Enterprise Edition 1.3......5 2.2.3 Java 2 Platform, Enterprise Edition 1.4......6 2.2.4 Java Platform, Enterprise Edition 1.5.......6 2.2.5 Java Platform, Enterprise Edition 6........7 2.2.6 Java Platform, Enterprise Edition 7........7 2.3 Core technologies of Java EE under Java Community Process ............................8 2.3.1 Enterprise JavaBeans................8 2.3.2 Java Persistence API................ 10 2.3.3 Java Transaction API................ 10 2.3.4 Java Server Pages.................. 11 2.3.5 Other......................... 11 2.4 Java EE technologies outside Java Community Process 13 2.4.1 Spring........................ 13 2.4.2 JUnit......................... 16 2.4.3 Stripes........................ 16 2.4.4 Other......................... 17 3 Wiki ................................. 18 3.1 MediaWiki .......................... 19 3.2 Navigation on Lasaris MediaWiki ............. 19 4 PA165 Enterprise Applications in Java ............ 22 5 Analysis of current Lasaris wiki site state .......... 23 5.1 First look ........................... 23 5.2 Collecting the Information ................. 24 5.2.1 Data organization.................. 24 5.3 Situation at the beginning ................. 24 5.4 Main deficiencies and appropriate goals ......... 25 5.5 Quick minor change .................... 25 6 Java EE and PA165 category organization ........... 27 7 Article changes .......................... 28 1 7.1 Selection scheme for new entries ............. 28 7.2 New articles in English language ............. 28 7.3 New articles in Czech or Slovak language ........ 29 7.4 Simple language navigation ................ 29 7.5 SimpleTeamManager - example source .......... 30 7.6 Removing and updating selected articles ........ 32 7.7 Cross-referencing ...................... 33 7.8 Redirects ........................... 33 8 Summary of changes ....................... 35 9 Conclusion ............................. 36 A Bibliography ........................... 37 B Attachments ............................ 40 B.1 Attachment 1 ........................ 42 B.2 Attachment 2 ........................ 43 B.3 Attachment 3 ........................ 50 B.4 Attachment 4 ........................ 58 B.5 Attachment 5 ........................ 59 B.6 Attachment 6 ........................ 60 2 1 Introduction Java EE is an astounding platform. It is dedicated to enterprise ap- plications and the emphasis is put on ease of development. During last decade, the technologies used in Java Platform, Enterprise Edi- tion (henceforth only Java EE) made a greoper using Java EE. Thereat leap forwards. The improvement was so big that in this era of free in- formation flow it became confusing and very time-consuming to find crucial information about all the aspects of development. This phe- nomenon is particularly true when someone wants to become a pro- fessional devel are lots of useful application programming interfaces (APIs), frameworks, application servers, containers, and the list goes on and on. Nearly for each enterprise application problem domain both open source or proprietary solutions are provided. When I decided to learn about them, the first thing I tried was to find an information database containing the material I wanted to learn. After a long time of unsuccessful searching I stumbled upon Laboratory of Software Architectures and Information Systems (La- saris) wiki site1. The information regarding Java EE were incredibly chaotic. On one side of the coin, there were entries which were great, easy to read and comprehend and provided loads of information I did not even dream about. On the flip side, many articles were in corrupt state, out-of-date or simply missing. I saw an opportunity to enhance this complex information database and provide quality service to every- one who would be as much interested to learn Java EE as I was. Enhancement of Lasaris wiki entries is not only beneficial but also necessary. When I tried to get into Java EE myself, though being a good learner the learning curve was very steep. Diverse placement of information was not helpful at all and the information-mining soon became very time consuming. Documentations being helpful as they are have never been built for beginners, but mainly for ev- eryday users and experienced developers. Technology providers of- ten purposefully omit comparisons with technologies alternative to theirs and often list only benefits which their product provides. The primary goal I set to myself was to make the entries regarding 1. http://kore.fi.muni.cz/wiki/index.php/Hlavn%C3%AD_strana 3 1. INTRODUCTION Java EE legible, easy to comprehend and simply better in every way. This would include extending the knowledge database and publish- ing articles in English as well. Details about goals can be found on- ward, because I needed thorough mapping of status quo before they could be clarified. I used the most natural structural pattern writing this thesis. It follows the complete process of my work and in detail documents the process of rebuilding Lasaris lab wiki. Chapter 2 and its subsections provides an overview of Java EE platform and contemporary technologies used in development on this platform. Chapter 3 is dedicated to information about wiki sites and MediaWiki application. In chapter 4, there is an overview of course PA165. Chapter 5 focuses on analysis of the relevancy and state of articles regarding Java EE technologies. It contains sections about collecting all the information about current situation on the website, summary of the entries as they were before the actual con- solidation and extension happened or information about Java EE ar- ticle organization. Chapter 5 also contains the outline of the whole approach chosen for improving status quo. Chapter 6 depicts the or- ganization and updates of out-of-date articles. In Chapter 7, the de- scription of all article changes including creation of new articles, and a description of the application, which served as an example source, as well. Chapter 8 frames the whole work and covers the changes made in the process of Lasaris wiki enhancement. Conclusion fol- lows in the last chapter - Chapter 9. 4 2 Java Platform, Enterprise Edition 2.1 Overview Java Platform, Enterprise Edition or Java EE is an enterprise Java computing platform developed by Oracle. Java EE extends the Java Platform, Standard Edition(commonly referred to as Java SE) by in- troducing application programming interfaces (henceforth only APIs) for object-relational maping, distributed and multi-tier architectures, and web services. Java Platform, Enterprise Edition 6 (Java EE 6)1 which is specified by Java Specification Request (JSR) number 316[2] was released on 10th December, 2009 and is current up-to-date re- lease. In Java EE, the Java Platform, Standard Edition APIs are extended with technologies which provide support for web services, object- relational mapping, multi-tier architectures etc. 2.2 Brief history 2.2.1 Java 2 Platform, Enterprise Edition 1.2 In May 1998 Sun announced Java Professinoal Edition project (JPE). The first complete release came shortly after on 12th December, 1999 under the name Java 2 Platform, Enterprise Edition 1.2 or J2EE 1.2. It proposed basic set of technologies extending J2SE and thus ex- tending its range of use. This set includes Enterprise JavaBeans (EJB) 1.1, Java Servlet 2.2, Java Server Pages (JSP) 1.1 and and e few oth- ers, even the first Java Transaction Application API (JTA) version 1.0. Since then it became subdue to Java Community Process (JCP). 2.2.2 Java 2 Platform, Enterprise Edition 1.3 With JSR 58[14] came out next functional release - Java 2 Platform, Enterprise Edition 1.3. The release came out on 24th September, 2001. 1. A complete overview of JavaTM Platform, Enterprise Edition 6 API Specifica- tion