Hi Alex,

I think you mixed up two different things here. While MITK plugins do come with 
CppMicroServices support, it has nothing to do with the plugin registration. 
MITK is using the CTK plugin framework for this [1]. BTW you can always look 
into the MITK/CMake directory to find the code behind MITK CMake 
functions/macros like mitkFunctionCreatePlugin.cmake that basically wraps 
ctkMacroBuildPlugin.

There are many things that can go wrong, so it’s impossible to tell you exactly 
what’s going on in your case but when searching for source files containing 
PartInitException and “Could not create view” I end up with three candidates in 
org.blueberry.ui.qt where I would recommend to place break points to debug the 
issue.

General plugin-related hints that are not the most obvious ones:


-       Start your application with the /BlueBerry.clean (Windows) or 
–BlueBerry.clean (Linux, macOS) argument to force a clean start (takes longer 
but it is a better base for debugging these kinds of plugin issues). Sometimes 
that’s already all that’s necessary (to do It once).

-       Did you declare AND define a VIEW_ID in your View class, if your plugin 
contains any?

Although tailored for 2018.04, the exampleplugin is a good minimum example with 
comments to carefully look through and compare everything to a working plugin 
[2].

Best,
Stefan

[1] http://www.commontk.org/index.php/Documentation/Plugin_Framework
[2] 
https://github.com/MITK/MITK-ProjectTemplate/tree/master/Plugins/org.mitk.gui.qt.exampleplugin


From: Alex Melville [mailto:amelv...@umich.edu]
Sent: Friday, March 6, 2020 9:44 PM
To: mitk-users@lists.sourceforge.net
Subject: [mitk-users] mitk_create_plugin and C++ Microservices

Hello,

Background:

- I have a plugin that I'm maintaining that calls mitk_create_plugin, but it 
doesn't seem like its views are getting registered. We're getting errors of the 
form "Could not create view: <viewName>", "Caused by: Part initialization 
error: Could not create view: <viewName>" even though the dll containing the 
view seems to be in the right directory.

- Based on that, I have to conclude that the code for the C++ microservices 
(documented here: 
http://docs.mitk.org/nightly/MicroServices_TheModuleContext.html ) is not 
getting added to our code. I tried grepping the build directory for functions 
related to registering modules, but nothing came back. ModuleRegistry showed 
only GetModule().

- Looking at MITK-ProjectTemplate (v2016.11), it looks like the sample plugins 
don't need to call anything other than mitk_create_plugin. So based on that, 
I'd guess that the microservices pre-processing should happen automatically for 
plugins, but I wanted to make sure.

Questions:
- Does mitk_create_plugin automatically preprocess the files to add the 
Register / etc. functions?
- If it should, any advice on what else can cause views of plugins to not be 
found would be appreciated

Are there any more details on how the micro services system works?
- Is there one registry for the entire system (like e.g., COM/DCOM) or one per 
application?
- Where is this microservices registry stored? Or is it not stored anywhere and 
instead it's re-populated every time the application starts?

Thanks,

- Alex



_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to