Closed bambalooon closed 9 years ago
Jak już ustaliliśmy serwer będzie odpalony na jettym, dzięki będzie się on odpalal jak zwykła aplikacja bez żadnego deployowania. Do całości użyjemy spring boota gdzie konfiguracja serwera odbywa się automatycznie.
Co do stawiania serwera, każdy będzie sobie go mógł odpalić u siebie i przetestować, podając tylko scieżkę do bazy, użytkownika i hasło. Poza tym przypominam, że zanim cokolwiek podłączymy do serwera mamy napisać do tego testy.
Co do bazy, również ustaliliśmy, że używamy ORM - Hibernate, więc czy to będzie postgres czy mysql nie ma znaczenia.
Aha - nie dotarło do mnie nic na temat tego jetty. Co do ORM, to się zastanawiam po prostu czy w tak lekki bazodanowo projekcie ma to sens.. Z konfiguracją Hibernate'a czasem może być dużo problemów, a to co robimy na bazie to podstawy. Oczywiście nie mówię nie, tylko się 'głośno' zastanawiam. Jaka jest przewaga Jettiego nad JBossem?
Ja wszystko skonfiguruje, Wy komunikujecie się z serwerem poprzez interfejs obsługa bazy jest po naszej stronie.
Skonfigurowałem serwer, hibernate(na razie na mysql, jak zainstaluje postgresa to mogę zmienić) serwer odpalamy przez klase Application. Możemy sprawdzić czy działa na localhost:8080. Co do bazy danych proponuje użyć hsqldb file database. Nie trzeba instalować żadnego serwera. Pozbywamy się kłopotu pobierania pakietów i tworzenia bazy na serwerze. Co Wy na to?
A ja mam jeszcze jedną uwagę - też zdecydowanie wolę postgresql, ale rozważcie też to, że skoro i tak postawimy orm to mamy przecież dostęp z agh do mysql, który stoi ciągle online za darmo. ;)
EDIT: a zresztą chyba nawet do postgresql mamy dostęp tylko trzeba chyba mieć ip z agh, nie wiem czy z mysql nie jest podobnie. ;C
@konik32 jeśli działa to nie mam uwag. MySQL też mi pasuje, a jak mamy Hibernate to jest to w zasadzie nieistotne.
@bartQH odnośnie tego AGHowego MySQL/Postgresa to:
Dobra to na razie postawie HSQLDB zobaczymy jak to będzie działać potem się najwyżej zmieni na cos innego
Dodałem interfejs i wstępny model dla PageProcessor'a, skonfigurowałem naszego głównego beana. Zmieniłem wersje javy na 1.7, bo pewnie tak jak większość nie mam javy 1.8.
@konik32 Możesz powiedzieć mi/nam jak odpalić tego jettiego? Czy jest to jeszcze nie możliwe?
Odpalasz normalnie jako java application klasę pl.edu.agh.offerseeker.Application
i działa. Baza danych tworzy się w folderze domowym użytkownika.
Udostępnianie użytkownikowi tylko tych ogłoszeń, które chce widzę w taki sposób: Pobieramy i zapisujemy wszystkie ogłoszenia, które znajdziemy. Indeksujemy ich treść w bazie przy użyciu hibernate search. Użytkownik za każdym razem podaje do requescie do serwera keywordsy, po których wyszukujemy ogłoszenia w bazie i zwracamy mu je. W tym rozwiązaniu odpada etap III o ile dobrze zrozumiałem o co w nim chodzi. Jeśli zrobimy to w taki sposób rola pageprocessora sprowadza się tylko do stwierdzenia czy coś jest ogłoszeniem czy nie, oraz zaktualizowaniem bazy ogłoszeń po ocenie użytkownika. Reszta to rola serwera.
@konik32 popieram.
Szablon serwisu został umieszczony na GitHubie - można go sobie już spokojnie sklonować.
Jeśli używacie jakiegoś innego IDE niż Intellij to proszę, dodajcie jego pliki do .gitignore i uważajcie, żeby takie rzeczy nie zostały scommitowane, bo to często potrafi pokomplikować pracę innych. W tym momencie wykluczyłem wszystkie pliki Intellij i wydaje mi się, że Eclipse'a też są wykluczone, ale na wszelki wypadek - patrzcie na początku, co commitujecie.
Myślę, że do naszych celów fajnie by było wykorzystać JBossa - moim zdaniem najlepszy z dostępnych serwerów i mam jakieś z nim doświadczenie. Gdy naprawię płytę główną, to powinienem dostać się nawet do konfiguracji jego, która uwzględniała już wiele fajnych feature'ów - logowanie, autoryzacja z bazą.
Co do bazy to pewnie jak większość jestem za Postgressem - wszyscy to znamy i jest na prawdę spoko.
Nie wiem czy w tym projekcie to będzie konieczne/wygodne, ale w razie czego: ORM - Hibernate.
Uważam też, że idealnie by było jakby udało nam się postawić JBossa gdzieś z dostępem dla wszystkich. Gdzie moglibyśmy skonfigurować go już docelowo, postawić bazę, i gdzie przetestowane moduły byłyby deployowane. Mógłby ktoś to załatwić? Służyłby on jeszcze za wzór poprawnej konfiguracji, dla naszych lokalnych środowisk. Lub byłby jedynym miejscem, w którym byśmy badali działanie całego serwisu - lokalnie byśmy tylko puszczali testy jednostkowe i nic sobie nie deployowali. Uważam, że oszczędziłoby to wiele czasu - gdy każdy musiałby to robić, mogłoby się okazać, że straciłby dzień na to(lub więcej). A tak - jedna osoba się ty zajmie.