diff --git a/src/main/java/org/codelibs/fess/helper/SystemHelper.java b/src/main/java/org/codelibs/fess/helper/SystemHelper.java index b307c816c..1f790ceb2 100644 --- a/src/main/java/org/codelibs/fess/helper/SystemHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SystemHelper.java @@ -29,6 +29,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; @@ -36,6 +37,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Properties; +import java.util.TimeZone; import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -107,11 +109,19 @@ public class SystemHelper { protected String productVersion; + protected long eolTime; + @PostConstruct public void init() { if (logger.isDebugEnabled()) { logger.debug("Initialize {}", this.getClass().getSimpleName()); } + final Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC")); + cal.set(2021, 6 - 1, 2); + eolTime = cal.getTimeInMillis(); + if (isEoled()) { + logger.error("Your system is out of service. See https://fess.codelibs.org/eol.html"); + } updateSystemProperties(); final FessConfig fessConfig = ComponentUtil.getFessConfig(); filterPathEncoding = fessConfig.getPathEncoding(); @@ -398,10 +408,20 @@ public class SystemHelper { public void setupAdminHtmlData(final TypicalAction action, final ActionRuntime runtime) { runtime.registerData("developmentMode", ComponentUtil.getFessEsClient().isEmbedded()); final FessConfig fessConfig = ComponentUtil.getFessConfig(); - final String url = fessConfig.getOnlineHelpInstallation(); - runtime.registerData("installationLink", getHelpUrl(url)); + final String installationLink = fessConfig.getOnlineHelpInstallation(); + runtime.registerData("installationLink", getHelpUrl(installationLink)); runtime.registerData("storageEnabled", StringUtil.isNotBlank(fessConfig.getStorageEndpoint()) && StringUtil.isNotBlank(fessConfig.getStorageBucket())); + final boolean eoled = isEoled(); + runtime.registerData("eoled", eoled); + if (eoled) { + final String eolLink = fessConfig.getOnlineHelpEol(); + runtime.registerData("eolLink", getHelpUrl(eolLink)); + } + } + + protected boolean isEoled() { + return getCurrentTimeAsLong() > eolTime; } public String getSearchRoleByUser(final String name) { diff --git a/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java b/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java index 8ee984031..df2b5bdd6 100644 --- a/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java +++ b/src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java @@ -2880,6 +2880,9 @@ public class FessLabels extends UserMessages { /** The key of the message: Running as Development mode. For production use, please install a standalone elasticsearch server. */ public static final String LABELS_development_mode_warning = "{labels.development_mode_warning}"; + /** The key of the message: Your system is out of service. See EOL page. */ + public static final String LABELS_eol_error = "{labels.eol_error}"; + /** The key of the message: Advance */ public static final String LABELS_ADVANCE = "{labels.advance}"; diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java index a0aa22248..09c1b1629 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessConfig.java @@ -1209,6 +1209,9 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction /** The key of the configuration. e.g. https://fess.codelibs.org/{lang}/{version}/install/install.html */ String ONLINE_HELP_INSTALLATION = "online.help.installation"; + /** The key of the configuration. e.g. https://fess.codelibs.org/{lang}/eol.html */ + String ONLINE_HELP_EOL = "online.help.eol"; + /** The key of the configuration. e.g. failureurl */ String ONLINE_HELP_NAME_FAILUREURL = "online.help.name.failureurl"; @@ -5394,6 +5397,13 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction */ String getOnlineHelpInstallation(); + /** + * Get the value for the key 'online.help.eol'.
+ * The value is, e.g. https://fess.codelibs.org/{lang}/eol.html
+ * @return The value of found property. (NotNull: if not found, exception but basically no way) + */ + String getOnlineHelpEol(); + /** * Get the value for the key 'online.help.name.failureurl'.
* The value is, e.g. failureurl
@@ -8428,6 +8438,10 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction return get(FessConfig.ONLINE_HELP_INSTALLATION); } + public String getOnlineHelpEol() { + return get(FessConfig.ONLINE_HELP_EOL); + } + public String getOnlineHelpNameFailureurl() { return get(FessConfig.ONLINE_HELP_NAME_FAILUREURL); } @@ -9366,6 +9380,7 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction defaultMap.put(FessConfig.SCHEDULER_MONITOR_INTERVAL, "30"); defaultMap.put(FessConfig.ONLINE_HELP_BASE_LINK, "https://fess.codelibs.org/{lang}/{version}/admin/"); defaultMap.put(FessConfig.ONLINE_HELP_INSTALLATION, "https://fess.codelibs.org/{lang}/{version}/install/install.html"); + defaultMap.put(FessConfig.ONLINE_HELP_EOL, "https://fess.codelibs.org/{lang}/eol.html"); defaultMap.put(FessConfig.ONLINE_HELP_NAME_FAILUREURL, "failureurl"); defaultMap.put(FessConfig.ONLINE_HELP_NAME_ELEVATEWORD, "elevateword"); defaultMap.put(FessConfig.ONLINE_HELP_NAME_REQHEADER, "reqheader"); diff --git a/src/main/resources/fess_config.properties b/src/main/resources/fess_config.properties index e9a081d9b..a7914dd9b 100644 --- a/src/main/resources/fess_config.properties +++ b/src/main/resources/fess_config.properties @@ -675,6 +675,7 @@ scheduler.monitor.interval=30 # ------ online.help.base.link=https://fess.codelibs.org/{lang}/{version}/admin/ online.help.installation=https://fess.codelibs.org/{lang}/{version}/install/install.html +online.help.eol=https://fess.codelibs.org/{lang}/eol.html online.help.name.failureurl=failureurl online.help.name.elevateword=elevateword online.help.name.reqheader=reqheader diff --git a/src/main/resources/fess_label.properties b/src/main/resources/fess_label.properties index d7c744159..36d004ed5 100644 --- a/src/main/resources/fess_label.properties +++ b/src/main/resources/fess_label.properties @@ -951,6 +951,7 @@ labels.esreq_button_upload=Send labels.facet_is_not_found=No match labels.doc_score=Score: labels.development_mode_warning=Running as Development mode. For production use, please install a standalone elasticsearch server. +labels.eol_error=Your system is out of service. See EOL page. labels.advance=Advance labels.advance_search_title=Advanced Search labels.advance_search_must_queries=All these words diff --git a/src/main/resources/fess_label_en.properties b/src/main/resources/fess_label_en.properties index d7c744159..36d004ed5 100644 --- a/src/main/resources/fess_label_en.properties +++ b/src/main/resources/fess_label_en.properties @@ -951,6 +951,7 @@ labels.esreq_button_upload=Send labels.facet_is_not_found=No match labels.doc_score=Score: labels.development_mode_warning=Running as Development mode. For production use, please install a standalone elasticsearch server. +labels.eol_error=Your system is out of service. See EOL page. labels.advance=Advance labels.advance_search_title=Advanced Search labels.advance_search_must_queries=All these words diff --git a/src/main/resources/fess_label_ja.properties b/src/main/resources/fess_label_ja.properties index 1f171dab1..93a7b847e 100644 --- a/src/main/resources/fess_label_ja.properties +++ b/src/main/resources/fess_label_ja.properties @@ -951,6 +951,7 @@ labels.esreq_button_upload=送信 labels.facet_is_not_found=該当なし labels.doc_score=スコア: labels.development_mode_warning=開発モードで起動しています。本運用環境ではElasticsearchを別途インストールしてください。 +labels.eol_error=ご利用のシステムはサポートが終了しています。製品サポート期限のページを参照して、再インストールしてください。 labels.advance=詳細検索 labels.advance_search_title=詳細検索 labels.advance_search_must_queries=すべての単語を含む diff --git a/src/main/webapp/WEB-INF/view/common/admin/header.jsp b/src/main/webapp/WEB-INF/view/common/admin/header.jsp index 61b501699..3a6a2ace3 100644 --- a/src/main/webapp/WEB-INF/view/common/admin/header.jsp +++ b/src/main/webapp/WEB-INF/view/common/admin/header.jsp @@ -17,10 +17,15 @@