[brailleblaster] Re: Contents of Distribution File

  • From: Chris von See <chris@xxxxxxxxxxxxx>
  • To: brailleblaster@xxxxxxxxxxxxx
  • Date: Mon, 15 Nov 2010 09:02:08 -0800

A Mac OS X application bundle is really no more than a specially- packaged directory tree, and it can contain Java class files. There's a file called "info.plist" inside the app bundle that identifies the main class to be invoked, defines the classpath, gives parameters that should be passed to that class and provides options that should be used to start the JVM. TAMC, for example, bundles everything it needs to run (including its class libraries) inside its app bundle, and stores user preferences


The general structure of a Java app bundle looks like this:

Application (.app)
- Contents directory
- - - Info.plist file
- - - Mac OS directory (contains Mac OS X's Java bootstrapper)
- - - Pkginfo file
- - - Resources directory
- - - - - Application icon file
- - - - - Java directory
- - - - - - - (application specific content, including "lib" directory for class libraries, core JARs, readme files, parameter files and so on)

More info can be found at http://developer.apple.com/library/mac/#documentation/ Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment.html

Of course, this may all change in a few years when Java is no longer bundled with Mac OS X, but Apple is already making changes that would allow third-party JVMs to be installed in Mac OS X and (I think) even allow applications to bundle a JRE as part of the app itself.


Cheers
Chris

On Nov 15, 2010, at 8:37 AM, Michael Whapples wrote:

How does the Apple java application bundles relate to java applications?

If I take eclipse as an example, I think it still is a archived bundle with a number of directories and the application bundle, which you extract to a location on disk. So this is similar I think to what is being suggested.

So here are the various ways I imagine BrailleBlaster will be started on the various systems: * Windows: There will be a brailleblaster.exe programme or may be a batch script which users should run. This will automatically start the JVM with the options we require. * Linux/Solaris/FreeBSD/other unix system: A shell script will be present which the user runs. Again this will start the JVM with all required options. *MacOSX: In the BrailleBlaster folder, along with the bin, lib, and so on folders there will be a brailleblaster application bundle, users should run this and it will start the JVM with all required options.

Unless the Java code and liblouis/liblouisutdml libraries can be put inside an application bundle I don't see anything wrong with what was originally suggested.

Please correct me if I have things all wrong, I am still fairly new to MacOSX and would appreciate it if those more knowledgable were to help me understand it.

Michael Whapples
On 15 Nov 2010, at 15:37, Alex Jurgensen wrote:

Hi John,

The standard Mac OS X convention that I would suggest using for the Mac distribution of Braille Blaster is a *.app bundle inside of a *.dmg disk image.

Regards,
Alex,


On 2010-11-15, at 7:24 AM, John J. Boyer wrote:

We should certainly look at how different platforms handle application distribution. I think the zip file might be a good way to start for all of them. The starter script for Mac OS X could set up BrailleBlaster as
a standard Mac applicationj.

John

On Mon, Nov 15, 2010 at 07:23:57AM -0800, Alex Jurgensen wrote:
Hi John,

I disagree with this packaging scheme, at least for OS X, because OS X applications have a certain convention that they must follow in order to be run in the standard way. They are also distributed in a few standard ways.

I suggest that we look at how the different platforms already handle distributing files.

Regards,
Alex,


On 2010-11-15, at 7:12 AM, John J. Boyer wrote:

Here is what I think should be in the BrailleBlaster distribution files.
They will be zip files and there will be one for each platform.

COPYING:  containing the Apache 2.0 license

AUTHORS: A list of authors with their e-mail addresses if appropriate

README: Instructions on installation, getting started, licensing and
where to get the source code

scripts: For starting BrailleBlaster on various platforms

bin directory: C libraries

lib directory: jar files of Java libraries used by BrailleBlaster

brailleblaster.jar: the piece de resistance

The bin subdirectory will contain the following subdirectgories

bin: scripts and command-line tools for liblouis and liblouisutdml

lib: The various libraries, such as liblouis, liblouisutdml libitex2MML
libhunspell etc.

share: containing liblouis and liblouisutdml tables and files. This will
enable them to find their stuff in the paths they expect.

John

--
John J. Boyer; President, Chief Software Developer
Abilitiessoft, Inc.
http://www.abilitiessoft.com
Madison, Wisconsin USA
Developing software for people with disabilities



Alex Jurgensen,
VoiceOver Trainer,
ASquared21@xxxxxxxxxxxxxxxxx                    

Visit us on the web at: www.vipbc.org


--
John J. Boyer; President, Chief Software Developer
Abilitiessoft, Inc.
http://www.abilitiessoft.com
Madison, Wisconsin USA
Developing software for people with disabilities



Alex Jurgensen,
VoiceOver Trainer,
ASquared21@xxxxxxxxxxxxxxxxx                    

Visit us on the web at: www.vipbc.org



Other related posts: