Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D1B43200B45 for ; Fri, 15 Jul 2016 15:18:46 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id D0364160A8A; Fri, 15 Jul 2016 13:18:46 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 267C0160A61 for ; Fri, 15 Jul 2016 15:18:46 +0200 (CEST) Received: (qmail 34344 invoked by uid 500); 15 Jul 2016 13:18:30 -0000 Mailing-List: contact commits-help@struts.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@struts.apache.org Delivered-To: mailing list commits@struts.apache.org Received: (qmail 32958 invoked by uid 99); 15 Jul 2016 13:18:30 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Jul 2016 13:18:30 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id D6E13ED4A2; Fri, 15 Jul 2016 13:18:29 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: lukaszlenart@apache.org To: commits@struts.apache.org Date: Fri, 15 Jul 2016 13:19:11 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [44/50] [abbrv] struts git commit: Adds support to use Struts' Locale archived-at: Fri, 15 Jul 2016 13:18:47 -0000 Adds support to use Struts' Locale Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/42628da3 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/42628da3 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/42628da3 Branch: refs/heads/master Commit: 42628da3c34dca808817ec00fd76d89922c6d006 Parents: 4771dfa Author: Lukasz Lenart Authored: Fri Jan 15 10:12:15 2016 +0100 Committer: Lukasz Lenart Committed: Tue Jan 19 16:19:20 2016 +0100 ---------------------------------------------------------------------- .../tiles/StrutsTilesContainerFactory.java | 4 ++ .../tiles/StrutsTilesLocaleResolver.java | 54 ++++++++++++++++++++ 2 files changed, 58 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/42628da3/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java ---------------------------------------------------------------------- diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java index 8403610..0cb14f3 100644 --- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java +++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java @@ -161,6 +161,10 @@ public class StrutsTilesContainerFactory extends BasicTilesContainerFactory { return resolver; } + protected LocaleResolver createLocaleResolver(ApplicationContext applicationContext) { + return new StrutsTilesLocaleResolver(); + } + @Override protected List getSources(ApplicationContext applicationContext) { Collection resources = applicationContext.getResources(getTilesDefinitionPattern(applicationContext.getInitParams())); http://git-wip-us.apache.org/repos/asf/struts/blob/42628da3/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesLocaleResolver.java ---------------------------------------------------------------------- diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesLocaleResolver.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesLocaleResolver.java new file mode 100644 index 0000000..2c0ef9d --- /dev/null +++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesLocaleResolver.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.struts2.tiles; + +import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.LocaleProvider; +import com.opensymphony.xwork2.config.ConfigurationException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.struts2.ServletActionContext; +import org.apache.tiles.locale.LocaleResolver; +import org.apache.tiles.request.Request; +import org.apache.tiles.request.servlet.ServletUtil; + +import javax.servlet.http.HttpServletRequest; +import java.util.Locale; + +public class StrutsTilesLocaleResolver implements LocaleResolver { + + private static Logger LOG = LogManager.getLogger(StrutsTilesLocaleResolver.class); + + @Override + public Locale resolveLocale(Request request) { + HttpServletRequest httpRequest = ServletUtil.getServletRequest(request).getRequest(); + ActionContext ctx = ServletActionContext.getActionContext(httpRequest); + + if (ctx == null) { + LOG.error("Cannot obtain HttpServletRequest from [{}]", request.getClass().getName()); + throw new ConfigurationException("There is no ActionContext for current request!"); + } + + LocaleProvider provider = ctx.getInstance(LocaleProvider.class); + + return provider.getLocale(); + } + +}