data: Separate data to be maintained from installed Yona
Instead of YONA_HOME, use YONA_DATA. If you set a YONA_DATA and run bin/yona, conf, uploads, repos, logs will be stored at YONA_DATA folder. eg. YONA_DATA=/yona-data;export YONA_DATA bin/yona It will make easy to upgrade and backup YONA_HOME is no longer needed.
@1b3db0cf6964cd4e4aa1d2e40f573babd89df8de
--- app/Global.java
+++ app/Global.java
... | ... | @@ -390,12 +390,12 @@ |
390 | 390 |
* @return the path to the directory to store configuration files |
391 | 391 |
*/ |
392 | 392 |
static Path getDirectoryPath() { |
393 |
- return Paths.get(Config.getYobiHome(""), CONFIG_DIRNAME); |
|
393 |
+ return Paths.get(Config.getYonaDataDir(""), CONFIG_DIRNAME); |
|
394 | 394 |
} |
395 | 395 |
|
396 | 396 |
boolean isExternal() throws IOException, URISyntaxException { |
397 | 397 |
return !FileUtil.isSubpathOf(getPath(), getDirectoryPath()) && |
398 |
- !FileUtil.isSubpathOf(getPath(), Paths.get(Config.getYobiHome())); |
|
398 |
+ !FileUtil.isSubpathOf(getPath(), Paths.get(Config.getYonaDataDir())); |
|
399 | 399 |
} |
400 | 400 |
} |
401 | 401 |
} |
--- app/models/Attachment.java
+++ app/models/Attachment.java
... | ... | @@ -271,7 +271,7 @@ |
271 | 271 |
} |
272 | 272 |
|
273 | 273 |
public static File getUploadDirectory() { |
274 |
- return new File(utils.Config.getYobiHome(), uploadDirectory); |
|
274 |
+ return new File(utils.Config.getYonaDataDir(), uploadDirectory); |
|
275 | 275 |
} |
276 | 276 |
|
277 | 277 |
/** |
--- app/playRepository/GitRepository.java
+++ app/playRepository/GitRepository.java
... | ... | @@ -961,11 +961,11 @@ |
961 | 961 |
} |
962 | 962 |
|
963 | 963 |
private static File getRootDirectory() { |
964 |
- return new File(utils.Config.getYobiHome(), getRepoPrefix()); |
|
964 |
+ return new File(utils.Config.getYonaDataDir(), getRepoPrefix()); |
|
965 | 965 |
} |
966 | 966 |
|
967 | 967 |
private static File getRootDirectoryForMerging() { |
968 |
- return new File(utils.Config.getYobiHome(), getRepoForMergingPrefix()); |
|
968 |
+ return new File(utils.Config.getYonaDataDir(), getRepoForMergingPrefix()); |
|
969 | 969 |
} |
970 | 970 |
|
971 | 971 |
/** |
--- app/playRepository/SVNRepository.java
+++ app/playRepository/SVNRepository.java
... | ... | @@ -420,6 +420,6 @@ |
420 | 420 |
} |
421 | 421 |
|
422 | 422 |
public static File getRootDirectory() { |
423 |
- return new File(Config.getYobiHome(), getRepoPrefix()); |
|
423 |
+ return new File(Config.getYonaDataDir(), getRepoPrefix()); |
|
424 | 424 |
} |
425 | 425 |
} |
--- app/utils/Config.java
+++ app/utils/Config.java
... | ... | @@ -38,6 +38,7 @@ |
38 | 38 |
|
39 | 39 |
public class Config { |
40 | 40 |
public static final String DEFAULT_SCHEME = "http"; |
41 |
+ private static final String YONA_DATA = "yona.data"; //property from java -Dyona.data option string |
|
41 | 42 |
|
42 | 43 |
public static void onStart() { |
43 | 44 |
Diagnostic.register(new SimpleDiagnostic() { |
... | ... | @@ -286,12 +287,12 @@ |
286 | 287 |
return Charset.forName("UTF-8"); |
287 | 288 |
} |
288 | 289 |
|
289 |
- public static String getYobiHome() { |
|
290 |
- return System.getProperty("yobi.home"); |
|
290 |
+ public static String getYonaDataDir() { |
|
291 |
+ return System.getProperty(YONA_DATA); |
|
291 | 292 |
} |
292 | 293 |
|
293 |
- public static String getYobiHome(String defaultValue) { |
|
294 |
- return System.getProperty("yobi.home", defaultValue); |
|
294 |
+ public static String getYonaDataDir(String defaultValue) { |
|
295 |
+ return System.getProperty(YONA_DATA, defaultValue); |
|
295 | 296 |
} |
296 | 297 |
|
297 | 298 |
public static boolean getDisplayPrivateRepositories() { |
--- build.sbt
+++ build.sbt
... | ... | @@ -89,8 +89,12 @@ |
89 | 89 |
|[ -z "$YONA_HOME" ] && YONA_HOME=$(cd "$(realpath "$(dirname "$(realpath "$0")")")/.."; pwd -P) |
90 | 90 |
|addJava "-Dyobi.home=$YONA_HOME" |
91 | 91 |
| |
92 |
- |yobi_config_file="$YONA_HOME"/conf/application.conf |
|
93 |
- |yobi_log_config_file="$YONA_HOME"/conf/application-logger.xml |
|
92 |
+ |[ -z "$YONA_DATA" ] && YONA_DATA=$(cd "$(realpath "$(dirname "$(realpath "$0")")")/.."; pwd -P) |
|
93 |
+ |addJava "-Dyona.data=$YONA_DATA" |
|
94 |
+ |addJava "-Dapplication.home=$YONA_DATA" |
|
95 |
+ | |
|
96 |
+ |yobi_config_file="$YONA_DATA"/conf/application.conf |
|
97 |
+ |yobi_log_config_file="$YONA_DATA"/conf/application-logger.xml |
|
94 | 98 |
|[ -f "$yobi_config_file" ] && addJava "-Dconfig.file=$yobi_config_file" |
95 | 99 |
|[ -f "$yobi_log_config_file" ] && addJava "-Dlogger.file=$yobi_log_config_file" |
96 | 100 |
| |
... | ... | @@ -98,7 +102,7 @@ |
98 | 102 |
|""".stripMargin |
99 | 103 |
|
100 | 104 |
NativePackagerKeys.batScriptExtraDefines += """ |
101 |
- | if "%JAVA_OPTS%"=="" SET JAVA_OPTS=-Duser.dir=%YONA_HOME% -Dyona.home=%YONA_HOME% -Dconfig.file=%YONA_HOME%\conf\application.conf -Dlogger.file=%YONA_HOME%\conf\application-logger.xml -DapplyEvolutions.default=true |
|
105 |
+ | if "%JAVA_OPTS%"=="" SET JAVA_OPTS=-Duser.dir=%YONA_HOME% -Dyona.data=%YONA_DATA% -Dconfig.file=%YONA_DATA%\conf\application.conf -Dlogger.file=%YONA_DATA%\conf\application-logger.xml -DapplyEvolutions.default=true |
|
102 | 106 |
|""".stripMargin |
103 | 107 |
|
104 | 108 |
lazy val yobi = (project in file(".")) |
... | ... | @@ -127,4 +131,4 @@ |
127 | 131 |
) |
128 | 132 |
|
129 | 133 |
|
130 |
-fork in run := true(No newline at end of file) |
|
134 |
+fork in run := true |
--- conf/application-logger.xml.default
+++ conf/application-logger.xml.default
... | ... | @@ -3,9 +3,9 @@ |
3 | 3 |
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" /> |
4 | 4 |
|
5 | 5 |
<appender name="ACCESS_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
6 |
- <file>${application.home}/logs/access.log</file> |
|
6 |
+ <file>${yona.data}/logs/access.log</file> |
|
7 | 7 |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
8 |
- <fileNamePattern>${application.home}/logs/access.%d{yyyy-MM-dd}.log</fileNamePattern> |
|
8 |
+ <fileNamePattern>${yona.data}/logs/access.%d{yyyy-MM-dd}.log</fileNamePattern> |
|
9 | 9 |
<maxHistory>30</maxHistory> |
10 | 10 |
</rollingPolicy> |
11 | 11 |
<encoder> |
... | ... | @@ -14,9 +14,9 @@ |
14 | 14 |
</appender> |
15 | 15 |
|
16 | 16 |
<appender name="APPLICATION_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
17 |
- <file>${application.home}/logs/application.log</file> |
|
17 |
+ <file>${yona.data}/logs/application.log</file> |
|
18 | 18 |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
19 |
- <fileNamePattern>${application.home}/logs/application.%d{yyyy-MM-dd}.log</fileNamePattern> |
|
19 |
+ <fileNamePattern>${yona.data}/logs/application.%d{yyyy-MM-dd}.log</fileNamePattern> |
|
20 | 20 |
<maxHistory>30</maxHistory> |
21 | 21 |
</rollingPolicy> |
22 | 22 |
<encoder> |
... | ... | @@ -25,9 +25,9 @@ |
25 | 25 |
</appender> |
26 | 26 |
|
27 | 27 |
<appender name="MAIL_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
28 |
- <file>${application.home}/logs/mail.log</file> |
|
28 |
+ <file>${yona.data}/logs/mail.log</file> |
|
29 | 29 |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
30 |
- <fileNamePattern>${application.home}/logs/mail.%d{yyyy-MM-dd}.log</fileNamePattern> |
|
30 |
+ <fileNamePattern>${yona.data}/logs/mail.%d{yyyy-MM-dd}.log</fileNamePattern> |
|
31 | 31 |
<maxHistory>30</maxHistory> |
32 | 32 |
</rollingPolicy> |
33 | 33 |
<encoder> |
... | ... | @@ -36,9 +36,9 @@ |
36 | 36 |
</appender> |
37 | 37 |
|
38 | 38 |
<appender name="ROOT_LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
39 |
- <file>${application.home}/logs/root.log</file> |
|
39 |
+ <file>${yona.data}/logs/root.log</file> |
|
40 | 40 |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
41 |
- <fileNamePattern>${application.home}/logs/root.%d{yyyy-MM-dd}.log</fileNamePattern> |
|
41 |
+ <fileNamePattern>${yona.data}/logs/root.%d{yyyy-MM-dd}.log</fileNamePattern> |
|
42 | 42 |
<maxHistory>30</maxHistory> |
43 | 43 |
</rollingPolicy> |
44 | 44 |
<encoder> |
+++ dev.sh
... | ... | @@ -0,0 +1,10 @@ |
1 | +# | |
2 | +# User this restart shell just for example | |
3 | +# | |
4 | +PORT=9000 | |
5 | +YONA_DATA=.;export YONA_DATA | |
6 | +act=/Users/doortts/dev/play2/activator | |
7 | + | |
8 | +pid=`ps -ef | grep java | grep activator-launch | awk '{print $2}'` | |
9 | +kill $pid | |
10 | +_JAVA_OPTIONS="-Xmx2048m -Xms1024m -Dyona.data=$YONA_DATA -DapplyEvolutions.default=true -Dhttp.port=$PORT" $act run |
--- restart.sh
+++ restart.sh
... | ... | @@ -2,9 +2,8 @@ |
2 | 2 |
# User this restart shell just for example |
3 | 3 |
# |
4 | 4 |
PORT=9000 |
5 |
-YONA_HOME=/data/yona;export YONA_HOME |
|
6 |
-PLAY2_HOME=/home/doortts/apps/play2 |
|
5 |
+YONA_DATA=/yona-data;export YONA_DATA |
|
7 | 6 |
|
8 |
-pid=`fuser $PORT/tcp` |
|
7 |
+pid=`ps -ef | grep java | grep com.typesafe.play | awk '{print $2}'` |
|
9 | 8 |
kill $pid |
10 |
-_JAVA_OPTIONS="-Xmx2048m -Xms1024m -Dyobi.home=$YONA_HOME -Dconfig.file=$YONA_HOME/conf/application.conf -Dlogger.file=$YONA_HOME/conf/application-logger.xml" $PLAY2_HOME/activator "start -DapplyEvolutions.default=true -Dhttp.port=$PORT" |
|
9 |
+_JAVA_OPTIONS="-Xmx2048m -Xms1024m -Dyona.data=$YONA_DATA -DapplyEvolutions.default=true -Dhttp.port=$PORT" bin/yona |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?