cpesch/RouteConverter — pull request #34 by ftes (2014-06-15 22:37:40+00:00)
Title: remove NamespacePrefixMapperImpl in favor of specifying NS in package-in...

...fo.java

- the interface NamespacePrefixMapper lies in an internal package
- depending on the compiler settings, this leads to a compilation error (if access to rt.jar-internal packages is disallowed)
- see https://issues.apache.org/jira/browse/SIS-74 for a related discussion on exchanging the NamespacePrefixMapper-based approach

Hi Christian,
ich integriere RouteConverter derzeit als OSGi-Bundle bei uns. Dabei ergibt sich folgendes Problem:
Fuer das XML-marshaling via JaxB werden Namespace-Prefixes gesetzt durch eine Implementierung des NamespacePrefixMapper-Interface. Dieses liegt in einem .internal package, was unseren Build scheitern laesst:

[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:0.18.1:compile (default-compile) on project slash.navigation.routeconverter: Compilation failure: Compilation failure:
[ERROR] /home/fredrik/dev/sailing/java/slash.navigation.routeconverter/jaxb6/src/main/java/slash/navigation/jaxb/NamespacePrefixMapperImpl.java:[23,0]
[ERROR] import com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper;
[ERROR] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] Access restriction: The type NamespacePrefixMapper is not accessible due to restriction on classpath entry /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar
[ERROR] /home/fredrik/dev/sailing/java/slash.navigation.routeconverter/jaxb6/src/main/java/slash/navigation/jaxb/NamespacePrefixMapperImpl.java:[27,0]
[ERROR] class NamespacePrefixMapperImpl extends NamespacePrefixMapper {
[ERROR] ^^^^^^^^^^^^^^^^^^^^^
[ERROR] Access restriction: The type NamespacePrefixMapper is not accessible due to restriction on classpath entry /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar

Moegliche Abhilfen werden hier besprochen: https://issues.apache.org/jira/browse/SIS-74.
Ich habe nun die NamespacePrefixMapper-Implementierung gegen package-info.java basierte Definitionen der Namespaces ausgetauscht. Nachteil ist nun, dass die package-infos bisher vermutlich in ihrer JaxB-autogenerierten Form waren, und nun Anpassungen enthalten. Dafuer auch mit strikteren Compiler-Einstellungen zu bauen.

Die Tests laufen alle durch, aber bzgl. Abdeckung hast du wohl die beste Uebersicht.

Die Aenderungen koennen wir auch problemlos nur bei uns behalten - der Pull-Request nur als Angebot, falls du die NamespacePrefixMapper-Sache gerne aus dem Code raus haettest.

Beste Gruesse,
Fredrik