M. G. J. van den Brand

15 papers A 1B 2Journal 5Unranked 7
YearRankTypeTitle / Venue / Authors
2025 conf
SIGSOFT FSE Companion
Miguel Botto-Tobar, Alexander Serebrenik, M. G. J. van den Brand
2016 A conf
ICSME
J. G. M. Mengerink, Alexander Serebrenik, Ramon R. H. Schiffelers, M. G. J. van den Brand
2014 J jnl
Sci. Comput. Program.
Kim Mens, M. G. J. van den Brand, Holger M. Kienle
2013 J jnl
IET Softw.
Serguei A. Roubtsov, Alexander Serebrenik, Aurélien Mazoyer, M. G. J. van den Brand, Ella E. Roubtsova
2011 B conf
GPCE
B. J. Arnoldus, M. G. J. van den Brand, Alexander Serebrenik
2011 conf
MtATL@TOOLS
M. F. van Amstel, M. G. J. van den Brand
2011 conf
ICST Workshops
M. F. van Amstel, M. G. J. van den Brand, Luc J. P. Engelen
2011 conf
SSIRI (Companion)
M. F. van Amstel, M. G. J. van den Brand, Luc J. P. Engelen
2008 J jnl
Sci. Comput. Program.
M. G. J. van den Brand
2008 B conf
SLE
M. G. J. van den Brand
2007 J jnl
Sci. Comput. Program.
M. G. J. van den Brand
2007 conf
CSMR
M. G. J. van den Brand, Magiel Bruntink, G. R. Economopoulos, H. A. de Jong, Paul Klint, A. Taeke Kooiker, Tijs van der Storm, Jurgen J. Vinju
2006 conf
CSMR
M. G. J. van den Brand, A. Taeke Kooiker, Jurgen J. Vinju, Niels P. Veerman
2006 conf
WCRE
E. Korshunova, Marija Petkovic, M. G. J. van den Brand, Mohammad Reza Mousavi
1997 J jnl
ACM SIGSOFT Softw. Eng. Notes
M. G. J. van den Brand, Paul Klint, Chris Verhoef
redb/settings/elasticsearch.py
← Index redb/settings/elasticsearch.py python
import logging
import os

from elasticsearch import Elasticsearch
from dotenv import load_dotenv

load_dotenv()

# Elasticsearch configuration
ELASTIC_ENDPOINT = os.getenv("ELASTIC_HOST")
ELASTIC_ENFORCE_SSL = os.getenv("ELASTIC_ENFORCE_SSL", False) == "True"
ELASTIC_USER = os.getenv("ELASTIC_USER")
ELASTIC_PASSWORD = os.getenv("ELASTIC_PASSWORD")
ELASTIC_BINARIES_COLLECTION = os.getenv("ELASTIC_BINARIES_COLLECTION", "test_db")

# Cached client instance
_elasticsearch_client = None

def get_elasticsearch_client():
    """Get Elasticsearch client with lazy initialization and caching"""
    global _elasticsearch_client
    
    if _elasticsearch_client is None:
        if not ELASTIC_ENDPOINT:
            raise ValueError("ELASTIC_HOST environment variable is required for Elasticsearch connection")
            
        _elasticsearch_client = Elasticsearch(
            ELASTIC_ENDPOINT,
            verify_certs=ELASTIC_ENFORCE_SSL,
            basic_auth=(ELASTIC_USER, ELASTIC_PASSWORD),
            maxsize=20,
            retry_on_timeout=True,
            timeout=30,
        )
    
    return _elasticsearch_client

def create_elasticsearch_client():
    """Create a new Elasticsearch client connection (legacy function)"""
    return get_elasticsearch_client()