org.openhab.persistence.dynamodb.internal.DynamoDBClient.java Source code

Java tutorial

Introduction

Here is the source code for org.openhab.persistence.dynamodb.internal.DynamoDBClient.java

Source

/**
 * Copyright (c) 2010-2016, openHAB.org and others.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 */
package org.openhab.persistence.dynamodb.internal;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;

/**
 * Shallow wrapper for Dynamo DB wrappers
 *
 * @author Sami Salonen
 */
public class DynamoDBClient {
    private static final Logger logger = LoggerFactory.getLogger(DynamoDBClient.class);
    private DynamoDB dynamo;
    private AmazonDynamoDBClient client;

    public DynamoDBClient(AWSCredentials credentials, Region region) {
        client = new AmazonDynamoDBClient(credentials);
        client.setRegion(region);
        dynamo = new DynamoDB(client);
    }

    public DynamoDBClient(DynamoDBConfig clientConfig) {
        this(clientConfig.getCredentials(), clientConfig.getRegion());
    }

    public AmazonDynamoDBClient getDynamoClient() {
        return client;
    }

    public DynamoDB getDynamoDB() {
        return dynamo;
    }

    public void shutdown() {
        dynamo.shutdown();
    }

    public boolean checkConnection() {
        try {
            dynamo.listTables(1).firstPage();
        } catch (Exception e) {
            logger.error("Got internal server error when trying to list tables: {}", e.getMessage());
            return false;
        }
        return true;
    }
}