package Ġcom . ve ben . jav at ok otlin . kotlin . order . ext . db . config Ċ Ċ import Ġorg . springframework . context . ApplicationContext Initializer Ċ import Ġorg . springframework . context . Configurable ApplicationContext Ċ import Ġorg . test containers . containers . PostgreSQL Container Ċ Ċ internal Ġclass ĠPost gre Sql Initializer Ġ: ĠApplication Context Initializer < Configurable ApplicationContext ?> Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPOST GRES _ IMAGE Ġ= Ġ" postgres : 1 1 . 5 - alpine " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDATABASE Ġ= Ġ" order " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠUSER NAME _ PROPERTY Ġ= Ġ" spring . datasource . username " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPASS WD _ PROPERTY Ġ= Ġ" spring . datasource . password " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠURL _ PROPERTY Ġ= Ġ" spring . datasource . url " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpostgresql Container Ġ= ĠPostgreSQL Container < Nothing >( POST GRES _ IMAGE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize ( configurable ApplicationContext : ĠConfigur able ApplicationContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpostgresql Container ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Database Name ( DATABASE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Username ( configurable ApplicationContext . environment . getProperty ( USERNAME _ PROPERTY )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Password ( configurable ApplicationContext . environment . getProperty ( PASS WD _ PROPERTY )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () ĊĊĠĠĠĠĠĠĠ Ġconfigurable ApplicationContext . environment . system Properties [ URL _ PROPERTY ] Ġ= Ġpostgresql Container . jdbc Url ĊĠĠĠ Ġ} Ċ }