Re: wicket git commit: render independently from web or tester
Wow, you're fast :P Sven Am 07.12.2017 um 09:29 schrieb Maxim Solodovnik: Hello Sven, Is this correct import? import com.google.common.base.Supplier; On Thu, Dec 7, 2017 at 3:24 PM,wrote: Repository: wicket Updated Branches: refs/heads/sandbox/component-renderer [created] 6e6c273fd render independently from web or tester Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6e6c273f Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6e6c273f Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6e6c273f Branch: refs/heads/sandbox/component-renderer Commit: 6e6c273fd32325a447cc32c751d5ce0c083e7ed1 Parents: 693dad3 Author: Sven Meier Authored: Thu Dec 7 09:24:12 2017 +0100 Committer: Sven Meier Committed: Thu Dec 7 09:24:12 2017 +0100 -- .../core/util/string/ComponentRenderer.java | 324 ++- .../ComponentRendererInstanceTest.java | 52 +++ 2 files changed, 369 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/wicket/blob/6e6c273f/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java -- diff --git a/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java b/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java index 0cf63bf..e971bc2 100644 --- a/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java +++ b/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java @@ -16,35 +16,341 @@ */ package org.apache.wicket.core.util.string; +import java.io.Serializable; +import java.util.List; +import java.util.Set; + import org.apache.wicket.Application; import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; +import org.apache.wicket.Page; +import org.apache.wicket.RuntimeConfigurationType; +import org.apache.wicket.Session; import org.apache.wicket.ThreadContext; import org.apache.wicket.core.request.handler.PageProvider; import org.apache.wicket.markup.IMarkupCacheKeyProvider; import org.apache.wicket.markup.IMarkupResourceStreamProvider; import org.apache.wicket.markup.MarkupNotFoundException; import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.mock.MockApplication; +import org.apache.wicket.mock.MockWebRequest; import org.apache.wicket.protocol.http.BufferedWebResponse; +import org.apache.wicket.protocol.http.WebApplication; +import org.apache.wicket.protocol.http.mock.MockServletContext; +import org.apache.wicket.request.Request; import org.apache.wicket.request.Response; +import org.apache.wicket.request.Url; import org.apache.wicket.request.cycle.RequestCycle; +import org.apache.wicket.request.http.WebRequest; +import org.apache.wicket.serialize.ISerializer; +import org.apache.wicket.session.ISessionStore; import org.apache.wicket.util.resource.IResourceStream; import org.apache.wicket.util.resource.StringResourceStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.base.Supplier; + /** * A helper class for rendering components and pages. - * - * Note: {@link #renderComponent(Component)} does not - * support rendering {@link org.apache.wicket.markup.html.panel.Fragment} instances! + * + * With the static methods of this class components and pages can be rendered + * on a thread already processing an {@link Application}. + * + * If you want to render independently from any web request processing (e.g. generating an email + * body on a worker thread), you can create an instance of this class. + * You may use an existing application, create a fresh one or just use the defaults of + * {@link #ComponentRenderer()} for a mocked application with sensible defaults. + * + * Note: For performance instances can and should be reused, be sure to call {@link #destroy()} + * when they are no longer needed. */ public class ComponentRenderer { private static final Logger LOGGER = LoggerFactory.getLogger(ComponentRenderer.class); + private WebApplication application; + + /** +* A renderer using a default mocked application, which +* +* never shares anything in a session +* never serializes anything +* +*/ + public ComponentRenderer() + { + this(new MockApplication() + { + @Override + public RuntimeConfigurationType getConfigurationType() + { + return RuntimeConfigurationType.DEPLOYMENT; + } + +
Re: wicket git commit: render independently from web or tester
Hello Sven, Is this correct import? import com.google.common.base.Supplier; On Thu, Dec 7, 2017 at 3:24 PM,wrote: > Repository: wicket > Updated Branches: > refs/heads/sandbox/component-renderer [created] 6e6c273fd > > > render independently from web or tester > > > Project: http://git-wip-us.apache.org/repos/asf/wicket/repo > Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6e6c273f > Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6e6c273f > Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6e6c273f > > Branch: refs/heads/sandbox/component-renderer > Commit: 6e6c273fd32325a447cc32c751d5ce0c083e7ed1 > Parents: 693dad3 > Author: Sven Meier > Authored: Thu Dec 7 09:24:12 2017 +0100 > Committer: Sven Meier > Committed: Thu Dec 7 09:24:12 2017 +0100 > > -- > .../core/util/string/ComponentRenderer.java | 324 ++- > .../ComponentRendererInstanceTest.java | 52 +++ > 2 files changed, 369 insertions(+), 7 deletions(-) > -- > > > http://git-wip-us.apache.org/repos/asf/wicket/blob/6e6c273f/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java > -- > diff --git > a/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java > > b/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java > index 0cf63bf..e971bc2 100644 > --- > a/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java > +++ > b/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java > @@ -16,35 +16,341 @@ > */ > package org.apache.wicket.core.util.string; > > +import java.io.Serializable; > +import java.util.List; > +import java.util.Set; > + > import org.apache.wicket.Application; > import org.apache.wicket.Component; > import org.apache.wicket.MarkupContainer; > +import org.apache.wicket.Page; > +import org.apache.wicket.RuntimeConfigurationType; > +import org.apache.wicket.Session; > import org.apache.wicket.ThreadContext; > import org.apache.wicket.core.request.handler.PageProvider; > import org.apache.wicket.markup.IMarkupCacheKeyProvider; > import org.apache.wicket.markup.IMarkupResourceStreamProvider; > import org.apache.wicket.markup.MarkupNotFoundException; > import org.apache.wicket.markup.html.WebPage; > +import org.apache.wicket.mock.MockApplication; > +import org.apache.wicket.mock.MockWebRequest; > import org.apache.wicket.protocol.http.BufferedWebResponse; > +import org.apache.wicket.protocol.http.WebApplication; > +import org.apache.wicket.protocol.http.mock.MockServletContext; > +import org.apache.wicket.request.Request; > import org.apache.wicket.request.Response; > +import org.apache.wicket.request.Url; > import org.apache.wicket.request.cycle.RequestCycle; > +import org.apache.wicket.request.http.WebRequest; > +import org.apache.wicket.serialize.ISerializer; > +import org.apache.wicket.session.ISessionStore; > import org.apache.wicket.util.resource.IResourceStream; > import org.apache.wicket.util.resource.StringResourceStream; > import org.slf4j.Logger; > import org.slf4j.LoggerFactory; > > +import com.google.common.base.Supplier; > + > /** > * A helper class for rendering components and pages. > - * > - * Note: {@link #renderComponent(Component)} does > not > - * support rendering {@link org.apache.wicket.markup.html.panel.Fragment} > instances! > + * > + * With the static methods of this class components and pages can be rendered > + * on a thread already processing an {@link Application}. > + * > + * If you want to render independently from any web request processing (e.g. > generating an email > + * body on a worker thread), you can create an instance of this class. > + * You may use an existing application, create a fresh one or just use the > defaults of > + * {@link #ComponentRenderer()} for a mocked application with sensible > defaults. > + * > + * Note: For performance instances can and should be reused, be sure to call > {@link #destroy()} > + * when they are no longer needed. > */ > public class ComponentRenderer > { > private static final Logger LOGGER = > LoggerFactory.getLogger(ComponentRenderer.class); > > + private WebApplication application; > + > + /** > +* A renderer using a default mocked application, which > +* > +* never shares anything in a session > +* never serializes anything > +* > +*/ > + public ComponentRenderer() > + { > + this(new MockApplication() > + { > + @Override > + public RuntimeConfigurationType getConfigurationType() > +