I am working on a framework (JNIPort) which must be loadable in VW 7.5 and
earlier, in 7.6, and soon in 7.7. I would like to have version specific prerequisites. The framework comes with some methods which were not present in VW at the time the framework was written, but have later been added to VW 7.6. VW 7.7 will have two additional methods which were included in the framework. So, if the framework simply included all the methods which were missing in VW 7.5 and earlier, there would be overrides of system methods in later versions of VW. Up to 7.6, I tried to solve the problem by having a package for the methods which were present in 7.6, but missing in 7.5. The post-load action for one of the framework packages tested the image version, and loaded the package in pre-76 images. The drawback of this is that it did not work with parcels, as my post-load action explicitly loads the package from Store. That was not all too bad, because 7.5/7.6 had problems creating loadable parcels from the framework's bundles anyway. With 7.7, I do not think that this is a viable solution any more. The post-load action would become quite complicated. In addition, I can create usable parcels for the framework with the 7.7 prerelease, and would like to distribute parcels in addition to publishing the framework to the public repository. I tried two different approaches: 1. Creating a package per VW version, adding all of them as prerequisites of the framework, and writing a prerequisite selection block which answers true if the package matches the image version. 2. Creating only one package, with different branches ('75.*', '76.*', '77.*') for each VW version, and a prerequisite selection block which answers true if the package version string matches the image version. However, with the Store prerequisites settings set to "Always prompt for version", both approaches don't really work. Using the first approach, I get a version selection dialog for each of the packages. I can't use "cancel" for packages which I don't want, as this will stop loading the framework. If I select a version, I am next asked if I want to load the package despite the version not matching. The second approach works somewhat better, but there is still the version selection dialog popping up before the prerequisite selection block is executed, and if I select the wrong version, there is the "version not matching" dialog again. I wonder why the version selection dialog comes first. Wouldn't it make more sense to send the candidate versions through the prerequisite selection block first, such that I am only prompted with versions which match the conditions? Does anyone have an idea how I can solve the problem of version specific prerequisistes? Or should I just give up, load the package with all the methods which have to be added to VW 7.5, and live with the overrides which are created in 7.6 and 7.7? TIA Joachim Geidel _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Free forum by Nabble | Edit this page |