1 package fr.ifremer.quadrige3.batch;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 import fr.ifremer.quadrige3.core.config.QuadrigeConfiguration;
25 import fr.ifremer.quadrige3.core.exception.QuadrigeTechnicalException;
26 import fr.ifremer.quadrige3.core.service.ServiceLocator;
27 import org.apache.commons.io.FileUtils;
28 import org.apache.commons.io.IOUtils;
29 import org.apache.commons.logging.Log;
30 import org.apache.commons.logging.LogFactory;
31 import org.nuiton.config.ApplicationConfig;
32 import org.nuiton.i18n.I18n;
33 import org.nuiton.i18n.init.DefaultI18nInitializer;
34 import org.nuiton.i18n.init.UserI18nInitializer;
35
36 import java.io.File;
37 import java.io.IOException;
38 import java.util.Arrays;
39 import java.util.Locale;
40
41
42
43
44
45
46
47 public class BatchesServerMain {
48
49
50 private static final Log log = LogFactory.getLog(BatchesServerMain.class);
51
52
53
54
55
56
57
58
59
60 public static void main(String[] args) {
61 if (log.isInfoEnabled()) {
62 log.info("Starting Quadrige3 :: Batch for Server with arguments: " + Arrays.toString(args));
63 }
64
65
66 if (args == null || args.length == 0) {
67 args = new String[] { "-h" };
68 }
69
70
71 String configFile = "quadrige3-core.config";
72 if (System.getProperty(configFile) != null) {
73 configFile = System.getProperty(configFile);
74 configFile = configFile.replaceAll("\\\\", "/");
75 }
76
77
78 QuadrigeConfiguration config = new QuadrigeConfiguration(configFile, args) {
79 protected void addAlias(ApplicationConfig applicationConfig) {
80 super.addAlias(applicationConfig);
81
82
83 }
84 };
85 QuadrigeConfiguration.setInstance(config);
86
87
88 try {
89 initI18n(config);
90 } catch (IOException e) {
91 throw new QuadrigeTechnicalException("i18n initialization failed", e);
92 }
93
94 try {
95 config.getApplicationConfig().doAllAction();
96 } catch (Exception e) {
97 log.error("Error in action", e);
98 }
99
100 IOUtils.closeQuietly(ServiceLocator.instance());
101 }
102
103
104
105
106
107
108
109
110
111
112
113 protected static void initI18n(QuadrigeConfiguration config) throws IOException {
114
115
116
117
118 File i18nDirectory = new File(config.getDataDirectory(), "i18n");
119 if (i18nDirectory.exists()) {
120
121 FileUtils.cleanDirectory(i18nDirectory);
122 }
123
124 FileUtils.forceMkdir(i18nDirectory);
125
126 if (log.isDebugEnabled()) {
127 log.debug("I18N directory: " + i18nDirectory);
128 }
129
130 Locale i18nLocale = config.getI18nLocale();
131
132 if (log.isInfoEnabled()) {
133 log.info(String.format("Starts i18n with locale [%s] at [%s]",
134 i18nLocale, i18nDirectory));
135 }
136 I18n.init(new UserI18nInitializer(
137 i18nDirectory, new DefaultI18nInitializer(getI18nBundleName())),
138 i18nLocale);
139 }
140
141
142
143
144
145
146
147
148 protected static String getI18nBundleName() {
149 return "quadrige3-batches-server-i18n";
150 }
151 }