##### Quick Links

- Home
- Getting Started
- Download
- Overview
- FAQ
- Documentation

##### Developers

- Building Rio

##### Sub Projects

- Rio Installers
- Rio QA
- Rio Substrates
- Rio Utilities
- Classdepandjar

##### Project Documentation

- Project Information

## Where to Start?

### Release Information

Rio requires JDK 1.5.x or greater. If you have downloaded the "with-dependencies" distribution, you will have all the necessary prerequisites to start and/or build the Rio distribution.

The "with-dependencies" distribution includes the following third party technology: CGLIB 2.1_3, Emory Utilities, Commons Collections 3.2, Commons Logging 1.1, JUnit 4.4, Jini 2.1, Prefuse Visualization Toolkit, Classdepandjar, JMX Lookup for Jini [JSR 160], Service UI 1.1.a.

The basic release is ~ 5.9 MB

The "with-dependencies" release is ~ 10 MB

### Examining the distribution

Once you have unzipped the distribution, you will have a rio3.3-M1 directory containing the following items:

- bin - The directory that contains command to start Rio services
- config - Directory that contais configuration for Rio services and platform
- deploy - The default deploy directory and used to service deployed application resources.
- docs - The directory that contains API documentation, and other documentation
- examples - Contains examples of how to develop and deploy applications using Rio
- lib - The directory where the JAR files are located. If you have downloaded the "with-dependencies" distribution, all of the thrd party jars are included in this directory as well.
- logs - This directory contains log files for Rio
- policy - The directory that contains a policy file
- src - Source code for Rio

### Starting Rio

The `<rio-home>/bin` directory contains starter script (and .bat) files to start Services and Utilities provided by Rio.

The `rio` script is the the command and control utility for starting Rio services and the Rio command line interface. All of the other scripts are wrappers around the `rio` script. The convention for starting services using the `rio` scripts is as follows:

- `rio start` service-starter

For example:

- `rio start cybernode`

  Will use the `config/start-cybernode.config` file

- `rio start all`

  Will use the `config/start-all.config` file

The following scripts are shortcuts for starting the basic services in Rio:

- cybernode - Starts a Cybernode and a Webster on an anonymous port
- monitor - Starts a Provision Monitor, a transient Jini Lookup service and a Webster on port 9010
- webster - Starts a Webster on port 9010
- startall - Starts a Webster on port 9010, a Cybernode, Provision Monitor and a transient Jini Lookup Service

By just running `rio`, you will be put into the interactive command line shell:

    Welcome to the Rio Interactive Shell Program. You can interact
    with the Rio using the following commands :

    list     http     deploy   destroy  dir
    help     pwd      jconsole redeploy set
    undeploy cd       ls       stats

    For help on any of these commands type help [command].
    To leave this program type quit

    rio> _

### Rio Examples

The examples in this directory provide an introduction towards developing and deploying services using Rio. The following examples are included in the distribution:

- Bean - This is a simple example of a Hello World Plain Old Java Object(POJO) using Rio.
- Calculator - The Calculator example demonstrates a simple Calculator application composed of POJO services for each Calculator service (add, subtract, mulitple, divide). The example shows the use of associations and how association based dependency injection is used
- ServiceBean - A Hello World example, this time using the ServiceBean approach.
- SpringBean - Shows how to bundle a simepl Spring applications and deploy it.
- Events - The Event example demonstrates the use of the Rio event framework to subscribe to and be notified of events. Both services in this example are implemented as simple beans, client access to the example is done using either a CLI. The use of Watches is also shown in this example. The Watch data collected can be viewed by using Rio Monitor UI (`java -jar lib/rio-ui.jar`).