The IJ1 ↔️ IJ2 synchronization needs to be as efficient as possible. That said, we are no longer supporting use of ImageJ 1.x commands from modern ImageJ2 UIs. So we can probably get away with synchronizing things lazily, creating a lazily initialized IJ2 data structure shadowing IJ1, and vice versa, which gets populated only as needed when various methods are called.
Migrated-From: http://trac.imagej.net/ticket/546