// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/common/LocaleThreadLocal.java
// public class LocaleThreadLocal {
// 
//     public static final ThreadLocal<LocaleThreadLocal> localeThreadLocal = new ThreadLocal<>();
//     private final Locale locale;
// 
//     public LocaleThreadLocal(Locale locale) {
//         this.locale = locale;
//     }
// 
//     public Locale getLocale() {
//         return locale;
//     }
// 
// }


import java.io.IOException;
import java.util.Locale;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import com.byteslounge.cdi.test.common.LocaleThreadLocal;
/*
 * Copyright 2015 byteslounge.com (Gonçalo Marques).
 *
 * Licensed 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 com.byteslounge.cdi.test.common.filter;




/**
 * Filter that sets the current locale as PT
 * 
 * @author Gonçalo Marques
 * @since 1.1.0
 */
@WebFilter(urlPatterns = "/*")
public class LocaleFilterPT implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
            ServletException {
        try {
            LocaleThreadLocal.localeThreadLocal.set(new LocaleThreadLocal(new Locale("pt", "PT")));
            chain.doFilter(request, response);
        } finally {
            LocaleThreadLocal.localeThreadLocal.remove();
        }
    }

    @Override
    public void init(FilterConfig config) throws ServletException {
    }

// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/common/LocaleThreadLocal.java
// public class LocaleThreadLocal {
// 
//     public static final ThreadLocal<LocaleThreadLocal> localeThreadLocal = new ThreadLocal<>();
//     private final Locale locale;
// 
//     public LocaleThreadLocal(Locale locale) {
//         this.locale = locale;
//     }
// 
//     public Locale getLocale() {
//         return locale;
//     }
// 
// }


// Path: cdi-properties-test/cdi-properties-test-common/src/main/java/com/byteslounge/cdi/test/common/filter/LocaleFilterPT.java
import java.io.IOException;
import java.util.Locale;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import com.byteslounge.cdi.test.common.LocaleThreadLocal;

/*
 * Copyright 2015 byteslounge.com (Gonçalo Marques).
 *
 * Licensed 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 com.byteslounge.cdi.test.common.filter;




/**
 * Filter that sets the current locale as PT
 * 
 * @author Gonçalo Marques
 * @since 1.1.0
 */
@WebFilter(urlPatterns = "/*")
public class LocaleFilterPT implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
            ServletException {
        try {
            LocaleThreadLocal.localeThreadLocal.set(new LocaleThreadLocal(new Locale("pt", "PT")));
            chain.doFilter(request, response);
        } finally {
            LocaleThreadLocal.localeThreadLocal.remove();
        }
    }

    @Override
    public void init(FilterConfig config) throws ServletException {
    }

    @Override