🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #153710

Plugin xjc do automatycznego dodawania adnotacji JSR-303 (problem z jaxw-maven-plugin)

#153710
From: mario
Date: Sat, 15 Dec 2012 10:05
24 lines
3125 bytes
Witam

Chciałbym skorzystać z pluginu http://code.google.com/p/krasa-jaxb-tools/ rozszerzającego możliwości standardowego xjc o możliwość wstawiania do wygenerowanych klas adnotacji JSR 303. Sam plugin fajnie działa, jest dołączony do niego test, który wykonuje mi się poprawnie.

Problemy zaczynają się przy próbie spięcia go z mavenowym jaxws-maven-plugin. 
Po dodaniu dependency i uruchomieniu generaty dostaję wyjątek:

java.util.ServiceConfigurationError: com.sun.tools.xjc.Plugin: Provider mw.MyPlugin could not be instantiated: java.lang.ClassCastException

okazuje się że problem jest szerszy i dotyczy współpracy narzędzi JAXB i JDK 1.6. Został on opisany w wątku http://www.java.net/node/676027 . Najistotniejsza część dyskusji mówi o możliwym rozwiązaniu:

The ParallelWorldClassLoader relies on a MaskingClassLoader, which filters, among others, package "com.sun.tools.xjc".
If your plugin is in that package, it gets loaded in the right classloader, otherwise the plugin and its superclass are loaded with a different classloader, resulting in two versions of the com.sun.tools.xjc.Plugin class (i.e. two Class instances for the same class). 

Niestety u mnie to rozwiązanie nie działa. 

Po umieszczeniu pluginu w opisanej strukturze i uruchomieniu testu pluginu xjc (test opiera się o plugin maven-jaxb2-plugin-testing)znowu wszystko wykonuje się poprawnie, pliki xsd zostają przetworzone, adnotacje się dodają i wszystko jest pozornie ok. 
Tak jak poprzednio problem pojawia się podczas próby wywołania xjc z jaxws-maven-plugin, tylko tym razem zachowanie jest dla mnie całkowicie niezrozumiałe, bo nie wylatuje już wyjątek o niemożliwości stworzenia instancji pluginu xjc, tylko jest on "niezauważony". Następuje próba generowania przy użyciu standardowego xjc, który nie rozpoznaje wysłanej do niego opcji.

Czy ktoś z Was spotkał się z podobnym zachowaniem? 
Będę wdzięczny za wszystkie wskazówki

Pozdrawiam
mw
Technical Details
Message-ID: <ad674e18-d35f-4b6e-9f09-ff790ce161c3@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!fc2no855120qab.0!news-out.google.com!k2ni7qap.0!nntp.google.com!fc2no887883qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
Received: by 10.224.173.202 with SMTP id q10mr4354955qaz.3.1355565960012;        Sat, 15 Dec 2012 02:06:00 -0800 (PST)
Received: by 10.49.15.38 with SMTP id u6mr1468041qec.8.1355565959997; Sat, 15 Dec 2012 02:05:59 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!fc2no855120qab.0!news-out.google.com!k2ni7qap.0!nntp.google.com!fc2no887883qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.java
Date: Sat, 15 Dec 2012 02:05:59 -0800 (PST)
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=85.222.96.217; posting-account=hAJvdgoAAAADCX7j82AMUbu2EjQszYE1
NNTP-Posting-Host: 85.222.96.217
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ad674e18-d35f-4b6e-9f09-ff790ce161c3@googlegroups.com>
Subject: Plugin xjc do automatycznego dodawania adnotacji JSR-303 (problem z jaxw-maven-plugin)
From: mario <mw.wojcik@gmail.com>
Injection-Date: Sat, 15 Dec 2012 10:06:00 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit