How to bundle netscape.javascript in OSGI?

149 views
Skip to first unread message

Matthias König

unread,
Jun 22, 2016, 4:53:45 PM6/22/16
to cytoscape-helpdesk
Hi all,
I am working on a javafx GUI for an Cytoscape app. I got everything running with javafx, my only problem is now that I am unable to get
the JRE package netscape.javascript in the OSGI bundle.
netscape.javascript is one of the javafx packages (https://docs.oracle.com/javase/8/javafx/api/overview-summary.html) and I had no problem to get access to all the javafx packages listed besides it via declaring them as extra packages via

<org.osgi.framework.system.packages.extra>javafx.animation,javafx.application,javafx.collections,javafx.embed.swing,javafx.geometry,javafx.scene,javafx.scene.layout,javafx.scene.transform,javax.swing,javax.swing.border,javafx.fxml,netscape.javascript,org.osgi.framework</org.osgi.framework.system.packages.extra>

This seems to be the way to make JRE/java packages which are note java.* available in OSGI, but strangly it does not work for netscape.javascript.
Access works without problem if the code is not packed into an OSGI bundle.

The package is crucial for the Java <-> Javascript in Webview communication.

Here is a minimal Cytoscape app demonstrating the issue:
https://github.com/matthiaskoenig/cyadd2nodes.git
If you comment the line
JSObject win = (JSObject) webEngine.executeScript("window");
you can see the whole javafx thing works without problem. The only issue is getting the classes somehow in the bundle.

Any help is highly appreciated.

I tried everything I could think of, but now completely lost. Probably this is even a java8 or OSGI Felix issue.
Honestly, it can't be so difficult to get a dependency in OSGI, or can it ????

Matthias

Barry Demchak

unread,
Jun 22, 2016, 5:26:25 PM6/22/16
to cytoscape...@googlegroups.com

Pretty interesting … would you mind posting a few screen shots on this thread?? I think we’d like to see what you’ve done.

 

Thanks.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.
To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

Matthias König

unread,
Jun 22, 2016, 5:44:41 PM6/22/16
to cytoscape-helpdesk
My best guess of the problem right now is that Cytoscape is packing an extremely old Felix Framework, i.e. The Felix Framework 4.2.1 (March 13, 2013).
I see this in the logs as
Number of installed bundles 116
Id    Symbolic name    Version    State
0    org.apache.felix.framework    4.2.1    ACTIVE

As a consequence, the felix framework predates Java 8 and does probably not know what can be exported from the JRE and is unable to export certain packages from the the JRE.

Similar to things reported here for other packages.
http://stackoverflow.com/questions/34007791/osgi-missing-package-javax-security-auth-on-java-8

So how can I run Cytoscape with a current OSGI framework which knows JRE 8? I.e. something like 5.4.0?
http://felix.apache.org/documentation/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.html

In summary, OSGI sucks so much. I can't even access everything which is in the JRE in Cytoscape.

@Barry
I will upload the updated JavaFX GUI the next few days on the app store and take some screenshots when finding time.
I am 99% there, only the JavaScript <-> Java communication with WebView is not working in OSGI (but without OSGI no problem, i.e. when running the GUI part without Cytoscape dependencies via a java main). But this is a crucial part! 

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

Barry Demchak

unread,
Jun 22, 2016, 5:48:10 PM6/22/16
to cytoscape...@googlegroups.com

Thanks, Matthias –

 

I’m pondering the idea of what’s possible to do with OSGi and what should be done … they may be different, and the crucial difference is the developer’s productivity and overall experience. The integration of Java/Javascript is a useful data point in the JavaFX GUI discussion.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--

You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.

Matthias König

unread,
Jun 22, 2016, 5:50:37 PM6/22/16
to cytoscape-helpdesk
You want access to the functions in Java 8 in Cytoscape via OSGI.
This is useful and this should be done.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

Matthias König

unread,
Jun 22, 2016, 6:07:51 PM6/22/16
to cytoscape-helpdesk
I want to build a cytoscape version with current felix from source code. I assume I can define the apache felix framework version in the pom.xml for the build.

When trying to follow the instructions on
https://github.com/cytoscape/cytoscape
I am unable to clone the code and get

./cy.sh init
Target directory =
Cytoscape project will be cloned to: /home/mkoenig/git/cytoscape
Cloning into 'cytoscape'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Could not clone remote repository: /home/mkoenig/git/cytoscape


What is the easiest way to get the source code for the 3.4 release and build it?

Mike Kucera

unread,
Jun 22, 2016, 10:09:21 PM6/22/16
to cytoscape...@googlegroups.com
Hi Matthias,

Here is something you can try... Find the custom.properties file under /Applications/Cytoscape_v3.4.0/framework/etc, and add all the packages you need, including netscape.javascript, to the org.osgi.framework.system.packages.extra property. I just tried it with my installation of Cytoscape 3.4 and it worked.

I didn't how to include the JavaFX extension packages from the app's POM file. Thanks for linking to your sample project, taking a look at the pom file I now know how to do that. Do you know what that actually does? I'm surprised it works at all. My understanding is that OSGi will not automatically export packages that are not part of the official Java standard. Apparently some JVMs, such as IBM's, don't ship with full JavaFX support, so OSGi can't guarantee that those packages will even be available, so it doesn't export them by default. 

Regards,

Mike.


To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.

Matthias König

unread,
Jun 23, 2016, 6:15:31 AM6/23/16
to cytoscape-helpdesk
Hi Mike,

the solution you propose runs in the same problems like exporting the extra packages via the POM. It is just another way to export the packages, but compared to the POM solution not portable.

What it does is providing access to the bootstrapping classpath from OSGi. For loading fundamental types, i.e. things in JDK, the OSGi platform uses parent delegation instead of the networking model; that is, it uses the class loader that started the OSGi framework to load classes instead of an OSGi class space.
Read this for a more in depth overview
http://spring.io/blog/2009/01/19/exposing-the-boot-classpath-in-osgi/

The problem is now that the parent class loader is provided by felix in Cytoscape, which is so old that it does not know which packages are in JDK8 it cannot resolve any package which is in JDK8 but not in JDK7 (or under different name). So any package in JDK8 which is not in JDK7 under the identical name is currently unusable in Cytoscape, netscape.javascript being one of the examples.

This is a fundamental Cytoscape problem: On the one-hand requiring JDK8, but on the other hand not supporting the loading via OSGI due to old felix. I don't even have the option to downgrade to JDK7.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

Matthias König

unread,
Jun 23, 2016, 6:59:42 AM6/23/16
to cytoscape-helpdesk
This is clearly a cytoscape bug. I filed a report at
https://code.cytoscape.org/redmine/issues/3618
The solution is a very simple update of the packed felix framework to 5.4.

It would be amazing if this could be solved in the develop version and part of the 3.5 nightly builds.
Than I can run my app with 3.5-develop.
M

Barry Demchak

unread,
Jun 23, 2016, 10:28:30 AM6/23/16
to cytoscape...@googlegroups.com

Hi, Matthias –

 

The version of Felix we’re using is provided by Karaf. As infrastructure, we would hope that Karaf would be both using the latest libraries and that it would also be released in plenty of time for clients (like Cytoscape) to get comfortable before the client release. This is far from what has been happening in the last few rounds … we’ve been lucky to get a Karaf that enables Cytoscape to be released at all.

 

I note that Karaf has bifurcated into two versions being maintained concurrently. This doesn’t help us, as we have found that some features work well in one version, and other features work well in the other.

 

Consequently, we’ve had to be very conservative with how we adopt Karaf. We’re on Karaf 3.03, which is oldish. The latest in the v3 line is 3.0.7. The latest stable version in the v4 line is 4.0.5. We’re not sure which Felix it’s using, but we’re quite sure that adopting their version 4 carries time and risk implications (which so far have been unjustified relative to other Cytoscape features we know there is a demand for). Another recurring issue is that Karaf/Felix seems to want to service server applications, and so we sometimes have trouble getting focus on issues pertaining to interactive client situations.

 

It may be possible to move to a newer Karaf version (with newer Felix), but it’s not something we do lightly or on a whim.

 

It’s also possible to entertain a different OSGi framework, but not without major risk and possible breakage.

 

I’m not sure I’d characterize a Felix upgrade as simple, or Cytoscape’s inability to deal with certain Java 8 features as a bug … certainly, though, we can imagine a better situation, which is what you’re asking for.

 

Thanks for raising this and going into such depth … your observations and reports will take a little while to digest … we’ll take a closer look …

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.

Matthias König

unread,
Jun 23, 2016, 11:40:29 AM6/23/16
to cytoscape-helpdesk
Hi Barry,
I understand your point. Updates are always scary and have risks.

The initial Karaf 4.0.0 release came already with Felix-framework 5.0.1
see release notes here https://karaf.apache.org/news.html
Karaf 4.0.2 comes with Upgrade to Felix Framework/Main 5.2.0
Karaf 4.0.3 comes with Upgrade to Felix Framework 5.4.0
i.e. from 4.0.3 upwards Karaf 4 comes with latest felix frameworks.

The Cytoscape developers should consider an upgrade to the 4 series, especially because the 3.5 development has just started. So there is plenty time to test it.
I know this is not an easy task, but I am sure there will come up more and more issues due to the old library bindings in Karaf (and bugs which have long been fixed in the 4.0.x but are still in 3.0.x).
The 3.0.x series is only running in maintenance, whereas the 4.0.x series is stable and actively developed (see http://karaf.apache.org)/download.html#container-307).

Probably, one does not have to call it a bug.
But core things I want to do in Java and are possible in JDK8 are currently not possible in Cytoscape because the used libraries are very outdated.

Sorry about any harsh tone, is just very frustrating having things running within a normal Java context within 10 minutes and than once and once again spending days trying to get it run in the OSGI context. I am not a software architect, I just want to write Java code for my app.
M

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

Barry Demchak

unread,
Jun 23, 2016, 11:45:22 AM6/23/16
to cytoscape...@googlegroups.com

Thanks, Matthias …

 

These points are all well taken, and I have just put the issue on our weekly agenda, which we’ll cover this morning.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.

Matthias König

unread,
Jun 29, 2016, 6:23:51 AM6/29/16
to cytoscape-helpdesk
Hi all,

here some screencast of the JavaFX GUI with explanations and comparison to the JTextPanel approach
https://www.youtube.com/watch?v=GmAu6RBCs2Q

The app is available from app store:
http://apps.cytoscape.org/apps/cy3sabiork

There are still some minor issues, the only big one is the missing javascript support due to the old felix OSGI.
I give a short demonstration of the functionality without OSGI in the video.
Unfortunately there seems to be no workaround until Cytoscape ships with a current felix OSGI implementation.

Personally I love the JavaFX HTML/JS/CSS hybrid approach. I will definitely do no more Swing GUI.

Code for anybody interested is available at
https://github.com/matthiaskoenig/cy3sabiork/

The app will be featured in the upcoming Cytosape app issue
https://docs.google.com/document/d/1_3ZSaE1fcdRdgrXuwVFQ1lnQ8-FmKFe0drURC4w6gtU/edit?usp=sharing

So please feel free to comment on the manuscript/app/approach

The best
Matthias

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

Tim Hull

unread,
Jul 18, 2016, 6:40:23 PM7/18/16
to cytoscape...@googlegroups.com, koni...@googlemail.com
There is in fact a workaround if you need a Java system package that is not exported by the default OSGi configuration. In your pom.xml file's instructions section, add the following line:

<DynamicImport-Package>netscape.javascript</DynamicImport-Package>


That will work to use netscape.javascript on the current OSGi release without any Karaf configuration changes.


You could also do this with an extension bundle, though I'm not sure how that can be embedded in an app JAR.


Tim


To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpd...@googlegroups.com.

Tim Hull

unread,
Jul 19, 2016, 5:45:28 PM7/19/16
to cytoscape...@googlegroups.com
I was wrong about this - while this allows the app to start without complaining about unresolved packages, netscape.javascript still isn't resolvable in this scenario. What does work is adding netscape.javascript to the end of the org.osgi.framework.system.packages.extra line in framework/etc/custom.properties (in the Cytoscape install directory). Of course, that requires editing preferences files in the Cytoscape installation - while we could do it for future releases, doing it for previous releases would require the app to write to the user's local Cytoscape installation directory (not always possible). What should work is extension bundles, but I have yet to experiment with those...

Tim

Mike Kucera

unread,
Jul 21, 2016, 10:20:12 AM7/21/16
to cytoscape...@googlegroups.com
In Orlando we decided to do exactly that (add the packages to custom.properties). That task was assigned to me. Do you know if there are any other packages that need to be added in addition to netscape.javascript?

Mike.

Tim Hull

unread,
Jul 21, 2016, 1:54:04 PM7/21/16
to cytoscape...@googlegroups.com, Mike Kucera
netscape.javascript seems to fulfill Matthias's use case, though I'm not sure what other use cases may need. Also, it seems we may be able to work around this even in 3.4 through the use of extension bundles - a bundle that extends the system bundle to add the needed exports. Is this something you've looked into (or plan to look into), or perhaps something I should investigate? 

Tim

Mike Kucera

unread,
Jul 21, 2016, 1:58:31 PM7/21/16
to Tim Hull, cytoscape...@googlegroups.com
No I have not looked into that (although I have used bundle fragments with eclipse, not sure if that's the same thing). If you are already investigating this then please continue. If you need any help let me know.

Thanks.

Mike.

Matthias König

unread,
Jul 23, 2016, 10:14:24 AM7/23/16
to cytoscape-helpdesk
Hi Mike,
I only found this issue with netscape.javascript. But could be the same for
javax.security.auth
http://stackoverflow.com/questions/34007791/osgi-missing-package-javax-security-auth-on-java-8

Not using the package, but could be same behavior.
M

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

Tim Hull

unread,
Aug 26, 2016, 8:43:41 PM8/26/16
to Matthias König, cytoscape...@googlegroups.com
Here is an example of an extension bundle adding a missing JDK package:


This may work as a possible solution until 3.5 is out - however, I tried building one locally and it doesn't seem to work as an embedded dependency. As such, you'd have to load it using BundleContext's installBundle method in the app that needs it, or alternatively make an app that itself is an extension bundle (which your app would depend on). In the former case, you'd also need to use DynamicImport-Package for netscape.javascript so that the package can be resolved later (rather than as the app bundle starts up). Ugly, but it should work...

Tim

On Thu, Aug 11, 2016 at 7:45 AM, Tim Hull <tmh...@eng.ucsd.edu> wrote:
Yes, this should be in the nightly builds, and will be part of 3.5 when released.

Tim

On Thu, Aug 11, 2016 at 12:39 AM, Matthias König <koni...@googlemail.com> wrote:
Hi Tim,
is the netscape.javascript already changed in the nightly builds and part of 3.5?
Than I would develop the javascript features against the 3.5 branch (and also the separator things and other issues already fixed in 3.5).
And as soon as the 3.5 is out update the app with the new features.
Matthias


On Wed, Jul 20, 2016 at 10:00 PM, Matthias König <koni...@googlemail.com> wrote:
Thanks a lot Tim. This sounds great.
I would only offer a develop version against the nightly builds.
But this allows me to already implement the things/test it and provide a way for early adopters to use new features.

On Wed, Jul 20, 2016 at 6:20 PM, Tim Hull <tmh...@eng.ucsd.edu> wrote:
Yeah - I get that having users modify the configuration file won't work. As a stopgap, you may try what AllegroLayout does for old versions of Cytoscape (which don't include the sun.* packages) - have your app update the file itself. Of course, this doesn't work if the user doesn't have write permissions to that directory, though it is better than always forcing the user to manually update the file.

I'm going to take a look at extension bundles - it seems this may be a way to do this without any configuration file changes that would involve creating a second bundle that extends the system bundle to provide the netscape.javascript package. Your app could then depend on the extension bundles get the needed functionality.

I will let you know when this change is reflected in nightly builds, though I would be cautious about pointing end users to nightly builds. They aren't tested (beyond the automated tests that run on build), and as such could break...

Tim



On Tue, Jul 19, 2016 at 11:19 PM, Matthias König <koni...@googlemail.com> wrote:
Hi Tim,

yes please add the export to 3.5 (or even 3.4.1 as a bugfix if somehow possible. This is an extremly simple fix which will not break anything). And let me know when a nightly build is available with the export so I can develop against it.
Solutions which will the user require to change configuration files will not work for me. It has to work by downloading Cytoscape & the app from the app store without further modifications. I prefer to say: download the nightly build here and than install the app instead of "find the configuration file, go to line,... change this to this).

With javafx in the packages.extra was mainly due to problems with non java.* packages being not accessible within the bundle, like for instance javax.xml.
So I assumed just everything not starting with java.* must be added as extra packages. This was also what I read on many posts one should do for javafx in OSGI.
For me the pom and osgi is mainly just overhead with which I don't want to deal (and don't really have the time to). As soon as I finally have a configuration which builds and works the things will stay in there. So what you see is my laziness. I'm pretty sure half of my maven dependencies are not needed, but it will be more headache to find and remove the unused dependencies than just letting all the things in there.

With the missing export of netscape.javascript this is just a bug everywhere.
The problem is that they have 50 javafx.* packages and 1 package netscape.javascript in the javafx which was just added in Java 8. So every developer just iterated over the javafx packages but forgot the netscape.javascript one. Pretty sure this is also the case for the karaf developers.

M



On Tue, Jul 19, 2016 at 11:35 PM, Tim Hull <tmh...@eng.ucsd.edu> wrote:
You're right - while adding DynamicImport-Package allows the app to start up and show a web browser, it does so by simply ignoring the non-availability of netscape.javascript packages. As such, the web view works but not the use of JSObject, which seems to be the issue at hand. 

What does seem to work is adding netscape.javascript to the end of the org.osgi.framework.system.packages.extra line in framework/etc/custom.properties (in the Cytoscape install directory). Of course, that requires editing the system configuration, though we could add it in Cytoscape 3.5.  I don't know why you tried adding a org.osgi.framework.system.packages.extra  section to the pom file - the rest of JavaFX works fine without it. Those classes are exported as part of the default JRE 8 profile specified in framework/etc/jre.properties - I'm not sure why netscape.javascript isn't among those, and even in Karaf 4 it isn't there....

In any case, there may be a solution that doesn't involve editing Karaf configuration files, but I'm not sure yet. I've heard extension bundles (bundles that add JRE exports to the system bundle) is one way to handle this, though if they have to be separate from the main bundle I'm not sure if they'll work with Cytoscape. Perhaps I'll try building an extension bundle and having the original bundle depend on that... We could definitely add netscape.javascript to the export for 3.5, though...

Tim

On Tue, Jul 19, 2016 at 1:52 AM, Matthias König <koni...@googlemail.com> wrote:
Hi Tim,
thanks for the answer.

Unfortunately this does not work for me.
I still get java.lang.NoClassDefFoundError: netscape/javascript/JSObject

I assume the dynamic class loading is delegated to felix OSGI, which does not know about the Java 8 package (same like for the org.osgi.framework.system.packages.extra approach).

Here is a minimal example app showing the problem
https://github.com/matthiaskoenig/cyadd2nodes
Feel free to play with the pom.xml.

I am no expert in Maven and OSGI, so not sure if everything is correct.
Matthias


To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.
To post to this group, send email to cytoscape-helpdesk@googlegroups.com.




--
Matthias König
Junior Group Leader LiSym - Systems Medicine of the Liver

Humboldt-University Berlin, Institute for Theoretical Biology
  https://www.livermetabolism.com
koni...@googlemail.com

Tel: +49 30 20938450
Tel: +49 176 81168480




--
Matthias König
Junior Group Leader LiSym - Systems Medicine of the Liver
Humboldt-University Berlin, Institute for Theoretical Biology
  https://www.livermetabolism.com
koni...@googlemail.com

Tel: +49 30 20938450
Tel: +49 176 81168480




--
Matthias König
Junior Group Leader LiSym - Systems Medicine of the Liver
Humboldt-University Berlin, Institute for Theoretical Biology
  https://www.livermetabolism.com
koni...@googlemail.com

Tel: +49 30 20938450
Tel: +49 176 81168480



--
Matthias König
Junior Group Leader LiSym - Systems Medicine of the Liver
Humboldt-University Berlin, Institute for Theoretical Biology
  https://www.livermetabolism.com
koni...@googlemail.com

Tel: +49 30 20938450
Tel: +49 176 81168480


Matthias König

unread,
Aug 29, 2016, 5:18:32 AM8/29/16
to cytoscape-helpdesk, koni...@googlemail.com
Hi Tim,
thanks for the information. I will look how complicated this is and if it works.
Unfortunately, I have the feeling that Karaf is like a shell around OSGI that is only exporting/allowing what the Karaf Container and the container config allows.

The link you provide only deals with the OSGI issue, i.e providing things to the OSGI bootloader
https://github.com/diffplug/osgiX
which I already figured out how to solve (see for instance the alternative solutions on the link, which all don't work in Karaf).

I did not try the extension bundle approach, but I fear it will be the same like with the alternative approaches, i.e. that the Karaf container will only allow certain things, despite it is possible with the OSGI configuration.
In all honesty, I prefer to wait a few month for Cy3.5 and work on other projects until than instead of spending another week on OSGI, Karaf and getting dependencies in there. But will give it a try.
Matthias

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.




--

Tim Hull

unread,
Aug 29, 2016, 12:16:21 PM8/29/16
to cytoscape...@googlegroups.com
The extension bundle approach does work - I tried it here and made netscape.javascript work on Cytoscape 3.4. There's nothing Karaf-specific about it - all you need is to install an OSGi extension bundle. Granted, doing that is a little bit tricky, though once you do it it will work.

Tim

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.
To post to this group, send email to cytoscape-helpdesk@googlegroups.com.

Matthias König

unread,
Aug 31, 2016, 5:06:16 AM8/31/16
to cytoscape...@googlegroups.com
Hi Tim,
the extension bundle approach works.
Thanks for the help.

For anybody interested here is a write down of the solution (see also)
https://github.com/matthiaskoenig/cy3javascript/commit/dacb8c110052d5bc86c9b02d58624e8706dce676

1. Create an exension bundle jar for the package you want
1.1 write the manifest.mf
The Export-Package is the package you want to make accessible
Bundle-ManifestVersion: 2
Bundle-SymbolicName: netscape.javascript.extension
Bundle-Version: 0.0.1
Fragment-Host: system.bundle; extension:=framework
Bundle-Name: netscape.javascript Framework Extension
Bundle-Description: Bundle exporting netscape.javascript for JavaFX
Export-Package: netscape.javascript
1.2 create the jar and move in your java resources
#!/usr/bin/env bash
# creates the extension bundle
echo "Create extension bundle"
jar -cfm org.cy3javascript.extension-0.0.1.jar manifest.mf
mv org.cy3javascript.extension-0.0.1.jar ../src/main/resources/extension/
2. make the Dynamic import in the pom.xml of your app, i.e. add in the instructions for the maven-bundle-plugin
<DynamicImport-Package>netscape.javascript</DynamicImport-Package>
3. install the package from resources in the CyActivator
public class CyActivator extends AbstractCyActivator {
public CyActivator() {
super();
}

public void start(BundleContext bc) {

try {
// Loading the extension bundle from resources
System.out.println("----------------------------");
System.out.println("Install extension bundle");
Bundle bundle = bc.getBundle();
URL jarUrl = bundle.getEntry("extension/org.cy3javascript.extension-0.0.1.jar");
InputStream input = jarUrl.openStream();
Bundle interfaces = bc.installBundle(jarUrl.getPath(), input);
input.close();
System.out.println("----------------------------");

// now we should be able to access netscape.javascript
System.out.println("Accessing netscape.javascript");
WebViewSwing.launch();

} catch (Throwable e) {
System.out.println("Could not start server!");
e.printStackTrace();
}
}
}
4. check the extension bundle is loaded via karaf terminal
list
115 | Active   | 200 | 0.0.2   | cy3javascript                                                     
116 | Resolved | 200 | 0.0.1   | netscape.javascript Framework Extension, Hosts: 0

5. enjoy access to the classes you missed

This seems to be a good workaround until Cytoscape 3.5.

Unfortuntately extension bundles are only optional in OSGI, so there is no guarantee they are supported
or implemented by a given framework. The Karaf container implements them currently, so they work in Cy3.4.
But there is no guarantee this will work in different frameworks or after update of frameworks
where the extension bundles are described in section 3.15:

3.12 optional extension bundles
This specification provides for one optional mechanism: the boot class path
extension. The reason to make this mechanism optional is that it is not pos-
sible to implement this in a portable way. A compliant framework must set
the following property to true or false depending on the implementation of
the boot class path extension:
org.osgi.supports.bootclasspath.extension

If the property is not set or the value is unrecognized, then the value
defaults to false. A Framework that does not implement the bootclasspath
extension must refuse to install or update a bundle that carries this option.
It must then throw an exception at install or update time."

This is closed. Workaround works in Cy3.4, and access is fixed in Cy3.5-SNAPSHOT.
Matthias



--
You received this message because you are subscribed to a topic in the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cytoscape-helpdesk/Sl_MwfmLTx0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

To post to this group, send email to cytoscape-helpdesk@googlegroups.com.

Tim Hull

unread,
Aug 31, 2016, 12:29:46 PM8/31/16
to cytoscape...@googlegroups.com
One thing you may want to watch out for is making sure the extension bundle is uninstalled if the app is uninstalled. You would want to do this in the shutDown() method of CyActivator (which you would override).

Glad that worked for you - I will say we haven't tested that too much, so you may want to watch out for odd things that happen when installing/upgrading/downgrading bundles with this approach.

Tim

To unsubscribe from this group and all its topics, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.

To post to this group, send email to cytoscape-helpdesk@googlegroups.com.



--
Matthias König
Junior Group Leader LiSym - Systems Medicine of the Liver
Humboldt-University Berlin, Institute for Theoretical Biology
  https://www.livermetabolism.com
koni...@googlemail.com

Tel: +49 30 20938450
Tel: +49 176 81168480

Matthias König

unread,
Sep 2, 2016, 4:01:54 AM9/2/16
to cytoscape-helpdesk
Hi Tim,
I cannot override the
public final void stop(BundleContext bc) {
to uninstall due to final.

And the
public void shutDown() {
}
method of AbstractCyActivator does not have the BundleContext as parameter, so which makes it difficult to uninstall the extension bundle.
The shutDown method should also have the BundleContext as parameter, so an app developer can undo the things done in start(BundleContext bc)

M



On Wednesday, August 31, 2016 at 6:29:46 PM UTC+2, Tim Hull wrote:
One thing you may want to watch out for is making sure the extension bundle is uninstalled if the app is uninstalled. You would want to do this in the shutDown() method of CyActivator (which you would override).

Glad that worked for you - I will say we haven't tested that too much, so you may want to watch out for odd things that happen when installing/upgrading/downgrading bundles with this approach.

Tim

Tim

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.


--
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.
To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cytoscape-helpdesk/Sl_MwfmLTx0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.

To post to this group, send email to cytoscape...@googlegroups.com.



--
Matthias König
Junior Group Leader LiSym - Systems Medicine of the Liver
Humboldt-University Berlin, Institute for Theoretical Biology
  https://www.livermetabolism.com
koni...@googlemail.com

Tel: +49 30 20938450
Tel: +49 176 81168480
...

Tim Hull

unread,
Sep 2, 2016, 1:38:18 PM9/2/16
to cytoscape...@googlegroups.com
You can just store the BundleContext in a class variable in the start method and use it in shutDown() - that should work fine...

Tim

Tim

Tim


To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.

To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.


--
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.
To post to this group, send email to cytoscape...@googlegroups.com.
Visit this group at https://groups.google.com/group/cytoscape-helpdesk.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cytoscape-helpdesk/Sl_MwfmLTx0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cytoscape-helpdesk+unsubscribe@googlegroups.com.

To post to this group, send email to cytoscape...@googlegroups.com.



--
Matthias König
Junior Group Leader LiSym - Systems Medicine of the Liver
Humboldt-University Berlin, Institute for Theoretical Biology
  https://www.livermetabolism.com
koni...@googlemail.com

Tel: +49 30 20938450
Tel: +49 176 81168480
...

--
You received this message because you are subscribed to the Google Groups "cytoscape-helpdesk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cytoscape-helpdesk+unsub...@googlegroups.com.
To post to this group, send email to cytoscape-helpdesk@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages