You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2016/03/13 00:27:02 UTC

wicket git commit: WICKET-6118 Deprecate org.apache.wicket.util.IContextProvider

Repository: wicket
Updated Branches:
  refs/heads/master 5d2983f8f -> 6f4fce4e1


WICKET-6118 Deprecate org.apache.wicket.util.IContextProvider


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6f4fce4e
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6f4fce4e
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6f4fce4e

Branch: refs/heads/master
Commit: 6f4fce4e17a3582315cb1efef7b2ca7e885a181f
Parents: 5d2983f
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sun Mar 13 00:25:34 2016 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sun Mar 13 00:25:34 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/wicket/Application.java     |  4 ++--
 .../wicket/DefaultPageManagerProvider.java      |  2 +-
 .../org/apache/wicket/IPageManagerProvider.java |  7 +++---
 .../apache/wicket/IPageRendererProvider.java    |  9 ++++----
 .../apache/wicket/IRequestCycleProvider.java    |  5 +++--
 .../handler/RenderPageRequestHandler.java       |  2 +-
 .../org/apache/wicket/mock/MockApplication.java |  2 +-
 .../wicket/protocol/http/WebApplication.java    | 16 +++++++-------
 .../wicket/util/tester/BaseWicketTester.java    | 23 +++++---------------
 .../org/apache/wicket/ComponentEventsTest.java  |  9 +-------
 .../DontStoreNotRenderedPageTestCase.java       |  2 +-
 .../html/TransparentWebMarkupContainerTest.java |  2 +-
 .../request/handler/PageIdPoliticTest.java      |  2 +-
 .../wicket/versioning/PageVersioningTest.java   |  2 +-
 .../ws/api/AbstractWebSocketProcessor.java      |  2 +-
 .../src/docs/guide/ajax/ajax_1.gdoc             |  8 +++----
 .../apache/wicket/util/IContextProvider.java    | 11 +++++++++-
 17 files changed, 48 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/Application.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Application.java b/wicket-core/src/main/java/org/apache/wicket/Application.java
index a65d02d..c9f6726 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Application.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Application.java
@@ -1539,7 +1539,7 @@ public abstract class Application implements UnboundListener, IEventSink
 			{
 				if (pageManager == null)
 				{
-					pageManager = pageManagerProvider.get(getPageManagerContext());
+					pageManager = pageManagerProvider.apply(getPageManagerContext());
 				}
 			}
 		}
@@ -1752,7 +1752,7 @@ public abstract class Application implements UnboundListener, IEventSink
 		RequestCycleContext context = new RequestCycleContext(request, response,
 			getRootRequestMapper(), getExceptionMapperProvider().get());
 
-		RequestCycle requestCycle = getRequestCycleProvider().get(context);
+		RequestCycle requestCycle = getRequestCycleProvider().apply(context);
 		requestCycle.getListeners().add(requestCycleListeners);
 		requestCycle.getListeners().add(new AbstractRequestCycleListener()
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
index bb1640e..c997648 100644
--- a/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/DefaultPageManagerProvider.java
@@ -51,7 +51,7 @@ public class DefaultPageManagerProvider implements IPageManagerProvider
 	}
 
 	@Override
-	public IPageManager get(IPageManagerContext pageManagerContext)
+	public IPageManager apply(IPageManagerContext pageManagerContext)
 	{
 		IDataStore dataStore = newDataStore();
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/IPageManagerProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/IPageManagerProvider.java b/wicket-core/src/main/java/org/apache/wicket/IPageManagerProvider.java
index e9f74f0..557a7aa 100644
--- a/wicket-core/src/main/java/org/apache/wicket/IPageManagerProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/IPageManagerProvider.java
@@ -16,12 +16,11 @@
  */
 package org.apache.wicket;
 
+import java.util.function.Function;
+
 import org.apache.wicket.page.IPageManager;
 import org.apache.wicket.page.IPageManagerContext;
-import org.apache.wicket.util.IContextProvider;
 
-/**
- */
-public interface IPageManagerProvider extends IContextProvider<IPageManager, IPageManagerContext>
+public interface IPageManagerProvider extends Function<IPageManagerContext, IPageManager>
 {
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/IPageRendererProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/IPageRendererProvider.java b/wicket-core/src/main/java/org/apache/wicket/IPageRendererProvider.java
index fa5876e..1171d9c 100755
--- a/wicket-core/src/main/java/org/apache/wicket/IPageRendererProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/IPageRendererProvider.java
@@ -16,15 +16,14 @@
  */
 package org.apache.wicket;
 
+import java.util.function.Function;
+
 import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
 import org.apache.wicket.request.handler.render.PageRenderer;
-import org.apache.wicket.util.IContextProvider;
 
 /**
- * Interface for {@link IContextProvider}&ltPageRenderer, RenderPageRequestHandler&gt
+ * Interface for {@link Function}&ltRenderPageRequestHandler, PageRenderer&gt
  */
-public interface IPageRendererProvider
-	extends
-		IContextProvider<PageRenderer, RenderPageRequestHandler>
+public interface IPageRendererProvider extends Function<RenderPageRequestHandler, PageRenderer>
 {
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/IRequestCycleProvider.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/IRequestCycleProvider.java b/wicket-core/src/main/java/org/apache/wicket/IRequestCycleProvider.java
index c4121a6..217d289 100755
--- a/wicket-core/src/main/java/org/apache/wicket/IRequestCycleProvider.java
+++ b/wicket-core/src/main/java/org/apache/wicket/IRequestCycleProvider.java
@@ -16,15 +16,16 @@
  */
 package org.apache.wicket;
 
+import java.util.function.Function;
+
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.cycle.RequestCycleContext;
-import org.apache.wicket.util.IContextProvider;
 
 /**
  * Provides instances of {@link RequestCycle} objects
  * 
  * @author igor.vaynberg
  */
-public interface IRequestCycleProvider extends IContextProvider<RequestCycle, RequestCycleContext>
+public interface IRequestCycleProvider extends Function<RequestCycleContext, RequestCycle>
 {
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/core/request/handler/RenderPageRequestHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/RenderPageRequestHandler.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/RenderPageRequestHandler.java
index 741427c..97b769e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/RenderPageRequestHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/RenderPageRequestHandler.java
@@ -171,7 +171,7 @@ public class RenderPageRequestHandler
 	@Override
 	public void respond(IRequestCycle requestCycle)
 	{
-		PageRenderer renderer = Application.get().getPageRendererProvider().get(this);
+		PageRenderer renderer = Application.get().getPageRendererProvider().apply(this);
 		renderer.respond((RequestCycle)requestCycle);
 	}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/mock/MockApplication.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/mock/MockApplication.java b/wicket-core/src/main/java/org/apache/wicket/mock/MockApplication.java
index aec4e61..1c0a99d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/mock/MockApplication.java
+++ b/wicket-core/src/main/java/org/apache/wicket/mock/MockApplication.java
@@ -66,7 +66,7 @@ public class MockApplication extends WebApplication
 		super.internalInit();
 
 		// set page and session store providers
-		setSessionStoreProvider(() -> new MockSessionStore());
+		setSessionStoreProvider(MockSessionStore::new);
 		setPageManagerProvider((pageManagerContext) -> new MockPageManager());
 
 		// for test cases we usually want stable resource names

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
index 810e90e..d12c551 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
@@ -21,6 +21,7 @@ import java.nio.charset.Charset;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Locale;
+import java.util.function.Function;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
@@ -70,7 +71,6 @@ import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.resource.bundles.ReplacementResourceBundleReference;
 import org.apache.wicket.session.HttpSessionStore;
-import org.apache.wicket.util.IContextProvider;
 import org.apache.wicket.util.crypt.CharEncoding;
 import org.apache.wicket.util.file.FileCleaner;
 import org.apache.wicket.util.file.IFileCleaner;
@@ -135,7 +135,7 @@ public abstract class WebApplication extends Application
 
 	private final AjaxRequestTargetListenerCollection ajaxRequestTargetListeners;
 
-	private IContextProvider<AjaxRequestTarget, Page> ajaxRequestTargetProvider;
+	private Function<Page, AjaxRequestTarget> ajaxRequestTargetProvider;
 
 	private FilterFactoryManager filterFactoryManager;
 
@@ -743,9 +743,9 @@ public abstract class WebApplication extends Application
 				getResourceSettings().getResourceFinders().add(new Path(resourceFolder));
 			}
 		}
-		setPageRendererProvider((handler) -> new WebPageRenderer(handler));
-		setSessionStoreProvider(() -> new HttpSessionStore());
-		setAjaxRequestTargetProvider((page) -> new AjaxRequestHandler(page));
+		setPageRendererProvider(WebPageRenderer::new);
+		setSessionStoreProvider(HttpSessionStore::new);
+		setAjaxRequestTargetProvider(AjaxRequestHandler::new);
 
 		getAjaxRequestTargetListeners().add(new AjaxEnclosureListener());
 
@@ -899,7 +899,7 @@ public abstract class WebApplication extends Application
 	 */
 	public final AjaxRequestTarget newAjaxRequestTarget(final Page page)
 	{
-		AjaxRequestTarget target = getAjaxRequestTargetProvider().get(page);
+		AjaxRequestTarget target = getAjaxRequestTargetProvider().apply(page);
 		for (AjaxRequestTarget.IListener listener : ajaxRequestTargetListeners)
 		{
 			target.addListener(listener);
@@ -1013,7 +1013,7 @@ public abstract class WebApplication extends Application
 	 * 
 	 * @return the provider for {@link org.apache.wicket.ajax.AjaxRequestTarget} objects.
 	 */
-	public IContextProvider<AjaxRequestTarget, Page> getAjaxRequestTargetProvider()
+	public Function<Page, AjaxRequestTarget> getAjaxRequestTargetProvider()
 	{
 		return ajaxRequestTargetProvider;
 	}
@@ -1025,7 +1025,7 @@ public abstract class WebApplication extends Application
 	 *            the new provider
 	 */
 	public Application setAjaxRequestTargetProvider(
-		IContextProvider<AjaxRequestTarget, Page> ajaxRequestTargetProvider)
+		Function<Page, AjaxRequestTarget> ajaxRequestTargetProvider)
 	{
 		this.ajaxRequestTargetProvider = ajaxRequestTargetProvider;
 		return this;

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
index a5fb789..80d292f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
@@ -2764,14 +2764,14 @@ public class BaseWicketTester
 		}
 
 		@Override
-		public PageRenderer get(final RenderPageRequestHandler handler)
+		public PageRenderer apply(final RenderPageRequestHandler handler)
 		{
 			return new PageRenderer(handler)
 			{
 				@Override
 				public void respond(RequestCycle requestCycle)
 				{
-					delegate.get(handler).respond(requestCycle);
+					delegate.apply(handler).respond(requestCycle);
 
 					// WICKET-5424 record page after wrapped renderer has responded
 					if (handler.getPageProvider().hasPageInstance())
@@ -2828,9 +2828,6 @@ public class BaseWicketTester
 		}
 	}
 
-	/**
-	 *
-	 */
 	private class TestRequestCycleProvider implements IRequestCycleProvider
 	{
 		private final IRequestCycleProvider delegate;
@@ -2841,18 +2838,15 @@ public class BaseWicketTester
 		}
 
 		@Override
-		public RequestCycle get(RequestCycleContext context)
+		public RequestCycle apply(RequestCycleContext context)
 		{
 			context.setRequestMapper(new TestRequestMapper(context.getRequestMapper()));
 			forcedHandler = null;
 			context.setExceptionMapper(new TestExceptionMapper(context.getExceptionMapper()));
-			return delegate.get(context);
+			return delegate.apply(context);
 		}
 	}
 
-	/**
-	 *
-	 */
 	private class TestRequestMapper implements IRequestMapperDelegate
 	{
 		private final IRequestMapper delegate;
@@ -2896,17 +2890,10 @@ public class BaseWicketTester
 		}
 	}
 
-	/**
-	 *
-	 */
-
-	/**
-	 *
-	 */
 	private static class TestPageManagerProvider implements IPageManagerProvider
 	{
 		@Override
-		public IPageManager get(IPageManagerContext pageManagerContext)
+		public IPageManager apply(IPageManagerContext pageManagerContext)
 		{
 			return new MockPageManager();
 		}

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/test/java/org/apache/wicket/ComponentEventsTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ComponentEventsTest.java b/wicket-core/src/test/java/org/apache/wicket/ComponentEventsTest.java
index 46558e1..71dea8d 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ComponentEventsTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ComponentEventsTest.java
@@ -550,14 +550,7 @@ public class ComponentEventsTest
 		protected void init()
 		{
 			super.init();
-			setRequestCycleProvider(new IRequestCycleProvider()
-			{
-				@Override
-				public RequestCycle get(RequestCycleContext context)
-				{
-					return new TestRequestCycle(context);
-				}
-			});
+			setRequestCycleProvider(TestRequestCycle::new);
 		}
 
 		@Override

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageTestCase.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageTestCase.java b/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageTestCase.java
index 668bd58..fe1875b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageTestCase.java
+++ b/wicket-core/src/test/java/org/apache/wicket/dontstoreunrendered/DontStoreNotRenderedPageTestCase.java
@@ -58,7 +58,7 @@ public abstract class DontStoreNotRenderedPageTestCase extends WicketTestCase
 				return new IPageManagerProvider()
 				{
 					@Override
-					public IPageManager get(IPageManagerContext context)
+					public IPageManager apply(IPageManagerContext context)
 					{
 						return new MockPageManager()
 						{

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java
index f9adf4e..9ddc737 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentWebMarkupContainerTest.java
@@ -113,7 +113,7 @@ public class TransparentWebMarkupContainerTest extends WicketTestCase
 				return new IPageManagerProvider()
 				{
 					@Override
-					public IPageManager get(IPageManagerContext context)
+					public IPageManager apply(IPageManagerContext context)
 					{
 						return new MockPageManager()
 						{

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java
index 117b935..978e87b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/PageIdPoliticTest.java
@@ -104,7 +104,7 @@ public class PageIdPoliticTest extends Assert
 				return new IPageManagerProvider()
 				{
 					@Override
-					public IPageManager get(IPageManagerContext pageManagerContext)
+					public IPageManager apply(IPageManagerContext pageManagerContext)
 					{
 						IPageStore pageStore = new DefaultPageStore(new JavaSerializer(
 							application.getApplicationKey()), dataStore, 4);

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java b/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java
index ca55942..9ac60fc 100644
--- a/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/versioning/PageVersioningTest.java
@@ -62,7 +62,7 @@ public class PageVersioningTest
 				{
 
 					@Override
-					public IPageManager get(IPageManagerContext pageManagerContext)
+					public IPageManager apply(IPageManagerContext pageManagerContext)
 					{
 
 						final IDataStore dataStore = new InMemoryPageStore();

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
----------------------------------------------------------------------
diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
index 2129fa2..59953a1 100644
--- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
+++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
@@ -280,7 +280,7 @@ public abstract class AbstractWebSocketProcessor implements IWebSocketProcessor
 		RequestCycleContext context = new RequestCycleContext(webRequest, webResponse,
 				requestMapper, application.getExceptionMapperProvider().get());
 
-		RequestCycle requestCycle = application.getRequestCycleProvider().get(context);
+		RequestCycle requestCycle = application.getRequestCycleProvider().apply(context);
 		requestCycle.getListeners().add(application.getRequestCycleListeners());
 		requestCycle.getListeners().add(new AbstractRequestCycleListener()
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc b/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc
index 0ab54fd..4c478a6 100644
--- a/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc
@@ -67,17 +67,17 @@ The standard implementation of @AjaxRequestTarget@ used by Wicket is class @org.
 
 {code}
 setAjaxRequestTargetProvider(
-		IContextProvider<AjaxRequestTarget, Page> ajaxRequestTargetProvider)
+		Function<Page, AjaxRequestTarget> ajaxRequestTargetProvider)
 {code}
 
-The provider is an implementation of interface @org.apache.wicket.util.IContextProvider@, hence to use custom implementations of @AjaxRequestTarget@ we must register a custom provider that returns the desired implementation: 
+The provider is an implementation of interface @java.util.function.Function@, hence to use custom implementations of @AjaxRequestTarget@ we must register a custom provider that returns the desired implementation:
 
 {code}
 private static class MyCustomAjaxRequestTargetProvider implements
-		IContextProvider<AjaxRequestTarget, Page>
+		Function<Page, AjaxRequestTarget>
 	{
 		@Override
-		public AjaxRequestTarget get(Page page)
+		public AjaxRequestTarget apply(Page page)
 		{
 			return new MyCustomAjaxRequestTarget();
 		}

http://git-wip-us.apache.org/repos/asf/wicket/blob/6f4fce4e/wicket-util/src/main/java/org/apache/wicket/util/IContextProvider.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/IContextProvider.java b/wicket-util/src/main/java/org/apache/wicket/util/IContextProvider.java
index 2d21577..cf2b413 100644
--- a/wicket-util/src/main/java/org/apache/wicket/util/IContextProvider.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/IContextProvider.java
@@ -16,6 +16,8 @@
  */
 package org.apache.wicket.util;
 
+import java.util.function.Function;
+
 /**
  * An object that can provide instances of type {@code T} depending on context parameter of type
  * {@code C}
@@ -24,8 +26,10 @@ package org.apache.wicket.util;
  *            the type of the instance
  * @param <C>
  *            the type of the context parameter
+ * @deprecated Use {@link Function<C, T>} instead
  */
-public interface IContextProvider<T, C>
+@Deprecated
+public interface IContextProvider<T, C> extends Function<C, T>
 {
 	/**
 	 * Provides an instance of type {@code T}
@@ -35,4 +39,9 @@ public interface IContextProvider<T, C>
 	 * @return instance of type {@code T}
 	 */
 	T get(C context);
+
+	@Override
+	default T apply(C context) {
+		return get(context);
+	}
 }