Passing the Jini(TM) Technology Lookup, Discovery, and Join Compatibility Kit
v1.0


1   Overview

The Jini(TM) Technology Lookup, Discovery, and Join Compatibility Kit (LDJ Kit) validates whether you have conformed to the Jini technology specifications. This document describes what it means to "pass the LDJ Kit".

You can use the LDJ Kit in two ways: verifying and unofficial. A verifying run can be used to verify conformance of your program to the tests of the LDJ Kit. An unofficial use is one that uses the LDJ Kit harness in a way that is not sufficient for these purposes, although you may find it helpful for other purposes. For example, you might find that your program initially fails a particular test. You can use unofficial executions of the LDJ Kit to debug the problem by running only that test instead of the entire test suite. When you have fixed things, you will then need a verifying run to confirm your program's conformance.

This document defines what you must do to create a verifying run of the LDJ Kit for a single program. Anything you do in the execution of an LDJ Kit run that does not conform to this document makes that run an unofficial run. Each separate program must independently satisfy the requirements expressed in this document.

The LDJ Kit consists of several parts:

When you receive the LDJ Kit you will get all these parts in a single file. After extracting the LDJ Kit on your system you can use the included instructions to run the LDJ Kit.

2   Verifying Runs

The LDJ Kit contains a test harness and a set of tests that are run using the harness. A verifying run is made up of one or more separate official runs of the LDJ Kit. An official run of the LDJ Kit is a single execution of the harness that meets certain requirements.

2.1   Official Run Requirements

An official run of the LDJ Kit is a single execution of the harness that meets the following requirements:

  1. You must use an unmodified version of the LDJ Kit as it is shipped. For example, you must not use a version of the LDJ Kit that has been built from the source shipped to you with the LDJ Kit, whether or not that source has been modified from the original.
  2. You must not have modified any files in the installation directory of the LDJ Kit. For example, if you want to use a configuration properties file different from the default shipped with the LDJ Kit, you must make a copy of that file, modify the copy, and tell the LDJ Kit harness to use your modified copy.
  3. All tests relevant to your program category must be executed. You must select the correct category for your program, depending upon its behavior. For example, if your program is a Jini technology-enabled service (Jini service) that also acts as a Jini technology-enabled client (Jini client), then you'll need to run both the client and service tests against your program to be considered conformant. If your program is a Jini lookup service that also acts as a Jini service (registers in other lookups), then you'll need to run both the service and lookup tests against your program. You must therefore run the LDJ Kit with a -categories option or a com.sun.jini.compat.categories property that includes all relevant program categories and no irrelevant program categories.
  4. The following option must not be used: -tests.
  5. The following properties must have their default values in an official run: com.sun.jini.compat.debugLevel, com.sun.jini.compat.unofficialQuietTime.
  6. You must run the LDJ Kit using a Java 2 SDK Standard Edition (J2SE(TM)) or Enterprise Edition (J2EE(TM)) virtual machine for the Java platform. The java executable that the LDJ Kit harness will get by invoking the method Runtime.exec with a string starting with "java" must also provide a J2SE or J2EE virtual machine.
  7. Your program must be run in a network that is a reasonable example of at least one of your intended deployment configurations.

You have many options on how you execute an official run. Any circumstance that causes a failure in the LDJ Kit harness or any of its tests is your responsibility to fix. Among the options you have are:

  1. You may run your program anywhere in the network.
  2. You may run the LDJ Kit on any system in your network.
  3. You may run the LDJ Kit using any J2SE or J2EE virtual machine, but if you encounter problems, you should try one of the platforms on which we have verified the correctness of the LDJ Kit, listed at http://java.sun.com/developer/products/jini/tested.html.
  4. Your network may be of any quality. Clearly a less reliable network increases the likelihood of some failures.
  5. You may write an implementation of the appropriate Admin interfaces (described in Implementing the Jini Technology Lookup, Discovery, and Join Compatibility Kit, v1.0 Admin Interface) to automate your test runs.
  6. You may adjust the property com.sun.jini.compat.failureTime to any length of time.
  7. If your program is user configurable, only a single configuration is required to pass a verifying run.

2.2   Verifying Run

A verifying run of the LDJ Kit consists of one or more official runs that satisfy the following requirements:

  1. Each individual test in the selected categories must pass (defined below) at least 66% of the time in the set of official runs. For example, if all tests in one run pass, you are at 100% for each test; if you make several test runs, each test must pass 66% of the time over the span of runs.
  2. Your program implementation must not be modified between runs.
  3. Any implementation of the Admin interfaces you use in the LDJ Kit must not be modified between runs.
  4. Any external files relied upon by the test (such as properties and security files) must not be modified between runs.
  5. The configuration of your program must not change between runs. For example, if your service is a program, the command line used to execute it must be the same in all official runs.
  6. There must be no additional official runs of the LDJ Kit against your program between the start of the first official run and the end of the final official run. For example, a set of consecutive official runs would satisfy this requirement.

A test is passed if it is executed in an official run and the test reports its status as Passed.


Copyright 2005, Sun Microsystems, Inc.
Licensed under the Apache License, Version 2.0.