import Ġcom . amazonaws . auth . profile . Profile Credentials Provider Ċ import Ġcom . amazonaws . services . dynamodb v 2 . Amazon D ynamoDB Client Builder Ċ import Ġcom . amazonaws . services . dynamodb v 2 . data modeling . D ynamoDB Mapper Ċ import Ġcom . google . inject . Abstract Module Ċ import Ġcom . google . inject . name . Names Ċ import Ġorg . apache . log 4 j . Logger Ċ import Ġkotlin . system . measure Time Millis Ċ Ċ class ĠD ynamo Module Ġ: ĠAbstract Module () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLogger . getLogger ( D ynamo Module :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun Ġconfigure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠtableName Ġ= ĠSystem . getenv ( Companion . tableName Label ) Ġ?: Ġthrow ĠIllegalArgumentException (" Need Ġ${ Companion . tableName Label } Ġenv Ġvariable ") ĊĠĠĠĠĠĠĠ Ġbind Constant (). annotated With ( Names . named ( tableName Label )). to ( tableName ) ĊĊĠĠĠĠĠĠĠ Ġ// This Ġone Ġcould Ġbe Ġthe Ġslow est Ġit Ġcan Ġtake Ġ 2 Ġseconds ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Time Ġto Ġbind Ġd ynamo : Ġduration =" Ġ+ Ġmeasure Time Millis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( D ynamoDB Mapper :: class . java ). to Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD ynamoDB Mapper ( Amazon D ynamoDB Client Builder . standard (). build ())) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠtableName Label Ġ= Ġ" table _ name " ĊĠĠĠ Ġ} Ċ }