X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fserver%2FAbsServiceStarter.java;h=af549356cb361d37da4ea9fa515d298744d5460a;hb=475da40b0d58acdf4dd1a3590c490ce7b95a1af8;hp=1bc367e6559b2d56939a205fdde57526b4a379ad;hpb=e2fa0e67712b92c69f6863afe10c1c973a068e3e;p=aaf%2Fauthz.git diff --git a/auth/auth-core/src/main/java/org/onap/aaf/auth/server/AbsServiceStarter.java b/auth/auth-core/src/main/java/org/onap/aaf/auth/server/AbsServiceStarter.java index 1bc367e6..af549356 100644 --- a/auth/auth-core/src/main/java/org/onap/aaf/auth/server/AbsServiceStarter.java +++ b/auth/auth-core/src/main/java/org/onap/aaf/auth/server/AbsServiceStarter.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -19,17 +19,20 @@ * */ package org.onap.aaf.auth.server; +import java.io.File; import java.io.IOException; +import java.net.Inet4Address; +import java.net.UnknownHostException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; import org.onap.aaf.auth.org.OrganizationException; import org.onap.aaf.auth.org.OrganizationFactory; import org.onap.aaf.auth.rserv.RServlet; import org.onap.aaf.cadi.Access; import org.onap.aaf.cadi.Access.Level; +import org.onap.aaf.cadi.config.Config; import org.onap.aaf.cadi.register.Registrant; import org.onap.aaf.cadi.register.Registrar; import org.onap.aaf.misc.env.Trans; @@ -37,67 +40,79 @@ import org.onap.aaf.misc.rosetta.env.RosettaEnv; public abstract class AbsServiceStarter implements ServiceStarter { private Registrar registrar; - private boolean do_register; + private boolean doRegister; protected AbsService service; + protected String hostname; + protected final boolean secure; - public AbsServiceStarter(final AbsService service, boolean noexit) { + public AbsServiceStarter(final AbsService service, boolean secure) { + this.secure = secure; this.service = service; try { OrganizationFactory.init(service.env); } catch (OrganizationException e) { service.access.log(e, "Missing defined Organization Plugins"); - if(!noexit) { - System.exit(3); - } + System.exit(3); } // do_register - this is used for specialty Debug Situations. Developer can create an Instance for a remote system // for Debugging purposes without fear that real clients will start to call your debug instance - do_register = !"TRUE".equalsIgnoreCase(access().getProperty("aaf_locate_no_register",null)); + doRegister = !"TRUE".equalsIgnoreCase(access().getProperty("aaf_locate_no_register",null)); + hostname = access().getProperty(Config.HOSTNAME, null); + if (hostname==null) { + try { + hostname = Inet4Address.getLocalHost().getHostName(); + } catch (UnknownHostException e) { + hostname= "cannotBeDetermined"; + } + } _propertyAdjustment(); } - - public abstract void _start(RServlet rserv) throws Exception; - public abstract void _propertyAdjustment(); - + + + protected abstract void _start(RServlet rserv) throws Exception; + protected abstract void _propertyAdjustment(); + public ENV env() { return service.env; } - + public Access access() { return service.access; } @Override public final void start() throws Exception { - ExecutorService es = Executors.newSingleThreadExecutor(); - Future app = es.submit(this); + ExecutorService es = Executors.newSingleThreadExecutor(); + Future app = es.submit(this); final AbsServiceStarter absSS = this; - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override + // Docker/K8 may separately create startup Status in this dir for startup + // sequencing. If so, delete ON EXIT + Runtime.getRuntime().addShutdownHook(new Thread() { + @Override public void run() { - absSS.access().printf(Level.INIT, "Shutting down %s:%s\n",absSS.service.app_name, absSS.service.app_version); - absSS.shutdown(); - app.cancel(true); - } - }); - if(System.getProperty("ECLIPSE", null)!=null) { - Thread.sleep(2000); - System.out.println("Service Started in Eclipse: "); - System.out.print(" Hit to end:"); - try { - System.in.read(); - System.exit(0); - } catch (IOException e) { - } - } - + absSS.access().printf(Level.INIT, "Shutting down %s:%s\n",absSS.service.appName, absSS.service.appVersion); + absSS.shutdown(); + app.cancel(true); + } + }); + if(System.getProperty("ECLIPSE", null)!=null) { + Thread.sleep(2000); + if(!app.isCancelled()) { + System.out.println("Service Started in Eclipse: "); + System.out.print(" Hit to end:\n"); + try { + System.in.read(); + System.exit(0); + } catch (IOException e) { + } + } + } } - @SafeVarargs public final synchronized void register(final Registrant ... registrants) { - if (do_register) { + if (doRegister) { if (registrar==null) { registrar = new Registrar(env(),false); } @@ -108,21 +123,43 @@ public abstract class AbsServiceStarter