JIGS Frequently Asked Questions
===============================

0. Where can I find examples of using GNUstep from Java ? 
=========================================================

Have a look into the Testing/Java directory for examples of java
programs using the GNUstep core libraries.

1. Does JIGS work with JNI 1.1 ? 
================================

No.  JIGS requires JNI 1.2, mainly because it uses weak references,
which are provided by JNI 1.2 but not by JNI 1.1.  There are no
current plans to port JIGS to JNI 1.1.

2. Can I use JIGS to access Objective-C libraries inside a Java servlet ? 
=========================================================================

Yes!  That is a well-tested scenario.  Here are a few hints: you need
to make sure that:

 * your java servlet has the classpath set so that it can access the
   java classes you want to use. Usually, this means the System and
   Local Libraries/Java directories, which by default are at

     /usr/GNUstep/System/Library/Libraries/Java

   and

     /usr/GNUstep/Local/Library/Libraries/Java.

   So, make sure these two directories are in your CLASSPATH. If
   GNUstep is installed somewhere else, these directories might be
   somewhere else (for example, /usr/lib/GNUstep/Libraries/Java and
   /usr/local/lib/GNUstep/Libraries/Java are common on Unix).

 * your java servlet has the linker/library path set so that it can
   load the GNUstep libraries. The easiest way to do this is to add
   
     /usr/GNUstep/System/Library/Libraries

   and

     /usr/GNUstep/Local/Library/Libraries

   to your linker path (/etc/ld.so.conf under GNU/Linux), or source
   GNUstep.sh before you start Tomcat.

3. What about user defaults ? - they are all saved under 'java'
===============================================================

If you run GNUstep from java, it will always read its process name as
'java'.  This is nothing bad, except that all user defaults for java
applications would be saved under the name 'java', and mix one with
the other.  To workaround this, you just need to set the process name
of your process at the beginning of your code.  Something like:

  (NSProcessInfo.processInfo ()).setProcessName ("myApp");

4. What about NSLog output ?  It always uses 'java' as process
==============================================================

See question 3. - it's the same problem with the same solution.

5. Does JIGS run on XXX (your machine and operating system of choice) ? 
=======================================================================

JIGS's implementation is - at present - quite deeply dependent on the
GNU Objective-C runtime.

In general, JIGS should be as portable as GNUstep and the GNU
Objective-C runtime - wherever you can run the GNUstep base library
with the GNU Objective-C runtime compiled as a shared library you
should also be able to run JIGS (assuming you have a JNI 1.2
environment).  This means that, once the GNUstep base library is
ported (even without working Distributed Objects), JIGS should work as
well - and if not, at least it should be possible to port it without
too much troubles.

This is the theory - in practice, JIGS is currently mostly used on
GNU/Linux i386.  If you have experiences running (or trying to run)
JIGS on a different machine and OS, we would be happy to hear about
your experience.

6. Which core libraries are wrapped ?
=====================================

The base library is wrapped, and works nicely.  The gui library
wrapper instead is experimental and hackish and not very useful as it
stands.

7. How do I report a bug ?
==========================

The best way to submit bug reports and fixes is to email them to
bug-gnustep@gnu.org.

The best way to submit bug reports and fixes is to follow the
guidelines for reporting GNUstep bugs described on the GNUstep Wiki
(http://wiki.gnustep.org/index.php/Report_Bugs) or on the general
GNUstep Web site (http://www.gnustep.org).

