W tym rozdziale opisane są rozszerzenia, które powstały w celu przetestowania mechanizmów rozszerzeń w aplikacji redaktora i administratora oraz mogą służyć jako przykłady implementacji wtyczek dla programistów zainteresowanych tym tematem.
Budowanie rozszerzeń
Aby było możliwe zbudowanie przykładowych rozszerzeń z ich plików źródłowych, w systemie musi być zainstalowane narzędzie Maven 1.1.
Po rozpakowaniu archiwum z kodem źródłowym, w katalogu dcore-app-extension-tests
znajdują się katalogi projektów dla poszczególnych rozszerzeń, o nazwach zaczynających się od dcore-app-extension
. Znajduje się tam też katalog maven-repo
, który zawiera dodatkowe pliki jar
potrzebne przy budowaniu.
Aby zbudować wybrane rozszerzenie, należy w konsoli wejść do powiązanego z nim katalogu i wywołać polecenie
maven clean install
Można również zbudować wszystkie rozszerzenia na raz. W tym celu w katalogu dcore-app-extension-tests
należy wywołać polecenie
maven multiproject:clean multiproject:install
Dla programistów pracujących w środowisku Eclipse, przydatne będzie polecenie, które tworzy w katalogu wtyczki projekt Eclipse gotowy do zaimportowania:
maven eclipse
Po zbudowaniu danego rozszerzenia w katalogu target
zostaje umieszczony plik jar
, który można zainstalować w dLibrze.
Instalacja rozszerzeń
Przykładowe rozszerzenia nie są domyślnie zainstalowane w Aplikacji Redaktora i Administratora dLibry. Aby zainstalować wtyczkę w systemie, należy skopiować plik jar
wtyczki do katalogu /WEB-INF/jnlp-jars aplikacji czytelnika i uruchomić w panelu administracyjnym proces uaktualnienia aplikacji redaktora/administratora. Więcej na temat panelu administracyjnego aplikacji czytelnika można dowiedzieć się tutaj.
Po ponownym uruchomieniu Aplikacji Redaktora wtyczki powinny być widoczne (można to sprawdzić w menu Pomoc -> O programie). Proces uaktualnienia w panelu administracyjnym musi zostać uruchomiony po każdej zmianie plików jar
.
Konfiguracja rozszerzeń
Aby rozszerzenie było poprawnie widoczne w Aplikacji Redaktora i Administratora, odpowiednia konfiguracja musi znajdować się w pliku src/etc/plugin.xml
. Budowa tego pliku wynika z wymagań biblioteki Java Plugin Framework. Poniżej znajduje się przykładowa zawartość tego pliku:
W znaczniku <runtime>
znajduje się makro Velocity, które automatycznie dołączy do dystrybucji wtyczki niezbędne pliki jar
(wszystkie te, które są wymienione jako zależności w pliku project.xml
i nie mają dopisanej właściwości <dist.skip>true</dist.skip>
).
Znacznik <extension>
definiuje konkretne rozszerzenie. Atrybut pluginId
musi mieć wartość "pl.psnc.dlibra.app.extension"
. Atrybut point-id
musi zawierać identyfikator punktu rozszerzeń, do którego ma być włączona wtyczka (zgodny z nazwami wymienionymi w dokumentacji), natomiast atrybut id
musi być unikalnym identyfikatorem rozszerzenia. Wewnątrz znacznika <extension>
można umieścić opcjonalny znacznik doc
z tekstem, który ma być wyświetlony w oknie informacyjnym Aplikacji (Menu Pomoc -> O programie...), oraz znaczniki <parameter>
definiujące parametry wymienione w opisie danego punktu rozszerzeń.
Uwaga: w przykładowych rozszerzeniach każda wtyczka korzysta z tylko jednego punktu rozszerzeń, ale nic nie stoi na przeszkodzie, aby jedna wtyczka była włączona do wielu punktów. W tym celu należy umieścić w pliku konfiguracyjnym więcej znaczników <extension>
.
Lista przykładowych rozszerzeń
Rozszerzenia zostały wymienione i opisane w podrozdziałach: