Hi Sascha,
Thank you for your answer. You are right. My 'hack' plugin was the only
plugin depending in MitkCore! As for the other 3 questions, I think I'm
following the rules. Everything is wqorking as expected, thanks again ;)
Nil
Le 2016-06-20 à 02:03, Sascha Zelzer a écrit :
Hi Nil,
1) As far as I remember, the plug-in order when calling
mitkFunctionCreateBlueBerryApplication does not matter
2) ctkPluginActivator is the base class for all CTK plugin activators.
The berry::AbstractUICTKPlugin class derives from it (well, from
berry::Plugin which in turn implements ctkPluginActivator) and can be
used in BlueBerry Workbench plug-ins. It is nor required to use it,
but it provides some convenience methods for easier access to
preferences, and the plug-in persistend state area for example. Last,
the berry::IApplication is the main entry point for a complete
application. It is tied to the org.blueberry.osgi.applications
extension point. Usually, you would not create your own but rely on
the one provided by MITK.
3) Q_PLUGIN_METADATA is not used by CTK or BlueBerry but required by
the Qt plugin system, if I remember correctly. Using the project name
as the identifier is a good idea to avoid confusion.
Now, the auto-load issue. The general problem is, that the install
scripts are quite involved because they try to do the "right thing".
When you install a BlueBerry application via
mitkFunctionCreateBlueBerryApplication, the CMake macro is able to
retrieve all transitive plug-in dependencies (also from external
projects) and install them explicitly. The auto-load modules (which
also need to be installed explicitly) are derived from this set of
plug-ins. When you declare a module in your project to be auto-loaded
with MitkCore (which belongs to the external MITK project) but none of
your own plug-ins have a direct dependency on MitkCore, the CMake
scripts are not able to find your auto-load module and install it
(they will only "see" the auto-load modules from external projects
like MITK itself). This is a bug in the system. Your work-around works
because your dummy-plugin depends on MitkCore and when you install
your application the scripts see the MitkCore dependency and now also
has the current list of modules that are to be auto-loaded with it
(including yours). A better work-around could be to just add the
MitkCore dependency explicitly to one of your existing plug-ins (even
if that plug-in already transitively depends on it).
I couldn't think of a quick solution to fix the install scripts in a
good way yet. One approach could be to expose another CMake macro
which lets you install auto-load modules explicitly yourself
(essentially refactoring the mitkFunctionInstallAutoLoadModules macro).
Cheers,
Sascha
On 06/16/2016 07:19 PM, Nil Goyette wrote:
Hi all.
Is there someone who can answer my questions?
My IO module is loading now, but this is such an hack, maybe an
answer to 2) could help me.
Thank you for your time.
Nil
Le 2016-06-08 à 10:32, Nil Goyette a écrit :
Hi all,
Thank you Pierre-Yves and Stefan. I did find a workaround yesterday.
It's totally a hack and I don't even understand how it can work. I
simply added back a plugin that I deleted earlier. The plugin only
contains its activator, depends on CTK and MitkCore, requires no
other plugin. It simply does nothing. And yet, my IO module works
when I use it in my app. It's as if doing something random fixed my
module.
Here are some questions for you!
1) I know the order of the plugins in Plugins/plugin.xml is
important, but is it important in Apps/{name}/CMakeList.txt, in the
list of plugins that we pass to mitkFunctionCreateBlueBerryApplication?
2) What's the differences between ctkPluginActivator,
berry::AbstractUICTKPlugin and berry::IApplication? When should we
use them? I discovered that we use them almost randomly. This can't
be right :/
3) Is the ID important in the activator? "Q_PLUGIN_METADATA(IID
"org_imeka_app")" Should it be identical to the project's name in
the plugin's cmakelist? I tested with random names and it seems to work.
Le 2016-06-08 à 03:53, Kislinskiy, Stefan a écrit :
Hi,
I remember a similar question from a coworker. He wasn’t able to
get his autoload modules loaded from the package he made out of his
project template based application. He also found a solution to
this bug if I remember correctly: He added the corresponding bin
folder of the module in charge to the path, so i. e., when you
autoload with MitkCore, this would be MITK-build/bin/MitkCore/Release.
Does it help (for now) as workaround?
Best,
Stefan
*From:*Pierre-Yves Menguy [mailto:pierreyves.men...@gmail.com]
*Sent:* Dienstag, 7. Juni 2016 16:11
*To:* Nil Goyette
*Cc:* mitk-users@lists.sourceforge.net
*Subject:* Re: [mitk-users] IO module not loaded in package
Hello,
I had a similar problem when updating from 2014.10 to 2016.03 (big
gap).
When looking into it, I noticed my library wasn't packaged, it was
left out during the process (both NSIS and ZIP).
I couldn't find a fix that involved only changes into my own code,
and my code was similar to the IOExt/Diffusion module.
As a last chance, I created a MITK fork to include my own IO module
(and several small changes as image compression during the writing
process), and the package was able to recognize the module and ship
it with my own app (which is still in a separate project).
I tried to check out the demo template on Github (commit 1552ddd),
and it fails to pack with this log :
1>EXEC : warning : target 'MyAwesomeLib.dll' is not absolute...
1>EXEC : warning : target 'MyAwesomeLib.dll' does not exist...
I'm using Windows, compiling under vs2013 x64.
I'm sorry because my solution may not suit your situation, I just
wanted to add my own insight and maybe get a solution if someone
post it in this thread.
Pierre-Yves.
On 7 June 2016 at 15:01, Nil Goyette <nil.goye...@imeka.ca
<mailto:nil.goye...@imeka.ca>> wrote:
Hi all,
On MITK2015.05, I renamed our plugin to respect a .app, .eager and
.view
logic, and moved some files. Everything still work perfectly, except
when I try to run the application from a package. My IO module (using
AUTOLOAD_WITH) is not loaded but everything else is perfect.
I get no error message or warning on Windows and Linux, but I get this
on OS X:
Pre-loading library "liborg_mitk_gui_qt_ext" failed: "Cannot load
library liborg_mitk_gui_qt_ext: (dlopen(liborg_mitk_gui_qt_ext.dylib,
5): image not found"
I tried changing the order of the modules and the plugins in their
CMakeList. I tried doing exactly what you do in your IO modules (like
DiffusionIO). I tried many irrelevant things that I won't mention
:) I'm
not sure what to test now.
Do you know what could cause this? I would gladly take any hints or
ideas! Because right now my only idea is to revert my huge commit, then
rename one thing at the time, compile, create a package, test, rename
the next thing, ...
Nil
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth
and traffic
patterns at an interface-level. Reveals which users, apps, and
protocols are
consuming the most bandwidth. Provides multi-vendor support for
NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports.
https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
<mailto:mitk-users@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/mitk-users
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports.https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohomanageengine
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
_______________________________________________
mitk-users mailing list
mitk-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mitk-users