5
5
import java .util .Arrays ;
6
6
import java .util .HashSet ;
7
7
import java .util .List ;
8
+ import java .util .Optional ;
8
9
import java .util .concurrent .ExecutorService ;
9
10
import java .util .concurrent .LinkedBlockingQueue ;
10
11
import java .util .concurrent .ThreadPoolExecutor ;
38
39
@ Slf4j
39
40
public class HttpServer {
40
41
42
+ private static final String VERSION_FQN = "info.unterrainer.commons.httpserver.Information" ;
41
43
private Javalin javalin ;
42
44
private HttpServerConfiguration config ;
43
45
private String applicationName ;
@@ -46,16 +48,20 @@ public class HttpServer {
46
48
private final List <HandlerGroup > handlerGroups = new ArrayList <>();
47
49
private List <HandlerInstance > handlerInstances = new ArrayList <>();
48
50
ExecutorService executorService ;
51
+ List <String > appVersionFqns ;
49
52
50
53
private HttpServer () {
51
54
}
52
55
53
56
@ Builder
54
57
private HttpServer (final String configPrefix , final String applicationName , final MapperFactory orikaFactory ,
55
- final JsonMapper jsonMapper , final ExecutorService executorService ) {
58
+ final JsonMapper jsonMapper , final ExecutorService executorService , final String ... appVersionFqns ) {
56
59
config = HttpServerConfiguration .read (configPrefix );
57
60
this .applicationName = applicationName ;
58
61
this .executorService = executorService ;
62
+ this .appVersionFqns = new ArrayList <>(List .of (Optional .ofNullable (appVersionFqns ).orElse (new String [0 ])));
63
+ if (!this .appVersionFqns .contains (VERSION_FQN ))
64
+ this .appVersionFqns .add (VERSION_FQN );
59
65
if (executorService == null )
60
66
this .executorService = new ThreadPoolExecutor (1 , 200 , 0L , TimeUnit .MILLISECONDS ,
61
67
new LinkedBlockingQueue <Runnable >());
@@ -109,7 +115,7 @@ private void create() {
109
115
});
110
116
111
117
get ("/" , new AppNameHandler (applicationName ));
112
- get ("/version" , new AppVersionHandler ());
118
+ get ("/version" , new AppVersionHandler (appVersionFqns ));
113
119
get ("/datetime" , new DateTimeHandler ());
114
120
get ("/health" , new HealthHandler ());
115
121
0 commit comments