Tuesday, July 10, 2007

Mid-Term Update

Well, the week of the mid-term is upon us. Ironically, this is when everything has been coming together for the installer. I now have a clear view of how all the different elements of the installer will work together, and the specific obstacles still to overcome. Solutions have been found for a number of previous obstacles, some just on paper, others have begun to be implemented. Please note that this is focused on the Windows installer, the Linux installer is a separate goal and it will be addressed either once the Windows installer is fairly functional, or sometime soon after SoC has ended. Here is a brief TODO in no particular order:

1. Figure out why the BitRock glob file pattern isn't working. This will enable me to configure the users Runtime Properties file. If you have experience in this, please help! Here is a link showing what I'm trying to do as-per the BitRock documentation:

http://bitrock.com/support_installbuilder_faq.html#A8_1

The part to pay attention to is the "files" tag. The way this works is depending on where that entire chunk of XML code is placed in the project's XML file, the root directory is implied. So, for me, I've got a similar chunk of code to that located in the section that handles files in the install directory; in our case C:\Program Files\openmrs. Now, I simply need to substitute text in 1 file in that directory, and I know exactly what the filename is. Hence, I don't need to worry about all of those wild cards and whatnot. I've tried everything imaginable, and it's not working. The file I'm testing this with is located in:

C:\Program Files\openmrs\temp\testFile.txt

So, given that, if anyone knows the glob file pattern to edit just that file, I welcome your help!

2. Handle some design issues with the preliminary installer (the one that handles dependencies). It's very challenging designing a functional GUI in Netbeans, and then having to modify the code to work within the context you need to use it. For example, the code is command-line at heart, and will only pop-up dialogs when user response is needed. This leads to a hierarchy of GUI classes being spawned on top of the command-line engine, and there are some issues with sharing data between these various classes. I put a lot of work into this last night and will pick up here today since it's the area in which I'm set to make the most progress.

3. Dependent on #2, once the dependencies are verified/installed, I need to add some basic lines to the BitRock XML file to export some environment variables. This will take all of 10 minutes, just a messy loose end that can't be addressed until the depends are satisfied.

4. There is a little more development to be done on actually detecting the dependencies, but this is one of those issues that I've figured out how I can do it, I just need to complete the idea. No more problem solving really involved here.

5. A bit of work needs to be done for the Uninstaller. The reason is due to how OpenMRS functions. It's not a typical program in that the Installer doesn't create all sorts of registry keys, and there aren't a whole lot of files associated with it. Additions will need to be added to the BitRock Uninstaller (probably just some simple Java code) that handles removing of the war file, configuration of Tomcat, etc... Nothing too seriously hard.

That's about all I can think of now, but I may be forgetting some things. Hope everyone's project is going great!

No comments: