Page MenuHomePhabricator

Rework CoreObjectFactory inheritance and registration
Closed, ResolvedPublic

Description

see also T2648.

Event Timeline

Currently the SB-factory is not aware of the filenames that were registered to CoreObjectFactory.

Factory registration is done in the bundle activators. A design flaw in the "extra factory mechanism" can break this on some systems, depending on dll loading order and things like that.

A first fix will reactivate the explicit factory registration in Mitk3M, SandboxApp and ExtApp.

[SVN revision 20242]
CHG (#2807): explicitly register object factories in main() functions as a workaround for a factory design weakness

The rework will not be in 3M3, I will just fix T2899 with some workaround.

[SVN revision 22264]
CHG (#2807): CoreObjectFactory restructuring.
All CoreObjectFactories now share the same parent class
CoreObjectFactoryBase and register themself at the singleton
CoreObjectFactory.

[SVN revision 22265]
CHG (#2807): use correct file extensions in QmitkExtFileOpenAction

[SVN revision 22266]
ENH (#2807): new test for mitkCoreExtObjectFactory

[SVN revision 22267]
ENH (#2807): basic test for CoreObjectFactory

[SVN revision 22269]
CHG (#2807): changed parent class of CoreObjectFactoryBase to itk::Object

[SVN revision 22270]
CHG (#2807): adaptions to new CoreObjectFactory

[SVN revision 22271]
ENH (#2807): activated factory registration test for DiffusionImaging module

[SVN revision 22302]
FIX (#2807): always register a QMCoreObjectFactory when registering a SBCoreObjectFactory. Restores old behaviour and makes vessel trees loadable again.

[SVN revision 22357]
FIX (#2807): keep mapper from ExtraFactoriesList only if it is not NULL

Vesseltree rendering did not work anymore.

In mitk::CoreObjectFactory::CreateMapper() iterating over ExtraFactoriesList returned an empty (NULL) mapper, this is why the vesseltree mapper was not loaded.

To avoid storing an empty mapper the last existing mapper in the ExtraFactoriesList is alway kept.

unstructuredGridMapper was also affected.

Both VesselTree and UnstructredGrid rendering work now again.

MITK-1-0 keyword is obsolete, use target milestones in the future.