Cytoscape App and external Dependencies

15 views
Skip to first unread message

Mathias Kemeter

unread,
Sep 9, 2021, 4:10:01 AM9/9/21
to cytoscape-app-dev
Hi everyone,

I have developed a database connectivity app for SAP HANA, which requires the JDBC client for SAP HANA to be on the class path. With some trial&error I found, that the plugin works fine when I copy the ngdbc.jar (the JDBC client) to "/Applications/Cytoscape_v3.8.2/framework/lib/openjfx/mac".

Now, I would like to submit the app to the app store to make it more convenient (and visible) for users. Is there any best practice how to deal with the external dependency?

Many thanks,
Mathias

Scooter Morris

unread,
Sep 9, 2021, 11:25:42 AM9/9/21
to cytoscape-app-dev
Hi Mathias,
   Sure -- what you need to do is to add (embed) the dependency to your jar, and the trick to doing that is all in your pom.xml.  There are a number of apps that embed dependencies -- one of mine, clusterMaker2, has quite a number of them, so you can take a look at the pom here: https://github.com/RBVI/clusterMaker2/blob/master/pom.xml  In particular, look at the <configuration><instructions> for the org.apache.felix plugin and then the <dependency> for org.ojalgo.  The net result of that will be a jar for your app that has all of your dependent jars included.

-- scooter

Mathias Kemeter

unread,
Sep 13, 2021, 10:44:14 AM9/13/21
to cytoscap...@googlegroups.com
Thank you Scooter! Your suggestion almost worked. I am still facing issues, because my packaged dependency is a multi-release jar and for some reason it is fetching the incorrect release for my Java version. But I assume that this issue is not in any way related to Cytoscape specifics.

Regards,
Mathias

--
You received this message because you are subscribed to a topic in the Google Groups "cytoscape-app-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cytoscape-app-dev/Asv4ifiYY84/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cytoscape-app-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cytoscape-app-dev/475d11b1-6010-46a3-9a40-3b6d22d83413n%40googlegroups.com.

Mathias Kemeter

unread,
Dec 8, 2021, 9:17:31 AM12/8/21
to cytoscape-app-dev
Hi everyone,

this topic got staled a bit on my side. Now, I've found some time to dig deeper and found the following bug report, which is essentially describing the issue with my external dependency (..which happens to be the same SAP HANA driver mentioned in the bug report):
https://issues.apache.org/jira/browse/FELIX-6396

The bottom line is that multi-release jars are only supported with Karaf 4.3.1 upwards. 

Are there any plans for Cytoscape to move to OSGI 7 / Karaf 4.3.1?

Many thanks,
Mathias

Mike Kucera

unread,
Dec 8, 2021, 10:11:56 AM12/8/21
to cytoscape-app-dev
Hi Mathias,

I am currently migrating the develop branch of Cytoscape 3.10 to Java 17, OSGi 7 and Karaf 4.3.3. 

This will be the platform used by Cytoscape 3.10. However 3.9 was just released recently, so it will be a while until 3.10 is released.

When I have the Cytoscape 3.10 build working can I ask you to test it with your App, to make sure the multi-release jars are working?

Thanks.

Mike.



You received this message because you are subscribed to the Google Groups "cytoscape-app-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-app-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cytoscape-app-dev/f77a6c8d-73e6-4914-bb4c-36ea0053dedan%40googlegroups.com.

Mathias Kemeter

unread,
Dec 8, 2021, 10:45:56 AM12/8/21
to cytoscape-app-dev
Many thanks! I am looking forward to 3.10 then :)

Sure, you can reach out. I am happy to test it with my app.

Regards,
Mathias

Reply all
Reply to author
Forward
0 new messages