Building the Jini(TM) Technology Packages from Source Code

Building the JiniTM Technology Packages from Source Code


The JiniTM Technology Starter Kit includes support for generating binary (JAR) files and documentation from the provided source code using the GNU Make utility (available from the
Free Software Foundation, http://www.fsf.org/). The build procedure has numerous dependencies on UNIX commands, and has only been tested in the SolarisTM operating environment.

Please note that there is no necessity to build the JAR files from source code to get started with Jini technology. The JAR files are provided for you as part of the software product, as it is extracted, under the lib subdirectory of jini1_1. If you are unsure about how to get started, please point your browser at the index.html file in the jini1_1 directory.

This page describes how to use gmake to build from source code. We also have an experimental tool for building called "buildtool" that you may find easier to use. You can get buildtool from jini.org and try it out. If that fails, let the authors know, but remember that the gmake mechanism described here is the supported and official way to build.

Note: Please do not attempt to build the Jini Technology Starter Kit JAR files without first reading the Outrigger build issues, included in this document.

While the build procedure has not changed from the build procedure provided in earlier releases of the Jini Technology Starter Kit, the makefile that is provided as part of the starter kit has changed, to accommodate the inclusion of Outrigger, the contributed implementation of JavaSpacesTM technology from Sun MicrosystemsTM.


The build procedure requires that you have the bin directory of the JavaTM 2 SDK, Standard Edition, v1.2.2 (or later) in your executable search path. To build the Jini Technology Starter Kit JAR files, you'll need to:

    cd jini1_1/source/vob/jive/src

    gmake PRODUCT=1  <target>
Where:

If you port this build process to another platform and wish to submit it for potential use in our next release, please send the makefile to jini-submit@java.sun.com for consideration.


Outrigger build issues

FrontEndSpace (the contributed, persistent implementation of JavaSpacesTM technology from Sun Microsystems) uses eXcelon Corporation's ObjectStore PSEPro for Java (PSEpro) to persist the contents of the space to disk. PSEPro requires that the class files for any objects that are going to be persisted be post-processed. Our license with eXcelon allows us to distribute the PSEPro runtime classes, but not the development tools necessary to perform the post-processing. As a result, unless you have obtained the PSEPro development tools, you cannot perform a complete build of FrontEndSpace from the Outrigger source code. You can perform a complete build of all of the other software in the Jini Technology Starter Kit, including TransientSpace (the contributed, non-persistent implementation of JavaSpaces technology from Sun Microsystems), by following the build procedure for the Jini Technology Starter Kit, described previously.

Even without the PSEPro development tools, you can still build a significant portion of FrontEndSpace. In particular, you can build any class not listed below.

     com.sun.jini.collection.FastList
     com.sun.jini.collection.FastList.Node
     com.sun.jini.mahout.StorableObject
     com.sun.jini.outrigger.BackEndSpace.LastLog
     com.sun.jini.outrigger.EntryHandle
     com.sun.jini.outrigger.EntryHandleTmplDesc
     com.sun.jini.outrigger.EntryHolderSet
     com.sun.jini.outrigger.EntryRep
     com.sun.jini.outrigger.NotifyChit
     com.sun.jini.outrigger.ODIStoreDB
     com.sun.jini.outrigger.PendingTxn
     com.sun.jini.outrigger.PendingTxn.PendingOp
     com.sun.jini.outrigger.PendingTxn.TakeOp
     com.sun.jini.outrigger.PendingTxn.WriteOp
     com.sun.jini.outrigger.SimpleEntryHolder
     com.sun.jini.outrigger.TemplateHandle
     com.sun.jini.outrigger.TemplateHolder
     com.sun.jini.outrigger.TemplateHolderSet
     com.sun.jini.outrigger.TransactableChit
     com.sun.jini.outrigger.TransactableMgr
     com.sun.jini.outrigger.TypeTree
Each of these files needs to be post-processed by the PSEPro development tools. The post-processed versions of these classes make up the contents of outrigger.jar. All of the other classes (including most of the com.sun.jini.outrigger classes) required by FrontEndSpace are loaded from transient-outrigger.jar and pro.zip.

When you use the procedure described at the beginning of this page to build the Jini Technology Starter Kit, all necessary classes are (re)built from source code and, optionally, new JAR files are created and placed in the jini1_1/source/vob/jive/jars directory. The exceptions to this are outrigger.jar and pro.zip, which are copied from jini1_1/lib if you do not have the PSEPro development tools installed.

If your goal is to build a new version of any of the software except FrontEndSpace, this process allows you to modify and rebuild any source file in the Jini Technology Starter Kit. If your goal is to build a new version of FrontEndSpace, this process also allows you to modify and rebuild any files not in the exclusion list.

A note about releases of the Jini Technology Starter Kit prior to 1.1Beta

Prior to 1.1Beta, the JavaSpaces Technology Kit (JSTK) was released separately and layered on top of the Jini Technology Starter Kit. The makefiles distributed with the JSTK would cause the build process for the starter kit to break. As a result, users who installed the JSTK on top of the starter kit could no longer build the starter kit. These versions of the JSTK came with a note on building the starter kit, which indicated that users could build the Jini Technology Starter Kit if they deleted the source files associated with the JSTK.

As part of the process of integrating the JSTK into the Jini Technology Starter Kit, we have fixed the makefiles so users of the starter kit can perform a "clean" build (except for outrigger.jar) without needing to delete any source files from the distribution.


Copyright © 2000
Sun Microsystems, Inc. All Rights Reserved.