Micro Manager, Fijii PlugIn Development

Hello,
actually I’m trying to write some general documentation for my colleagues
how to setup a nice working Debugging environment for MicroManager 2.0 plugins,
in our case a Win 10 environment.

Currently we are using:

  • Open JDK
  • µManager 2.0
  • Ant Builder in an Eclipse environment

The plugin projects are hosted in Git database

Although plugin development works in principle, it’s kind of a struggle to set up a new developer machine every time.

I still have a bunch of questions and everytime I try to find answers I’m lost in space.
Maybe one of you is fighting the same problems and can point me to useful weblinks or you can provide some useful hints based on your experiences - that would make me very happy…

So here are my open questions:

  • Is the (latest) Eclipse version a recommended SDK or should I stay with an earlier versions or even switch to a different one like Netbeans?

  • I would like to avoid lot’s of individual configurations when pulling the project from a git database (1st time), so tried to use environment variables in Eclipse.
    Nice try but at the end not really the holy grale…
    Would Maven be the better solution here? I would love to see some step-by-step example how to configure things here.

  • Actually we are building our plugins in the current installation directory of micromanager, not a problem if you have admin rights on that machine. (Win 10)
    A better approach would be to setup a different directory for the development of debug/run versions before putting them in the program directory - that should be reserved for release versions. A recommended approach?

  • Have I understood this correctly? MIcromanager 2.0 cannot work in a Fijii environment and vice versa?
    Anyone dealing with MM2 image aquisition and post processing in Fijii?
    How do you resolve this issue?

Actually I have have reached the state of some kind of cluttered patchwork documentation… not quite happy.

What are your experiences?
Is someone working on a similiar documentation? It would be great if we could check and test each others approach.

Best regards, Marco

2 Likes

Hi @Marco_F,

Great to bring this up! The documentation on https://micro-manager.org “should” provide this information, but I think it suffers from having too much information, much of it outdated. The problem with Java IDEs is that there are at least three of them, and each of them has their own idiosyncrasies, and may behave differently on different platforms. Personally, I switched to using IntelliJ, wrote documentation how to setup a new environment (on the MM website), but still struggled to setup a system on a new computer. It would be really nice to figure out how to share a IntelliJ configuration file, possibly through the Micro-Manager github repository (although including IDE configurations in the source code repo is frowned upon by some).

I am not aware of problems running MM 2.0 under Fiji. In the past, we tried to keep dependencies in sync, so that it should be easy to combine the two, but it is possible that some work is needed. Maybe @ctrueden or @marktsuchida know more?

In any case, I do encourage you to keep documentation up to date on the micro-manager website (jusr request an account). I don’t think that anyone will benefit from having documentation fragmented all over the internet.

2 Likes

Hi @nicost,

I absolutely agree - keeping all documentation together on the micro-manager website should be the preferred location. I would be happy to assist here.Please let me know how we could proceed - at first I would propose to provide feedback concerning the current documentation on https://micro-manager.org and look into what might be missing and potentially outdated.

Personally, I switched to using IntelliJ, wrote documentation how to setup a new environment (on the MM website)

I tried to find this one but without success - can you provide me a link?
I would like to give it a try in comparison to our Eclipse environment.

Since I am not working for an university, I am not sure if I need to use the commercial license of IntelliJ. To be honest I don’t like to pay annual fees per user. For small companies that do not have focus on software development this quickly becomes unattractive.

I am not aware of problems running MM 2.0 under Fiji.

This is great - is there also some documentation available concerning Fijii in combination with MM 2.0 which I have overlooked so far?

Otherwise would it be a good idea to write something? If so, whom should I contact?

Best, Marco

Hi!

I believe this is what Nico wrote/mentioned.

IntelliJ community edition is licensed under Apache2.0 license, which is very permissive. If you hoover around the question mark when choosing between ultimate and community edition, they mention that it can be used for commercial development. So I guess it is fine for you to use?

Hi @Marco_F,

Feedback on the current documentation is highly appreciated! We are about to switch to a new backend, so before making changes it may be beneficial for the site to transition. It will stay a collaborative website, and you will continue to be able to make changes yourself.

1 Like

Thank you! That helped.

Hello @nicost,

today I found some time to follow the “Using IntelliJ” article.
Beside of that I came accross the pages:

https://micro-manager.org/wiki/Download_Micro-Manager_Latest_Release
The bold headline (August 14, 2015) always gives the impression: this is the recommended version - that’s not true, right?
Does the new backend comes with a new or different documentation?

Micro-Manager is currently developed with JDK 8.

IntelliJ offers only versions (1.8,11,13,…) - I know, Java version 1.8.x and
JDK 8 are the same - but this might confuse.

Links of the IntelliJ article are still working and it was easy to follow until
I came accross issue no. 8.

Since I have cloned the latest nighty build, I noticed the mentioned file
fetchdeps.xml
but I’ m note sure if:

  • I need to install ant in parallel to IntelliJ?
  • Do I really need to to run ant with this xml file or is this part of the git repository and nothing to do?

Following the hint:
See also: Writing plugins for Micro-Manager , referring immediately to Version 2.0 Plugins that says:

You can build this jar file with the command line tool “ant”, but it is also possible to do so completely with the IDE IntelliJ, see step by step instructions of in Example plugin, included in 2.0 source)

Searching for this example I find it deeply nested in this subdirectory:

\MicroManager\plugins\Example\src\main\java\org\micromanager\plugins\example

I must admit meanwhile I am lost. My basic questions for now:

Do I really need to install ant or is it an IntelliJ plugin already?
These steps are clear:

  • Installing JDK environment (either before or during IntelliJ project setup)
  • Installing MM 2.0 and cloning MM 2.0 source from git to a different directory

I want to keep my MM 2.0 plugin projects in separate git databases, not inside the micromanager 2.0 source directory but I’m still confused how to configure this in a good way.

I am grateful for further helpful hints.

Best regards, Marco

1 Like

The bold headline (August 14, 2015) always gives the impression: this is the recommended version - that’s not true, right?

The “Nightly build”, same size bold, is the first thing you encounter on that page. Currently highly recommended to always use the latest nightly build.

I know, Java version 1.8.x and JDK 8 are the same - but this might confuse.

Added “Java 1.8” to the text.

Since I have cloned the latest nighty build, I noticed the mentioned file
fetchdeps.xml
but I’ m note sure if:
I need to install ant in parallel to IntelliJ?

It is recommended to install ant and run “ant -f buildscripts/fetchdeps.xml”. That will cause ant to download all needed dependencies to build the code. Moreover, when dependencies change (which happens regularly), fetchdeps.xml will change too, and running the same ant call as above will update the dependencies. Alternatively (as the text tries to explain), you can download and install a MM binary and use the dependencies from there (again, not recommended).

I want to keep my MM 2.0 plugin projects in separate git databases, not inside the micromanager 2.0 source directory but I’m still confused how to configure this in a good way.

Great point! The problem may be that there are a myriad ways to configure IntelliJ, and I am still discovering them all myself. You can have your plugins source code in its own github repo and then use File > Project Settings > Modules to add your plugin as a module. You could grab all dependencies from a binary only installation of Micro-Manager, but then would not have access to the source code and Javadoc included in the source. It would be very nice to have a super easy way to set this up!

1 Like