1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.waarp.openr66.server;
21
22 import org.waarp.common.logging.SysErrLogger;
23 import org.waarp.common.logging.WaarpLogger;
24 import org.waarp.common.logging.WaarpLoggerFactory;
25 import org.waarp.common.logging.WaarpSlf4JLoggerFactory;
26 import org.waarp.common.utility.Version;
27 import org.waarp.common.utility.WaarpShutdownHook;
28 import org.waarp.common.utility.WaarpSystemUtil;
29 import org.waarp.openr66.configuration.FileBasedConfiguration;
30 import org.waarp.openr66.protocol.configuration.Configuration;
31 import org.waarp.openr66.protocol.configuration.Messages;
32
33
34
35
36 public class R66Server {
37 private static WaarpLogger logger;
38
39 private R66Server() {
40 }
41
42
43
44
45 public static void main(final String[] args) {
46 WaarpLoggerFactory.setDefaultFactoryIfNotSame(
47 new WaarpSlf4JLoggerFactory(null));
48 logger = WaarpLoggerFactory.getLogger(R66Server.class);
49 if (args.length < 1) {
50 logger.error(
51 Messages.getString("Configuration.NeedConfig"));
52 return;
53 }
54 try {
55 WaarpShutdownHook.registerMain(R66Server.class, args);
56 if (initialize(args[0])) {
57 logger.warn(Messages.getString("R66Server.ServerStart") +
58 Configuration.configuration.getHostId() + " : "
59
60 + Configuration.configuration + " Version: " +
61 Version.fullIdentifier());
62 SysErrLogger.FAKE_LOGGER.sysout(
63 Messages.getString("R66Server.ServerStart") +
64 Configuration.configuration.getHostId());
65 } else {
66 logger.error(Messages.getString("R66Server.CannotStart") +
67 Configuration.configuration.getHostId());
68 SysErrLogger.FAKE_LOGGER.syserr(
69 Messages.getString("R66Server.CannotStart") +
70 Configuration.configuration.getHostId());
71 WaarpSystemUtil.systemExit(1);
72 }
73 } catch (final Throwable e) {
74 logger.error(Messages.getString("R66Server.StartError"), e);
75 }
76 }
77
78 public static boolean initialize(final String config) {
79 if (logger == null) {
80 logger = WaarpLoggerFactory.getLogger(R66Server.class);
81 }
82 if (!FileBasedConfiguration.setConfigurationServerFromXml(
83 Configuration.configuration, config, true)) {
84 logger.error(
85 Messages.getString("Configuration.NeedCorrectConfig"));
86 return false;
87 }
88 try {
89 Configuration.configuration.serverStartup();
90 } catch (final Throwable e) {
91 logger.error(Messages.getString("R66Server.StartError"), e);
92 WaarpShutdownHook.terminate(false);
93 return false;
94 }
95 return true;
96 }
97 }