An open API service indexing awesome lists of open source software.

https://github.com/yandex-qatools/embedded-services

Embedded MongoDB/PostgreSQL for your tests
https://github.com/yandex-qatools/embedded-services

Last synced: 5 months ago
JSON representation

Embedded MongoDB/PostgreSQL for your tests

Awesome Lists containing this project

README

          

# Embedded services
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/ru.yandex.qatools.embed/embedded-services/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/ru.yandex.qatools.embed/embedded-services) [![covarage](https://img.shields.io/sonar/http/sonar.qatools.ru/ru.yandex.qatools.embed:embedded-services/coverage.svg?style=flat)](http://sonar.qatools.ru/dashboard/index/887)

This project allows you to easily start your project with the embedded database (PostgreSQL, MongoDB) services and connect
them with the embedded ElasticSearch instance for full text indexing and search.

## Why?

It's very easy to incorporate the embedded MongoDB/PostgreSQL within your test process.

### Maven

Add the following dependency to your pom.xml:
```xml

ru.yandex.qatools.embed
embedded-services
1.21

```
## How to run embedded MongoDB with ElasticSearch

```java
// Starting the embedded services within temporary dir
MongoEmbeddedService mongo = new MongoEmbeddedService(
"localhost:27017", "dbname", "username", "password", "localreplica"
);
mongo.start();
ElasticMongoIndexingService elastic = new ElasticMongoIndexingService(
"localhost:27017", "dbname", "username", "password"
);
elastic.start();

// Indexing collection `posts`
elastic.addToIndex("posts");

// Searching within collection `posts` using Elastic (IndexingResult contains id of each post)
List posts = elastic.search("posts", "body:(lorem AND NOT ipsum)")
```

## How to run embedded PostgreSQL with ElasticSearch

```java
// Starting the embedded services within temporary dir
PostgresEmbeddedService postgres = new PostgresEmbeddedService(
"localhost", 5429, "username", "password", "dbname"
);
postgres.start();
ElasticPostgresIndexingService elastic = new ElasticPostgresIndexingService(
Driver.class, "postgresql", "", "localhost", 5429, "username", "password", "dbname"
);
elastic.start();

// Indexing table `posts`
elastic.addToIndex("posts");

// Searching within table `posts` using Elastic (IndexingResult contains id of each post)
List posts = elastic.search("posts", "body:(lorem AND NOT ipsum)")
```