protected function openConnection()
    {
        // set standard values
        $this->configuration = array_merge([
            'host' => 'localhost',
            'database' => '',
            'username' => '',
            'password' => '',
            'table-prefix' => 'saft_',
        ], $this->configuration);

        /*
         * check for missing connection credentials
         */
        if ('' == $this->configuration['database']) {
            throw new \Exception('ARC2: Field database is not set.');
        } elseif ('' == $this->configuration['username']) {
            throw new \Exception('ARC2: Field username is not set.');
        } elseif ('' == $this->configuration['host']) {
            throw new \Exception('ARC2: Field host is not set.');
        }

        // init store
        $this->store = \ARC2::getStore([
            'db_host' => $this->configuration['host'],
            'db_name' => $this->configuration['database'],
            'db_user' => $this->configuration['username'],
            'db_pwd' => $this->configuration['password'],
            'store_name' => $this->configuration['table-prefix'],
        ]);
    }