/ / Czy plik jar z adnotacjami może zostać wykluczony ze ścieżki klas? - java, adnotacje, moduł ładujący klasy

Czy plik jar z adnotacjami może być wyłączony ze ścieżki klas? - java, adnotacje, program ładujący klasy

Mamy dużą aplikację Java. Jeden z moich współpracowników korzysta teraz z tej aplikacji jako biblioteki dla interfejsu API Rest-api na jbossie. W związku z tym musieliśmy dodać adnotację @JsonIgnore do niektórych metod w niektórych klasach. Muszę mieć import w klasach, jak poniżej, aby to działało:

import org.codehaus.jackson.annotate.JsonIgnore;

Ta adnotacja jest zawarta w pliku jarjackson-core-asl-1.9.13.jar Teraz pytanie brzmi: czy muszę dołączyć plik jar dla wszystkich naszych klientów, którzy używają programu jako samodzielnej aplikacji? Czy można to pominąć, ponieważ są to tylko anntacje? Łatwa odpowiedź na to pytanie polega na tym, że próbowałem uruchomić mój program jako samodzielny program bez ścieżki jackson-core-asl-1.9.13.jar w ścieżce klas i wydaje się, że działa dobrze. Ale tak naprawdę chcę wiedzieć, czy zawsze to zrobi, niezależnie od uruchomionej maszyny wirtualnej. Jeśli aktualizacja Java spowoduje awarię aplikacji, albo z powodu adnotacji w metodach, albo brakującego importu, wynik byłby katastrofalny, ponieważ mamy wielu klientów korzystających z tej aplikacji. Jak więc instrukcje importowania i adnotacje są przetwarzane przez moduł ładujący klasy?

Odpowiedzi:

0 dla odpowiedzi № 1

Minęły 3 lata, ale potrzebuję tej odpowiedzi.

Powinien działać, znajdując, zgodnie z JSR-175 i bazą błędów Oracle. Po wielu poszukiwaniach natrafiłem na to stwierdzenie w raporcie błędu dla starego JRE:

Według specyfikacji JSR-175, nieznane adnotacje muszą być ignorowane przez getAnnotations.

Tutaj jest link: http://bugs.java.com/view_bug.do?bug_id=6322301

Wygląda na to, że możesz skompilować klasę z adnotacjami, a jeśli adnotacje nie będą obecne w środowisku wykonawczym, nie spowoduje to problemów.