Fork me on GitHub

Introduction

Toolkit of capabilities
Eve in Java has evolved significantly since its original creation. Starting from release 3.0 Eve is a toolkit to add agent capabilities to your POJOs. There is no longer a host-environment which needs to be configured, nor are you forced to extend the Agent class. You can easily pick capabilities that suit your particular need, the capabilities carry no interdependencies, nor assumptions about the structure of your agents. However, for ease of use, there is still the option of extending the Agent class, but this is no longer a requirement.

This is the home of the Java implementation of Eve. Through Eve you can either develop agent solutions from scratch or add agent capabilities to your existing Java application. Eve consists of a series of Java library projects, that provide agent capabilities to your POJOs. For dedicated agent applications, there are also various standard Agent classes, which act like templates to the capabilities.

Our build environment is managed through Maven and we are deployed to Maven Central. Another possibility to obtain Eve is through a code checkout from Github.

For the development roadmap you can refer to our Trello board.

The documentation consists of a couple of sections:

Besides this documentation, the best place to get familiar with Eve code is by looking through the “/tests/src/test/java/com/almende/eve/test/*” code.

Maven

To add the Eve libraries to a maven project, add one of the following dependencies to the projects pom.xml file. Although it is possible to add the libraries independently, it is highly advisable to use one of the bundle packages.

This is a bundle incorporating all Eve libraries, aimed to be included in an existing webapplication.
<dependency>
    <groupId>com.almende.eve</groupId>
    <artifactId>eve-bundle-full</artifactId>
    <version>3.1.1</version>
</dependency>
This is a bundle incorporating all Eve libraries, including an embedded Jetty setup. This bundle is aimed to provide a fully standalone setup.
<dependency>
    <groupId>com.almende.eve</groupId>
    <artifactId>eve-bundle-full-embed</artifactId>
    <version>3.1.1</version>
</dependency>
This is a bundle for using Eve on Android devices, using XMPP as the transport.
<dependency>
    <groupId>com.almende.eve</groupId>
    <artifactId>eve-bundle-android</artifactId>
    <version>3.1.1</version>
</dependency>
This is a bundle for using Eve on Android devices, using Websockets as the transport.
<dependency>
    <groupId>com.almende.eve</groupId>
    <artifactId>eve-bundle-android-ws</artifactId>
    <version>3.1.1</version>
</dependency>

Library structure

Eve is structured around a common Capability model. Various agent capabilities are provided: State storage, scheduling, transports, agent lifecycle, etc. These capabilities are provided in Java libraries.

The libraries have the following top-level structure:

(foldername (artifactid) - description)

Site last rendered 30 March 2015