Praca Dyplomowa Inżynierska Michał Breiter
Total Page:16
File Type:pdf, Size:1020Kb
Rok akademicki 2014/2015 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki PRACA DYPLOMOWA INŻYNIERSKA Michał Bogusław Breiter Aplikacja do przeglądania i edycji Java Content Repository z wykorzystaniem platformy NetBeans Opiekun pracy dr inż. Łukasz Skonieczny Ocena: ..................................................... ................................................................. Podpis Przewodniczącego Komisji Egzaminu Dyplomowego 1 Kierunek: Informatyka Specjalność: Inżynieria Systemów Informatycznych Data urodzenia: 1991.04.09 Data rozpoczęcia studiów: 2010.10.01 Życiorys Urodziłem się 9 kwietnia 1991 roku w Warszawie. W 2010 roku ukończyłem Liceum Ogólnokształcące nr LI im. T. Kościuszki. W październiku 2010 roku rozpocząłem studia na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej. W trakcie studiów wybrałem specjalizację Inżynieria Systemów Informatycznych prowadzoną przez Instytut Informatyki. ....................................................... Podpis studenta EGZAMIN DYPLOMOWY Złożył egzamin dyplomowy w dniu ..................................................................................2015 r z wynikiem ................................................................................................................................... Ogólny wynik studiów: ................................................................................................................ Dodatkowe wnioski i uwagi Komisji: .......................................................................................... ....................................................................................................................................................... ....................................................................................................................................................... 2 STRESZCZENIE Praca prezentuje proces tworzenia aplikacji wspomagającej zarządzanie repozytoriami Java Content Repository z wykorzystaniem platformy NetBeans. Przedstawiono najważniejsze cechy użytych technologii - Java Content Repository oraz platformy NetBeans. Opisano konkurencyjne rozwiązania istniejące na rynku. Zdefiniowano najważniejsze wymagania postawione tworzonej aplikacji oraz typowe przypadki użycia. Zaprezentowana została architektura aplikacji, podjęte decyzje projektowe oraz opisano końcowy wynik pracy. Słowa kluczowe: Java Content Repository, JCR, JSR 170, JSR 283, NetBeans, Repozytorium Java Content Repository management application developed using NetBeans Platform This paper describes process of creating Java Content Repository management application developed using NetBeans Platform. Used technologies – Java Content Repository and NetBeans Platform are introduced. The thesis contains a short review of available solutions and their capabilities and describes requirements and use cases for developed application. Finally, application's architecture, design decisions and final result are presented. Keywords: Java Content Repository, JCR, JSR 170, JSR 283, NetBeans, Repository 3 Spis treści 1 Wprowadzenie.....................................................................................................................6 1.1 Wstęp...........................................................................................................................6 1.2 Cel pracy......................................................................................................................6 1.3 Układ Pracy.................................................................................................................6 2 Java Content Repository......................................................................................................8 2.1 Model repozytorium....................................................................................................9 2.2 Typy węzłów.............................................................................................................10 2.3 Dostępne implementacje............................................................................................11 2.3.1 Jackrabbit...........................................................................................................11 2.3.2 ModeShape........................................................................................................11 2.3.3 Adobe Digital Enterprise Platform....................................................................11 3 Platforma NetBeans...........................................................................................................13 3.1 Najważniejsze biblioteki............................................................................................13 3.1.1 System modułów................................................................................................13 3.1.2 System okien......................................................................................................14 3.1.3 Lookup...............................................................................................................17 3.1.5 System projektów...............................................................................................19 3.2 Alternatywy...............................................................................................................21 3.2.1 Eclipse................................................................................................................21 4 Istniejące rozwiązania.......................................................................................................23 4.1 Subshell Toromiro.....................................................................................................23 4.2 JCRController/Connector..........................................................................................24 4.3 Aplikacja Marcina Janickiego...................................................................................25 4.4 JCR-Explorer.............................................................................................................25 4 Analiza funkcjonalna.........................................................................................................27 4.1 Aktorzy......................................................................................................................27 4.2 Dziedzinowy słownik pojęć.......................................................................................27 4.3 Wymagania funkcjonalne..........................................................................................27 4.4 Wymagania niefunkcjonalne.....................................................................................28 4.5 Przypadki użycia........................................................................................................28 5 Architektura aplikacji........................................................................................................32 5.1 Podział na moduły.................................................................................................32 4.2 RepositoryProjectType.........................................................................................33 5.3 NodeTypeExplorer................................................................................................36 5.4 Search....................................................................................................................36 5.5 NodeEditor............................................................................................................37 5.6 NodeVersion.........................................................................................................38 5.7 Utils.......................................................................................................................38 6 Decyzje projektowe...........................................................................................................39 6.1 Połączenie z repozytorium.........................................................................................39 6.2 Zarządzanie zmianami...............................................................................................40 6.3 Dostęp do sesji...........................................................................................................40 6.4 Przechowywanie stanu...............................................................................................41 6.5 Zarządzanie modyfikacjami.......................................................................................42 6.6 Zapis zmian................................................................................................................43 6.7 Informowanie o błędach............................................................................................44 4 6.8 Wersje językowe........................................................................................................45 6.9 Wyświetlanie węzłów................................................................................................46 7 Podsumowanie...................................................................................................................48 8 Bibliografia........................................................................................................................49 9 Wykaz ilustracji z zewnętrznych źródeł............................................................................50 5 1 Wprowadzenie 1.1 Wstęp W dzisiejszych czasach aplikacje często muszą przechowywać znaczą