sobota, września 22, 2007

OpenOffice.org -> GoogleDocs v0.3

Wyprodukowałem właśnie kolejną wersję mojego rozszerzenia do OpenOffice.org.
Wersja 0.3 pozwala teraz także na uploadowanie prezentacji (w formacie PPT) do Google Docs.

Znalazłem także obejście dla problemu niedziałania rozszerzenia w OpenOffice.org 2.3. Opis obejścia znaleźć można na jednej ze stron wiki mojego projektu oraz w prezentacji na Google Docs [wrzucona do Google Docs przy pomocy mojego rozszerzenia ;-)].

Pobierz wersję 0.3

Obejście nie jest idealne, ale możliwe że jedyne dostępne bez zbytniego hackowania. Po prostu ktoś z autorów OpenOffice.org przedobrzył ;-) Do wersji 2.2 włącznie wszystkie JARy dostarczane przez rozszerzenia znajdowały się na classpath'cie OpenOffice.org. Powodować to mogło błędy polegające na tym, że 2 lub więcej rozszerzeń mogły przynieść ze sobą biblioteki w różnych wersjach i mogły przestać działać. W celu zlikwidowania tego problemu zdecydowano się odseparować wszystkie rozszerzenia. I tutaj trochę przedobrzono ;-) W chwili obecnej dla każdego rozszerzenia tworzona jest nowa instancja ClassLoader'a UnoClassLoader, która to instancja ładuje klasy OOo oraz dostarczone przez rozszerzenie. Klasy "systemowe" czyli dostarczone wraz z JVM ładowane są przez systemowego ClassLoader'a. Niestety przez to klasy załadowane przez systemowego ClassLoader'a nie mają bladego pojęcia o istnieniu klas załadowanych przez instancję UnoClassLoader'a i tu zaczynają się problemy. Jeżeli taka załadowana przez systemowy ClassLoader klasa próbuje użyć klasy załadowanej tylko przez UnoClassLoader'a to nie potrafi jej znaleźć i zgłasza błąd.
Pochwalę się, że jako pierwszy opisałem problem, jego źródło i sposób obejścia na liście dyskusyjnej związanej z rozszerzeniami do OpenOffice.org :-)


Podobne postybeta
GAE zmienia ceny i darmową quota'ę... a ja zmieniam kod ;-)
Chce komputerów, które będą "seamless"
Spisek ClassLoader'ów ;-)
Zegar w Raspberry Pi nie jest zawsze godzien zaufania
User Interface... jak ja tego nie lubię...