# Installation

This guide explains how to install the prerequisites, set up the SDK in IntelliJ IDEA, and configure your first project.

### Prerequisites

Before you start, make sure the following tools are installed:

1. **Java Development Kit (JDK)**
   * Version: **Java 8 or higher** (LTS versions recommended).
   * Verify installation:

     ```bash
     java -version
     ```
2. **Apache Maven** (build & dependency management)
   * Verify installation:

     ```bash
     mvn -version
     ```
3. **Git** (for cloning the example project)
   * Verify installation:

     ```bash
     git --version
     ```
4. **IntelliJ IDEA** (recommended IDE)
   * Community or Ultimate Edition works.
   * Download from [JetBrains](https://www.jetbrains.com/idea/).

{% stepper %}
{% step %}

### Clone the Example Project

Clone the official Unified Odds SDK example project from GitHub:

```bash
git clone https://github.com/sportradar/UnifiedOddsSdkJava.git
cd UnifiedOddsSdkJava
```

> 💡 If you prefer, you can also [download the project as a ZIP](https://github.com/sportradar/UnifiedOddsSdkJava/archive/refs/heads/master.zip) and extract it.
> {% endstep %}

{% step %}

### Open in IntelliJ IDEA

<figure><img src="https://1868790214-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1KlIQPveu0EGYCTI8DL1%2Fuploads%2FMPp6hwqFvEUsWRsaeS1J%2Fannotely_image%20(35).png?alt=media&#x26;token=f82dccc7-12d2-4a2d-9aac-0046a423699c" alt=""><figcaption></figcaption></figure>

* Launch **IntelliJ IDEA**.
* Go to: **File → New → Project from Existing Sources…**
* Select the `pom.xml` file inside the cloned repository.
* Choose **Maven** as the project type.

> **IntelliJ will automatically import dependencies and set up the project.**
> {% endstep %}

{% step %}

### **Verify Maven Setup**

<figure><img src="https://1868790214-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1KlIQPveu0EGYCTI8DL1%2Fuploads%2FauDNxfX3Yd2Pti2xaiS6%2Fannotely_image%20(36).png?alt=media&#x26;token=76a4f12d-1e30-478c-8052-c6a4bc0c423c" alt=""><figcaption></figcaption></figure>

* In IntelliJ, go to the right-hand side **Maven tool window** click → **Maven**.
* Click **Reload Project** (the refresh 🔄 button).

{% hint style="success" %}
This forces IntelliJ to re-import the `pom.xml`, download any new dependencies, and update the project structure accordingly.
{% endhint %}
{% endstep %}

{% step %}

### Update the SDK Version (Optional)

The SDK version is controlled in the `pom.xml` file. To use a specific version:

```xml
<dependency>
  <groupId>com.sportradar</groupId>
  <artifactId>unifiedfeed-sdk</artifactId>
  <version>2.0.59.0</version>
</dependency>
```

Change the version number and reload Maven to apply the update.
{% endstep %}

{% step %}

### Configure the SDK

The example project includes a starter class:

```
src/main/java/.../UofSdkExamples.java
```

Edit the configuration inside it:

```java
import com.sportradar.unifiedodds.sdk.OddsFeed;
import com.sportradar.unifiedodds.sdk.OddsFeedConfiguration;
import java.util.Locale;
import java.util.Arrays;
import java.util.List;

public class BasicOddsFeedExampleMain {
    public static void main(String[] args) {
        // Example: disable certain producers if needed
        List<Integer> DisabledProducerList = Arrays.asList(3, 5);

        OddsFeedConfiguration config = OddsFeed
            .getOddsFeedConfigurationBuilder()
            .setAccessToken("abcd1234lubljanajebulana")   // Replace with your access token
            .selectIntegration()                          // Integration environment for testing
            .setSdkNodeId(42)                             // Unique ID for this SDK instance
            .setDefaultLocale(Locale.ENGLISH)             // Language for translations
            .setDisabledProducers(DisabledProducerList)   // Optional
            .build();

        // Initialize SDK with the above configuration...
    }
}
```

{% hint style="info" %}

#### Key Parameters

* **Access Token**: Your Sportradar API token.
* **Environment**:
  * `.selectIntegration()` → Test environment
  * `.selectProduction()` → Live environment
* **SDK Node ID**: Must be unique per SDK instance.
* **Locale**: Choose the default language (e.g. `Locale.ENGLISH`).
* **Disabled Producers**: (Optional) IDs of producers to exclude.
  {% endhint %}

{% endstep %}
{% endstepper %}
