typiconman / ponomar

Ponomar: a liturgics suite for the Orthodox Church
http://www.ponomar.net/
GNU General Public License v3.0
37 stars 12 forks source link

PonomarSetup: Move language-specific subdirectories into .jar files? #11

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
PonomarSetup.exe currently has to install some 37,000 files, most of which are 
XML files. Most of these are language-specific files under the languages 
subdirectory.

Having such a large number of individual files bloats the installer's XML code. 
It probably also is responsible for the relatively long time to install and 
uninstall (a couple minutes). MSI installers/uninstallers read and write 
database entries for each file that is installed/uninstalled.

For modularity and ease of deployment, it may make sense to bundle the relevant 
language-specific subdirectories (languages/cu, languages/en, etc.) into 
separate .jar files. The installer would then only have a small number of files 
to deploy.

We could then also turn the installer into a web installer that prompts the 
user to select which language-specific .jar file(s) to download and install.

Reading an XML file that's contained in a .jar file is straightforward. See for 
example: 
http://stackoverflow.com/questions/3369794/how-to-a-read-file-from-jar-in-java

This is not a must-have feature. It could be deferred until after we've 
provided a basic installer or application bundle for each major platform 
(Windows, OS X, and Linux).

The code changes involved may be extensive (for example in the functions that 
search up and down the tree for the existence of a specific file).

Original issue reported on code.google.com by ps008v...@gmail.com on 11 Feb 2015 at 2:32

GoogleCodeExporter commented 9 years ago
I am not sure if Jar is the best way to go for this. Perhaps the language files 
can be just made available in archives that the user loads and unzips, perhaps 
with the aid of some interface. This would also make the modularity available 
for the Perl API.

Original comment by aleksandr.andreev@gmail.com on 15 Feb 2015 at 1:41