Open forman opened 9 years ago
do you know what is the reason for shipping classes from jdk as part of a binary? AFAIK you might get weird problems at runtime as well, because A. the base netbeans classloader will contain the class through jdk bootstrap. B. one of the modules will contain the same class but load it though a different classloader (the module one)
I guess Jython embeds javax.xml for supporting JRE versions that don't come with javax packages. Maybe I should wrap the Jython library into an NBM so that the javax stuff is truly private for Jython?
Hello @mkleint I have a problem while writing module which wraps dependencies.
I have 2 modules which both use Library A. But when I add Library A as dependency to each of the modules on the runtime it is showing " LinkageError: loader constraint violation: loader (instance of org/netbeans/StandardModule$OneModuleClassLoader) previously initiated loading for a different type with name "com/org/lib...."
And when I make 1 module which exports Library A as a public package. (Even the button for making public is not available, I just added to the pom.xml directly and it appeared in the Public packages tab) And still not compiling.
And then I added "OpenIDE-Module-Public-Packages" to the module manifest. But also not working.
Can you provide any working example pom.xml file?
@Enkuushka The general approach is to have Module B wrap library A and then have modules C,D,E depend of module B rather than library A. The mentioned module needs to expose public packages of the library though. http://www.mojohaus.org/nbm-maven-plugin/manifest-mojo.html#publicPackages Just verify that the module when build actually has the relevant entry in the jar's manifest. Also check that your nbm file contains the library A binary.
As far as examples go, I have one for public packages - https://bitbucket.org/mkleint/nb-atlassian-dev/src/d8595132353c96bb2b0031d95eb6e0ab625a6439/atlassian-common/pom.xml?at=default&fileviewer=file-view-default but it doesn't do public packages from a library, but that should be irrelevant. Alternatively try searching for sources of other maven netbeans platform apps.
My NB platform application has two modules A and B:
In the attached(?) show case module A is "private_classes_bug-sample" and module B is "private_classes_bug-sample2". Module A includes jython-standalone.jar which embeds javax.xml.*. Module B makes use of the class javax.xml.transform.TransformerException.
See also https://netbeans.org/projects/platform/lists/dev/archive/2014-11/message/24