esnet / netshell

Kernel and companion software that support ENOS applications (NOT ACTIVELY MAINTAINED)
Other
6 stars 1 forks source link

JGraphXAdapter fail #4

Open bmah888 opened 9 years ago

bmah888 commented 9 years ago
>>> from net.es.enos.esnet import GraphViewer
Jython 2.7b4 (default:3672e624962a, Feb 13 2015, 04:59:14) 
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_75
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
java.lang.NoClassDefFoundError: org/jgrapht/ext/JGraphXAdapter
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at org.python.core.Py.loadAndInitClass(Py.java:982)
    at org.python.core.Py.findClassInternal(Py.java:895)
    at org.python.core.Py.findClassEx(Py.java:968)
    at org.python.core.packagecache.SysPackageManager.findClass(SysPackageManager.java:133)
    at org.python.core.packagecache.PackageManager.findClass(PackageManager.java:33)
    at org.python.core.packagecache.SysPackageManager.findClass(SysPackageManager.java:122)
    at org.python.core.PyJavaPackage.__findattr_ex__(PyJavaPackage.java:134)
    at org.python.core.PyObject.__findattr__(PyObject.java:946)
    at org.python.core.imp.importFromAs(imp.java:1137)
    at org.python.core.imp.importFrom(imp.java:1109)
    at org.python.pycode._pyx6.f$0(<stdin>:1)
    at org.python.pycode._pyx6.call_function(<stdin>)
    at org.python.core.PyTableCode.call(PyTableCode.java:167)
    at org.python.core.PyCode.call(PyCode.java:18)
    at org.python.core.Py.runCode(Py.java:1374)
    at org.python.core.Py.exec(Py.java:1418)
    at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:279)
    at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:131)
    at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:116)
    at org.python.util.InteractiveInterpreter.runsource(InteractiveInterpreter.java:62)
    at org.python.util.InteractiveConsole.push(InteractiveConsole.java:165)
    at org.python.util.InteractiveConsole.interact(InteractiveConsole.java:146)
    at org.python.util.InteractiveConsole.interact(InteractiveConsole.java:93)
    at net.es.netshell.python.PythonShell.startPython(PythonShell.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at net.es.netshell.shell.Shell.startShell(Shell.java:259)
    at net.es.netshell.sshd.SshdShell.run(SshdShell.java:127)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.jgrapht.ext.JGraphXAdapter
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:455)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 33 more

java.lang.NoClassDefFoundError: java.lang.NoClassDefFoundError: org/jgrapht/ext/JGraphXAdapter

The problem here is that the various JGraphX bundles need some wiring that they don't have. It's complicated because both bundles include Java classes in the org.jgrapht.ext package.

At one point I thought of trying to register some explicit dependencies but this didn't work because the mvn deployer (unlike the wrap deployer) won't allow us to modify / synthesize the metadata for abundle at deploy time.