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!  You're welcome to do it.  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.  In apache, this is controlled by the
   file jserv.properties, where you need to add something like the
   following two lines:

     wrapper.classpath=/usr/GNUstep/System/Libraries/Java
     wrapper.classpath=/usr/GNUstep/Local/Libraries/Java

 * your java servlet has the library path set so that it can load in
   the gnustep libraries.  In apache, this is again controlled by the
   file jserv.properties, where you need to add something like the
   following line:

    wrapper.env.copy=LD_LIBRARY_PATH

   then, you need to `. /usr/GNUstep/System/Makefiles/GNUstep.sh'
   before starting apache.

 * you pass GNUSTEP_SYSTEM_ROOT to the java servlet -- the GNUstep
   Base Library needs GNUSTEP_SYSTEM_ROOT to access some files, such
   as character sets.  To make it work, add the following lines to
   jserv.properties:

   wrapper.env.copy=GNUSTEP_SYSTEM_ROOT
   wrapper.env.copy=GNUSTEP_LOCAL_ROOT

 * the NSLog output of your java servlets goes into httpsd_error_log.  

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 shared you should also be
able to run JIGS (assuming you have a JDK 1.2 environment).  This
means once the GNUstep base library is ported (even without working
Distributed Objects), JIGS should be ported as well - and if not, at
least it should be possible to port it without particular hassle.

This is the theory - in practice, up to now I only have reports of
JIGS running on GNU/Linux i386 and GNU/Linux ppc.  If you have
experiences running (or trying to run) JIGS on a different machine and
os, I <n.pero@mi.flashnet.it> would be happy to hear about your
experience.

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

The base library is mostly 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.

