X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-backend%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fric%2Fportal%2Fdashboard%2FDashboardApplication.java;h=3a6d6a2b890919139266d24f0721acd37f34d234;hb=refs%2Fchanges%2F82%2F2182%2F1;hp=15c082f9b4f8ad7c4b0ff0ca32dccca231297d35;hpb=f660cae7a447b60d84ef75f7c2bcbf62412d4579;p=portal%2Fric-dashboard.git diff --git a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardApplication.java b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardApplication.java index 15c082f9..3a6d6a2b 100644 --- a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardApplication.java +++ b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardApplication.java @@ -1,8 +1,8 @@ /*- * ========================LICENSE_START================================= - * ORAN-OSC + * O-RAN-SC * %% - * Copyright (C) 2019 AT&T Intellectual Property and Nokia + * Copyright (C) 2019 AT&T Intellectual Property * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,40 +17,66 @@ * limitations under the License. * ========================LICENSE_END=================================== */ + package org.oransc.ric.portal.dashboard; import java.lang.invoke.MethodHandles; +import java.util.List; +import org.oransc.ric.portal.dashboard.model.RicInstance; +import org.oransc.ric.portal.dashboard.model.RicInstanceList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; +import org.springframework.util.Assert; @SpringBootApplication -// Limit the annotation scan to the dashboard classes; -// exclude the generated client classes! +// Limit scan to dashboard classes; exclude generated API classes @ComponentScan("org.oransc.ric.portal.dashboard") -public class DashboardApplication { +public class DashboardApplication implements CommandLineRunner { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + @Autowired + private RicInstanceList instanceConfig; + public static void main(String[] args) { SpringApplication.run(DashboardApplication.class, args); - // Force this onto the console by using level WARN - logger.warn("main: version '{}' successful start", getVersion()); + } + + @Override + public void run(String... args) throws Exception { + // Ensure output appears on the console by using level WARN + logger.warn("run: version '{}'", getImplementationVersion(MethodHandles.lookup().lookupClass())); + // Validate configuration + List instances = instanceConfig.getInstances(); + Assert.notEmpty(instances, "Instance list empty"); + for (RicInstance it : instances) { + logger.warn("run: RIC instance {}", it); + Assert.hasText(it.getKey(), "Instance key missing"); + Assert.hasText(it.getName(), "Name missing for instance " + it.getKey()); + Assert.hasText(it.getAppUrlPrefix(), "App URL prefix missing for instance " + it.getKey()); + Assert.hasText(it.getCaasUrlPrefix(), "Caas URL prefix missing for instance " + it.getKey()); + Assert.hasText(it.getPltUrlPrefix(), "Plt URL prefix missing for instance " + it.getKey()); + } } /** - * Gets version details. + * Gets version details for the specified class. + * + * @param clazz + * Class to get the version * * @return the value of the MANIFEST.MF property Implementation-Version as * written by maven when packaged in a jar; 'unknown' otherwise. */ - private static String getVersion() { - Class clazz = MethodHandles.lookup().lookupClass(); + public static String getImplementationVersion(Class clazz) { String classPath = clazz.getResource(clazz.getSimpleName() + ".class").toString(); - return classPath.startsWith("jar") ? clazz.getPackage().getImplementationVersion() : "unknown"; + return classPath.startsWith("jar") ? clazz.getPackage().getImplementationVersion() : "unknown-not-jar"; } }