svn commit: r1485634 - in /struts/struts2/trunk: archetypes/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml archetypes/struts2-archetype-convention/src/main/resources/archetype-
Author: lukaszlenart Date: Thu May 23 09:48:46 2013 New Revision: 1485634 URL: http://svn.apache.org/r1485634 Log: WW-4072 Upgrade commons-logging to latest available version 1.1.3 Modified: struts/struts2/trunk/archetypes/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml struts/struts2/trunk/archetypes/struts2-archetype-convention/src/main/resources/archetype-resources/pom.xml struts/struts2/trunk/pom.xml Modified: struts/struts2/trunk/archetypes/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml?rev=1485634&r1=1485633&r2=1485634&view=diff == --- struts/struts2/trunk/archetypes/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml (original) +++ struts/struts2/trunk/archetypes/struts2-archetype-blank/src/main/resources/archetype-resources/pom.xml Thu May 23 09:48:46 2013 @@ -36,7 +36,7 @@ commons-logging commons-logging -1.1.1 +1.1.3 Modified: struts/struts2/trunk/archetypes/struts2-archetype-convention/src/main/resources/archetype-resources/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-convention/src/main/resources/archetype-resources/pom.xml?rev=1485634&r1=1485633&r2=1485634&view=diff == --- struts/struts2/trunk/archetypes/struts2-archetype-convention/src/main/resources/archetype-resources/pom.xml (original) +++ struts/struts2/trunk/archetypes/struts2-archetype-convention/src/main/resources/archetype-resources/pom.xml Thu May 23 09:48:46 2013 @@ -42,7 +42,7 @@ commons-logging commons-logging -1.1 +1.1.3 Modified: struts/struts2/trunk/pom.xml URL: http://svn.apache.org/viewvc/struts/struts2/trunk/pom.xml?rev=1485634&r1=1485633&r2=1485634&view=diff == --- struts/struts2/trunk/pom.xml (original) +++ struts/struts2/trunk/pom.xml Thu May 23 09:48:46 2013 @@ -657,7 +657,7 @@ commons-logging commons-logging -1.1.2 +1.1.3 commons-collections
svn commit: r1485640 - in /struts/struts2/trunk: ./ core/src/main/java/org/apache/struts2/ core/src/main/java/org/apache/struts2/config/ xwork-core/src/main/java/com/opensymphony/xwork2/ xwork-core/sr
Author: lukaszlenart Date: Thu May 23 10:31:44 2013 New Revision: 1485640 URL: http://svn.apache.org/r1485640 Log: Merged from STRUTS_2_3_14_X Disable eval expressions [from revision 1469249] Modified: struts/struts2/trunk/ (props changed) struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java Propchange: struts/struts2/trunk/ -- Merged /struts/struts2/branches/STRUTS_2_3_14_X:r1469249 Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java?rev=1485640&r1=1485639&r2=1485640&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/StrutsConstants.java Thu May 23 10:31:44 2013 @@ -228,6 +228,9 @@ public final class StrutsConstants { /** Enables caching of parsed OGNL expressions **/ public static final String STRUTS_ENABLE_OGNL_EXPRESSION_CACHE = "struts.ognl.enableExpressionCache"; +/** Enables evaluation of OGNL expressions **/ +public static final String STRUTS_ENABLE_OGNL_EVAL_EXPRESSION = "struts.ognl.enableOGNLEvalExpression"; + /** The{@link org.apache.struts2.views.util.UrlHelper} implementation class **/ public static final String STRUTS_URL_HELPER = "struts.view.urlHelper"; Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java?rev=1485640&r1=1485639&r2=1485640&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java Thu May 23 10:31:44 2013 @@ -375,6 +375,7 @@ public class BeanSelectionProvider imple // Convert Struts properties into XWork properties convertIfExist(props, StrutsConstants.STRUTS_LOG_MISSING_PROPERTIES, XWorkConstants.LOG_MISSING_PROPERTIES); convertIfExist(props, StrutsConstants.STRUTS_ENABLE_OGNL_EXPRESSION_CACHE, XWorkConstants.ENABLE_OGNL_EXPRESSION_CACHE); +convertIfExist(props, StrutsConstants.STRUTS_ENABLE_OGNL_EVAL_EXPRESSION, XWorkConstants.ENABLE_OGNL_EVAL_EXPRESSION); convertIfExist(props, StrutsConstants.STRUTS_ALLOW_STATIC_METHOD_ACCESS, XWorkConstants.ALLOW_STATIC_METHOD_ACCESS); convertIfExist(props, StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, XWorkConstants.RELOAD_XML_CONFIGURATION); Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java?rev=1485640&r1=1485639&r2=1485640&view=diff == --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/XWorkConstants.java Thu May 23 10:31:44 2013 @@ -13,6 +13,7 @@ public final class XWorkConstants { public static final String DEV_MODE = "devMode"; public static final String LOG_MISSING_PROPERTIES = "logMissingProperties"; public static final String ENABLE_OGNL_EXPRESSION_CACHE = "enableOGNLExpressionCache"; +public static final String ENABLE_OGNL_EVAL_EXPRESSION = "enableOGNLEvalExpression"; public static final String RELOAD_XML_CONFIGURATION = "reloadXmlConfiguration"; public static final String ALLOW_STATIC_METHOD_ACCESS = "allowStaticMethodAccess"; public static final String XWORK_LOGGER_FACTORY = "xwork.loggerFactory"; Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java?rev=1485640&r1=1485639&r2=1485640&view=diff ===
svn commit: r1485645 - /struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java
Author: lukaszlenart Date: Thu May 23 11:14:20 2013 New Revision: 1485645 URL: http://svn.apache.org/r1485645 Log: WW-4052 Extends interceptor to propagate params during exception handling Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java?rev=1485645&r1=1485644&r2=1485645&view=diff == --- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java (original) +++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/interceptor/ExceptionMappingInterceptor.java Thu May 23 11:14:20 2013 @@ -20,7 +20,9 @@ import com.opensymphony.xwork2.config.en import com.opensymphony.xwork2.util.logging.Logger; import com.opensymphony.xwork2.util.logging.LoggerFactory; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @@ -190,9 +192,12 @@ public class ExceptionMappingInterceptor handleLogging(e); } List exceptionMappings = invocation.getProxy().getConfig().getExceptionMappings(); -String mappedResult = this.findResultFromExceptions(exceptionMappings, e); -if (mappedResult != null) { -result = mappedResult; +ExceptionMappingConfig mappingConfig = this.findMappingFromExceptions(exceptionMappings, e); +if (mappingConfig != null && mappingConfig.getResult()!=null) { +Map parameterMap = mappingConfig.getParams(); +// create a mutable HashMap since some interceptors will remove parameters, and parameterMap is immutable +invocation.getInvocationContext().setParameters(new HashMap(parameterMap)); +result = mappingConfig.getResult(); publishException(invocation, new ExceptionHolder(e)); } else { throw e; @@ -248,9 +253,23 @@ public class ExceptionMappingInterceptor } } +/** + * @deprecated since 2.3.15 please use #findMappingFromExceptions directly instead + */ protected String findResultFromExceptions(List exceptionMappings, Throwable t) { -String result = null; + ExceptionMappingConfig result = findMappingFromExceptions(exceptionMappings, t); +return result==null?null:result.getResult(); +} +/** + * Try to find appropriate {@link ExceptionMappingConfig} based on provided Throwable + * + * @param exceptionMappings list of defined exception mappings + * @param t caught exception + * @return appropriate mapping or null + */ +protected ExceptionMappingConfig findMappingFromExceptions(List exceptionMappings, Throwable t) { + ExceptionMappingConfig config = null; // Check for specific exception mappings. if (exceptionMappings != null) { int deepest = Integer.MAX_VALUE; @@ -259,12 +278,11 @@ public class ExceptionMappingInterceptor int depth = getDepth(exceptionMappingConfig.getExceptionClassName(), t); if (depth >= 0 && depth < deepest) { deepest = depth; -result = exceptionMappingConfig.getResult(); +config = exceptionMappingConfig; } } } - -return result; +return config; } /** @@ -301,4 +319,5 @@ public class ExceptionMappingInterceptor protected void publishException(ActionInvocation invocation, ExceptionHolder exceptionHolder) { invocation.getStack().push(exceptionHolder); } + }
svn commit: r1485653 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/views/xslt/XSLTResult.java test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
Author: lukaszlenart Date: Thu May 23 11:49:47 2013 New Revision: 1485653 URL: http://svn.apache.org/r1485653 Log: WW-3999 Allows set respond code Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java?rev=1485653&r1=1485652&r2=1485653&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java Thu May 23 11:49:47 2013 @@ -238,6 +238,9 @@ public class XSLTResult implements Resul /** Indicates the ognl expression respresenting the bean which is to be exposed as xml. */ private String exposedValue; +/** Indicates the status to return in the response */ +private int status = 200; + private boolean parse; private AdapterFactory adapterFactory; @@ -307,6 +310,18 @@ public class XSLTResult implements Resul this.excludingPattern = excludingPattern; } +public String getStatus() { +return String.valueOf(status); +} + +public void setStatus(String status) { +try { +this.status = Integer.valueOf(status); +} catch (NumberFormatException e) { +throw new IllegalArgumentException("Status value not number " + e.getMessage(), e); +} +} + /** * If true, parse the stylesheet location for OGNL expressions. * @@ -328,7 +343,7 @@ public class XSLTResult implements Resul try { HttpServletResponse response = ServletActionContext.getResponse(); - +response.setStatus(status); PrintWriter writer = response.getWriter(); // Create a transformer for the stylesheet. Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java?rev=1485653&r1=1485652&r2=1485653&view=diff == --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java Thu May 23 11:49:47 2013 @@ -191,7 +191,20 @@ public class XSLTResultTest extends Stru assertEquals("Error transforming result", ex.getMessage()); } } - + +public void testStatusCode() throws Exception { +result.setParse(false); +result.setLocation("XSLTResultTest.xsl"); +result.setStatus("302"); +result.execute(mai); + +String out = response.getContentAsString(); + +assertEquals(302, response.getStatus()); +assertTrue(out.startsWith("")); +assertTrue(out.indexOf("http://www.w3.org/TR/xhtml1/strict\"";) > -1); +} + protected void setUp() throws Exception { super.setUp(); request = new MockHttpServletRequest();
svn commit: r1485710 - /struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
Author: lukaszlenart Date: Thu May 23 13:46:25 2013 New Revision: 1485710 URL: http://svn.apache.org/r1485710 Log: Tweaks docs a bit Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java?rev=1485710&r1=1485709&r2=1485710&view=diff == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java Thu May 23 13:46:25 2013 @@ -86,10 +86,14 @@ import java.util.regex.Pattern; * * * - * populateCookieValueIntoStack - this method will decide if this cookie value is qualified to be - * populated into the value stack (hence into the action itself) - * injectIntoCookiesAwareAction - this method will inject selected cookies (as a java.util.Map) into - * action that implements {@link CookiesAware}. + * + * populateCookieValueIntoStack - this method will decide if this cookie value is qualified + * to be populated into the value stack (hence into the action itself) + * + * + * injectIntoCookiesAwareAction - this method will inject selected cookies (as a java.util.Map) + * into action that implements {@link CookiesAware}. + * * * *
svn commit: r1485719 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/interceptor/ main/resources/ test/java/org/apache/struts2/interceptor/
Author: lukaszlenart Date: Thu May 23 14:12:24 2013 New Revision: 1485719 URL: http://svn.apache.org/r1485719 Log: WW-4037 Adds functionality to create Cookies in action and apply them to response Added: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProvider.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/CookieProviderInterceptorTest.java Modified: struts/struts2/trunk/core/src/main/resources/struts-default.xml Added: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProvider.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProvider.java?rev=1485719&view=auto == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProvider.java (added) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProvider.java Thu May 23 14:12:24 2013 @@ -0,0 +1,41 @@ +/* + * $Id$ + * + * 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.interceptor; + +import javax.servlet.http.Cookie; +import java.util.Set; + +/** + * Action can create cookies which will be stored in response + * + * @see CookieProviderInterceptor + */ +public interface CookieProvider { + +/** + * Return cookies which should be send to client + * + * @return set of cookies or null + */ +Set getCookies(); + +} \ No newline at end of file Added: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java?rev=1485719&view=auto == --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java (added) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieProviderInterceptor.java Thu May 23 14:12:24 2013 @@ -0,0 +1,115 @@ +/* + * $Id$ + * + * 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.interceptor; + +import com.opensymphony.xwork2.ActionContext; +import com.opensymphony.xwork2.ActionInvocation; +import com.opensymphony.xwork2.interceptor.AbstractInterceptor; +import com.opensymphony.xwork2.interceptor.PreResultListener; +import com.opensymphony.xwork2.util.logging.Logger; +import com.opensymphony.xwork2.util.logging.LoggerFactory; +import org.apache.struts2.StrutsStatics; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; +import java.util.Set; + +/** + * + * Allows actions to send cookies to client, action must implement {@link CookieProvider} + * You must reference this interceptor in your default stack or in action's stack, see example below. + * + * + * + * + * + * none + * + * + * + * + * + * + * addCookiesToResponse - this method applies cookie created by action to response + * + * + * + * + * + * + * + *+ * + * + * + * + */ +public class CookieProviderInterce+ * + * ... + *
[CONF] Confluence Changes in the last 24 hours
This is a daily summary of all recent changes in Confluence. - Updated Spaces: - Apache Ambari (Incubating) (https://cwiki.apache.org/confluence/display/AMBARI) Comments https://cwiki.apache.org/confluence/display/AMBARI/Adding+a+New+Service+as+part+of+the+Stack+Definition (1) Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL) Pages - Camel 2.12.0 Release edited by davsclaus (05:16 AM) https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.12.0+Release BacklogDebugger created by davsclaus (05:13 AM) https://cwiki.apache.org/confluence/display/CAMEL/BacklogDebugger Apache Cloudstack (https://cwiki.apache.org/confluence/display/CLOUDSTACK) Pages - Progress created by dlafferty (10:16 PM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Progress Multiple IPs Per Nic Test Execution edited by swamy (11:29 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Multiple+IPs+Per+Nic+Test+Execution external hosted private gateways edited by dahn (04:55 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/external+hosted+private+gateways Dedicated Resources - Private zone, pod, cluster, host Functional Spec edited by devdeep (04:54 AM) https://cwiki.apache.org/confluence/display/CLOUDSTACK/Dedicated+Resources+-+Private+zone%2C+pod%2C+cluster%2C+host+Functional+Spec Apache CXF Documentation (https://cwiki.apache.org/confluence/display/CXF20DOC) Pages - 3.0 Migration Guide edited by dkulp (12:22 PM) https://cwiki.apache.org/confluence/display/CXF20DOC/3.0+Migration+Guide CXF feature for Apache Karaf created by christian schneider (03:35 AM) https://cwiki.apache.org/confluence/display/CXF20DOC/CXF+feature+for+Apache+Karaf Apache Flex (https://cwiki.apache.org/confluence/display/FLEX) Pages - FlexUnit created by cyrill (11:42 PM) https://cwiki.apache.org/confluence/display/FLEX/FlexUnit Proposal - Github based Whiteboard edited by bigosma...@gmail.com (01:19 PM) https://cwiki.apache.org/confluence/display/FLEX/Proposal+-+Github+based+Whiteboard Apache Giraph (Incubating) (https://cwiki.apache.org/confluence/display/GIRAPH) Pages - Giraph implementation of Nutch LinkRank Algorithm - Ahmet Emre Aladağ edited by emre.ala...@agmlab.com (03:47 PM) https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=31820383 Apache Kafka (https://cwiki.apache.org/confluence/display/KAFKA) Pages - A Guide To The Kafka Protocol edited by lanzaa (07:36 PM) https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol Apache Syncope (https://cwiki.apache.org/confluence/display/SYNCOPE) Pages - Self registration & password reset edited by ilgrosso (06:21 AM) https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=30738815 Traffic Server (https://cwiki.apache.org/confluence/display/TS) Pages - How to use reclaimable freelist edited by yunkai (07:24 AM) https://cwiki.apache.org/confluence/display/TS/How+to+use+reclaimable+freelist Apache Wicket (https://cwiki.apache.org/confluence/display/WICKET) Pages - Migration to Wicket 7.0 edited by mgrigorov (10:54 AM) https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+7.0 Apache Struts 2 Documentation (https://cwiki.apache.org/confluence/display/WW) Pages - CookieProvider Interceptor created by lukaszlenart (09:40 AM) https://cwiki.apache.org/confluence/display/WW/CookieProvider+Interceptor Cookie Interceptor edited by lukaszlenart (09:38 AM) https://cwiki.apache.org/confluence/display/WW/Cookie+Interceptor Interceptors edited by lukaszlenart (09:38 AM) https://cwiki.apache.org/confluence/display/WW/Interceptors S2-013 edited by lukaszlenart (02:54 AM) https://cwiki.apache.org/confluence/display/WW/S2-013 S2-012 edited by lukaszlenart (02:54 AM) https://cwiki.apache.org/confluence/display/WW/S2-012 Sample announcements edited by lukaszlenart (02:44 AM) https://cwiki.apache.org/confluence/display/WW/Sample+announcements Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action