How to add dynamic attributes to tag ?

2017-08-08 Thread Hendy Irawan
I've had success my  and , but trying to add  as a WebMarkupContainer gave me:

Last cause: Mis-placed .  must be outside of
, , and . Error occurred while
rendering page: SomePage using markup stream: file:/.../SomePage.html

Motivation : https://developers.google.com/search/docs/data-types/sitename

Thank you.


--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-add-dynamic-attributes-to-head-tag-tp4678490.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: How to "force" page redirects to HTTPS?

2017-08-08 Thread Hendy Irawan
Thanks Sebastian for the hint.

But yes, I've mapped all pages before calling setRootRequestMapper.
I also put logs in my getDesiredSchemeFor and they're being called, and
returning HTTPS for all calls.

But is it possible there are some cases it's not being called (?) Or perhaps
the ?1 stateful redirect is handled differently?

My current issue is only with the redirects. Everything else seems to be
fine...

Hendy

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-force-page-redirects-to-HTTPS-tp4678479p4678484.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: How to "force" page redirects to HTTPS?

2017-08-08 Thread Hendy Irawan
I have managed to use XForwardedRequestWrapperFactory by creating a Filter.
I also use HttpsMapper as follows :

setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new
HttpsConfig()) {
@Override
protected Scheme getDesiredSchemeFor(IRequestHandler handler) {
final HttpServletRequest request = (HttpServletRequest)
RequestCycle.get().getRequest().getContainerRequest();
// Assume runtime deployment is always reverse proxied and
SSL-terminated by load balancer
// WARNING: This requires proper
XForwardedRequestWrapperFactory configuration AND nginx configuration
final Scheme desiredScheme =
"https".equalsIgnoreCase(request.getScheme()) ? Scheme.HTTPS :
super.getDesiredSchemeFor(handler);
log.debug("Scheme: {} Secure: {} Remote Addr: {}
desiredScheme for {}: {}",
request.getScheme(), request.isSecure(),
request.getRemoteAddr(),
null != handler ? handler.getClass().getSimpleName()
: null, desiredScheme);
return desiredScheme;
}
});

However, even though I've confirmed that XForwardedRequestWrapperFactory
works as intended (settings scheme=https and isSecure=true),
getDesiredSchemeFor() always returns HTTPS in my case, initial redirect for
stateful pages are always done using HTTP. i.e. from https://.../match/edit
redirected to http://.../match/edit?1, while I would expect it to be
redirected to https://.../match/edit?1

Please help, thank you in advance.

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-force-page-redirects-to-HTTPS-tp4678479p4678482.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: How to "force" page redirects to HTTPS?

2017-08-07 Thread Hendy Irawan
This seems to be interesting:

* https://issues.apache.org/jira/browse/WICKET-3015
* https://issues.apache.org/jira/browse/WICKET-3009

But how to use it?

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-force-page-redirects-to-HTTPS-tp4678479p4678480.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



How to "force" page redirects to HTTPS?

2017-08-07 Thread Hendy Irawan
Hi,

My setup is:

Wicket 7.8 running in Spring Boot (HTTP:8080) <--served by-- nginx (HTTP:80)
<--CDNed by-- CloudFlare (HTTPS:443)

This works almost well, however everytime Wicket issues a redirect it always
goes to http://version first, which is intercepted by CloudFlare then
immediately redirected back again to the HTTPS version. This is inefficient
(and may be why sometimes I experience certain issues with sessions, etc.)

What I'd like to do is so that Wicket always redirects *to* HTTPS (only for
Wicket pages, not manual URLs), or using predefined base URI that I set. I
set a base URI manually because e.g. I want to send email outside of Wicket,
the email needs to contain a link to the website, so the base URI needs to
be known. I'd like to use this base URI configuration with Wicket too.

However I don't want to use @RequireHttps because to the app server/Tomcat,
it always comes as a plain HTTP request.

Please help, thank you.

Hendy

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-force-page-redirects-to-HTTPS-tp4678479.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: History API support for navigable AJAX pages/components?

2014-12-29 Thread Hendy Irawan
I tried to do this:

protected void onSizeChanged(AjaxRequestTarget target) {
target.add(productGrid);
final PageParameters newParams = new
PageParameters(getPage().getPageParameters());
newParams.set("selectedSize",
Optional.ofNullable(selectedSizeModel.getObject()).map(Term::getQName).orElse(null));
final String newUri = urlFor(getPage().getPageClass(),
newParams).toString();
final String absoluteNewUri =
RequestUtils.toAbsolutePath(getRequest().getUrl().toString(), newUri);
target.appendJavaScript("window.history.pushState(null, null, " +
JSONObject.quote(newUri) + ");");
target.appendJavaScript("Wicket.Ajax.baseUrl = " +
JSONObject.quote(StringUtils.removeStart(absoluteNewUri, "/")) + ";");
}

but although Wicket.Ajax.baseUrl does change in the client, but seems to
have no effect.

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/History-API-support-for-navigable-AJAX-pages-components-tp4668897p4668898.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



History API support for navigable AJAX pages/components?

2014-12-29 Thread Hendy Irawan
Hi friends,

Continuing the discussion on
https://issues.apache.org/jira/browse/WICKET-5290 /
http://apache-wicket.1842946.n4.nabble.com/Wicket7-History-API-support-for-navigable-AJAX-pages-components-td4660502.html,
I made a simple working experiment:

final DropdownSizePanel dropdownSizePanel = new
DropdownSizePanel("dropdownSize", selectedSizeModel) {
@Override
protected void onSizeChanged(AjaxRequestTarget target) {
target.add(productGrid);
final PageParameters newParams = new
PageParameters(getPage().getPageParameters());
newParams.set("selectedSize",
Optional.ofNullable(selectedSizeModel.getObject()).map(Term::getQName).orElse(null));
final String newUri = urlFor(getPage().getPageClass(),
newParams).toString();
target.appendJavaScript("window.history.pushState(null, null, " 
+
JSONObject.quote(newUri) + ");");
}
};
add(dropdownSizePanel);

This works brilliantly with a caveat: Even after the browser URI is updated,
next AJAX calls still use the "old" URI.

So this is a missing piece, how do I change Wicket's client-side "URI"
variable? So next AJAX calls will use the "new" URI.

Thank you.

Hendy

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/History-API-support-for-navigable-AJAX-pages-components-tp4668897.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: java.lang.ClassNotFoundException: lowercased class name?

2014-12-14 Thread Hendy Irawan
Slightly complete-er log:

19:20:27.925 WARN  | zikra |  |
/wicket/resource/org.apache.wicket.ajax.form.ajaxformchoicecomponentupdatingbehavior/ajaxformchoicecomponentupdatingbehavior.min-ver-d12e39a9a23f5adefcfe3bfc3d520d68.js
 
207.46.13.122/msnbot-207-46-13-122.search.msn.com Mozilla/5.0 (compatible;
MSIE 9.0; Windows NT 6.1; Trident/5.0) R= | -apr-8204-exec-2 |
o.a.w.c.u.l.WicketObjects| Could not resolve class
[org.apache.wicket.ajax.form.ajaxformchoicecomponentupdatingbehavior]
java.lang.ClassNotFoundException:
org.apache.wicket.ajax.form.ajaxformchoicecomponentupdatingbehavior
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
~[tomcat-catalina-7.0.52.jar:7.0.52]

Some points:

1. URI is lowercased:
/wicket/resource/org.apache.wicket.ajax.form.ajaxformchoicecomponentupdatingbehavior/ajaxformchoicecomponentupdatingbehavior.min-ver-d12e39a9a23f5adefcfe3bfc3d520d68.js
2. although the host is msnbot-207-46-13-122.search.msn.com, for the user
agent it doesn't advertise as MSNBot ...
3. Referer header is empty, which isn't helpful :(
4. I don't really know where it gets this lowercased URI.. maybe my mistake,
or maybe the bot does the lowercasing.
5. *If* it's my mistake, then why no other bots do lowercased URI requests?

If this is actually MSNBot's issue, surely I shouldn't be the only one
having this problem.

I'm thinking of catching this particular Exception, logging it as DEBUG
(effectively ignoring it), and go on with my life (i.e. return 404 not found
or even 400 bad request). Any suggestion? If so, where should I put this
Exception handler, is it in RequestListener?

Hendy

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/java-lang-ClassNotFoundException-lowercased-class-name-tp4668754p4668766.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: java.lang.ClassNotFoundException: lowercased class name?

2014-12-14 Thread Hendy Irawan
Thanks Martin, that really helps :)

I have a clue though, all of those "lowercased" requests are coming from
MSNBot IPs.
I'm suspecting the bot is "testing" whether the URI is accessible via
lowercase (perhaps for duplicate content prevention) if that's true then
that would suck.

However I also had a log where the request is from Googlebot and the
requested class name seems to be correct, but still yields
ClassNotFoundException... any idea how this could happen?

11:50:00.234 WARN  | galerigoti ||
-ver-3D35A572284BBA11932BD72F46EE6574.js
66.249.67.16/crawl-66-249-67-16.googlebot.com Mozilla/5.0 (compati |
-apr-8204-exec-5 | o.a.w.c.u.l.WicketObjects| Could not resolve
class [org.soluvas.web.bootstrap.ToTopJs]
java.lang.ClassNotFoundException: org.soluvas.web.bootstrap.ToTopJs
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
~[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
~[tomcat-catalina-7.0.52.jar:7.0.52]
at java.lang.Class.forName0(Native Method) ~[na:1.8.0_25]
at java.lang.Class.forName(Class.java:344) ~[na:1.8.0_25]
at
org.apache.wicket.application.AbstractClassResolver.resolveClass(AbstractClassResolver.java:108)
~[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.core.util.lang.WicketObjects.resolveClass(WicketObjects.java:72)
~[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper.resolveClass(BasicResourceReferenceMapper.java:153)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper.mapRequest(BasicResourceReferenceMapper.java:129)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.mapper.ParentPathReferenceRewriter.mapRequest(ParentPathReferenceRewriter.java:84)
[wicket-request-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.mapper.CompoundRequestMapper.mapRequest(CompoundRequestMapper.java:152)
[wicket-request-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.cycle.RequestCycle.resolveRequestHandler(RequestCycle.java:190)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:215)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.soluvas.web.site.servlet.ShiroPrincipalsServletFilter.doFilter(ShiroPrincipalsServletFilter.java:59)
[org.soluvas.web.site-2.2.0-SNAPSHOT.jar:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.soluvas.web.site.servlet.MoreMdcServletFilter.doFilter(MoreMdcServletFilter.java:62)
[org.soluvas.web.site-2.2.0-SNAPSHOT.jar:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
ch.qos.logback.classic.helpers.MDCInsertingServletFilter.doFilter(MDCInsertingServletFilter.java:51)
[logback-classic-1.0.13.jar:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
[shiro-web-1.2.3.jar:1.2.3]
at
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
[shiro-web-1.2.3.jar:1.2.3]
at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
[shiro-core-1.2.3.jar:1.2.3]
at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
[shiro-core-1.2.3.jar:1.2.3]
at
org.apache.shiro.subject.supp

Re: java.lang.ClassNotFoundException: lowercased class name?

2014-12-13 Thread Hendy Irawan
I wonder how another filter could alter the behavior for this issue..

The call fails at
org.apache.wicket.core.util.lang.WicketObjects.resolveClass(WicketObjects.java:72),
surely the class name to be resolved is solely at Wicket's control?

On Sun, Dec 14, 2014, 01:18 Ernesto Reinaldo Barreiro-4 [via Apache Wicket]
 wrote:

There are more filters, besides wicket filter, on the filter chain. Did you
check those?


--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/java-lang-ClassNotFoundException-lowercased-class-name-tp4668754p4668757.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



java.lang.ClassNotFoundException: lowercased class name?

2014-12-13 Thread Hendy Irawan
Has anyone ever encountered this error?

It confuses me because:
1. It doesn't happen often, but happens a few times a day
2. Only happens on production
3. Pretty much all functionality work fine when tested manually

What's weird is the class name is lowercased, i.e.
"org.apache.wicket.ajax.form.ajaxformchoicecomponentupdatingbehavior"
doesn't exist... but
"org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior" does.
Who did the lowercasing?

23:41:01.411 WARN  | kalyanitun ||
-ver-d12e39a9a23f5adefcfe3bfc3d520d68.js   
msnbot-207-46-13-117.search.msn.com Mozilla/5.0 (compati | -apr-8204-exec-4
| o.a.w.c.u.l.WicketObjects| Could not resolve class
[org.apache.wicket.ajax.form.ajaxformchoicecomponentupdatingbehavior]
java.lang.ClassNotFoundException:
org.apache.wicket.ajax.form.ajaxformchoicecomponentupdatingbehavior
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
~[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
~[tomcat-catalina-7.0.52.jar:7.0.52]
at java.lang.Class.forName0(Native Method) ~[na:1.8.0_25]
at java.lang.Class.forName(Class.java:344) ~[na:1.8.0_25]
at
org.apache.wicket.application.AbstractClassResolver.resolveClass(AbstractClassResolver.java:108)
~[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.core.util.lang.WicketObjects.resolveClass(WicketObjects.java:72)
~[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper.resolveClass(BasicResourceReferenceMapper.java:153)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.core.request.mapper.BasicResourceReferenceMapper.mapRequest(BasicResourceReferenceMapper.java:129)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.mapper.ParentPathReferenceRewriter.mapRequest(ParentPathReferenceRewriter.java:84)
[wicket-request-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.mapper.CompoundRequestMapper.mapRequest(CompoundRequestMapper.java:152)
[wicket-request-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.cycle.RequestCycle.resolveRequestHandler(RequestCycle.java:190)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:215)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
[wicket-core-6.18.0.jar:6.18.0]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.soluvas.web.site.servlet.ShiroPrincipalsServletFilter.doFilter(ShiroPrincipalsServletFilter.java:59)
[org.soluvas.web.site-2.2.0-SNAPSHOT.jar:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.soluvas.web.site.servlet.MoreMdcServletFilter.doFilter(MoreMdcServletFilter.java:62)
[org.soluvas.web.site-2.2.0-SNAPSHOT.jar:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
ch.qos.logback.classic.helpers.MDCInsertingServletFilter.doFilter(MDCInsertingServletFilter.java:51)
[logback-classic-1.1.2.jar:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[tomcat-catalina-7.0.52.jar:7.0.52]
at
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
[shiro-web-1.2.3.jar:1.2.3]
at
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
[shiro-web-1.2.3.jar:1.2.3]
at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
[shiro-core-1.2.3.jar:1.2.3]
at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
[shiro-core-1.2.3.jar:1.2

Re: How to instruct RenderPageRequestHandler to redirect using 301 Permanent

2014-12-10 Thread Hendy Irawan
Awesome!!!

Thank so much Martin! And additional thanks for answering so quickly :))

Hendy

On Wed, Dec 10, 2014, 20:36 Martin Grigorov-4 [via Apache Wicket] <
ml-node+s1842946n4668721...@n4.nabble.com> wrote:

> RequestCycle.get().urlFor(pageClass, parameters)
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Wed, Dec 10, 2014 at 3:20 PM, Hendy Irawan <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4668721&i=0>> wrote:
>
> > Thanks for prompt advice Martin, however please explain more... I
> commented
> > that code because I don't know how to construct the redirectUrl String
> from
> > a PageProvider, inside RequestMapper.mapRequest? (Or alternatively, from
> > PageClass + PageParameters)
> >
> > Hoping you can shed light on this.
> > Thanks in advance.
> >
> > Hendy
> >
> > On Wed, Dec 10, 2014, 20:12 Martin Grigorov-4 [via Apache Wicket] <
> > [hidden email] <http:///user/SendEmail.jtp?type=node&node=4668721&i=1>>
> wrote:
> >
> > > Hi,
> > >
> > > To do a "normal" redirect Wicket
> > > uses javax.servlet.http.HttpServletResponse#sendRedirect() and this
> sets
> > > 302 as a code.
> > > To have better control you should use RedirectRequestHandler, as in
> your
> > > commented out code.
> > >
> > > Martin Grigorov
> > > Wicket Training and Consulting
> > > https://twitter.com/mtgrigorov
> > >
> > > On Wed, Dec 10, 2014 at 2:56 PM, Hendy Irawan <[hidden email]
> > > <http:///user/SendEmail.jtp?type=node&node=4668717&i=0>> wrote:
> > >
> > > > I currently have a custom SEO-friendly RequestMapper with the
> following
> > > > snippet:
> > > >
> > > > @Override
> > > > public final IRequestHandler mapRequest(Request request) {
> > > > try {
> > > > final String userAgent = ((HttpServletRequest)
> > > > request.getContainerRequest()).getHeader("User-Agent");
> > > > final RedirectPolicy redirectPolicy = userAgent !=
> null
> > > &&
> > > > BotUtils.isBot(userAgent) ? RedirectPolicy.NEVER_REDIRECT :
> > > > RedirectPolicy.AUTO_REDIRECT;
> > > >
> > > > final UrlInfo urlInfo = parseRequest(request);
> > > >
> > > > // check if the URL is long enough and starts with
> the
> > > > proper segments
> > > > if (urlInfo != null)
> > > > {
> > > > PageComponentInfo info =
> > > > urlInfo.getPageComponentInfo();
> > > > Class pageClass
> =
> > > > urlInfo.getPageClass();
> > > > PageParameters pageParameters =
> > > > urlInfo.getPageParameters();
> > > >
> > > > if (info == null)
> > > > {
> > > > // if there are is no page instance
> > > > information
> > > > // then this is a simple
> bookmarkable
> > > URL
> > > > return
> processBookmarkable(pageClass,
> > > > pageParameters, redirectPolicy);
> > > > }
> > > > else if (info.getPageInfo().getPageId() !=
> null
> > > &&
> > > > info.getComponentInfo() == null)
> > > > {
> > > > // if there is page instance
> > information
> > > > in the URL but no component and
> > > > listener
> > > > // interface then this is a hybrid
> URL
> > -
> > > > we need to try to reuse
> > > > existing page
> > > > // instance
> > > > return
> > processHybrid(info.getPageInfo(),
> > > > pageClass, pageParameters,
> > > > null);
> > > > }
> > > > else if (info.getComponentInfo() != null)
> > > > {
> > > > // with both page instance and
> > > > component+listener this is a listener
> > > >

Re: How to instruct RenderPageRequestHandler to redirect using 301 Permanent

2014-12-10 Thread Hendy Irawan
Thanks for prompt advice Martin, however please explain more... I commented
that code because I don't know how to construct the redirectUrl String from
a PageProvider, inside RequestMapper.mapRequest? (Or alternatively, from
PageClass + PageParameters)

Hoping you can shed light on this.
Thanks in advance.

Hendy

On Wed, Dec 10, 2014, 20:12 Martin Grigorov-4 [via Apache Wicket] <
ml-node+s1842946n4668717...@n4.nabble.com> wrote:

> Hi,
>
> To do a "normal" redirect Wicket
> uses javax.servlet.http.HttpServletResponse#sendRedirect() and this sets
> 302 as a code.
> To have better control you should use RedirectRequestHandler, as in your
> commented out code.
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Wed, Dec 10, 2014 at 2:56 PM, Hendy Irawan <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=4668717&i=0>> wrote:
>
> > I currently have a custom SEO-friendly RequestMapper with the following
> > snippet:
> >
> > @Override
> > public final IRequestHandler mapRequest(Request request) {
> > try {
> > final String userAgent = ((HttpServletRequest)
> > request.getContainerRequest()).getHeader("User-Agent");
> > final RedirectPolicy redirectPolicy = userAgent != null
> &&
> > BotUtils.isBot(userAgent) ? RedirectPolicy.NEVER_REDIRECT :
> > RedirectPolicy.AUTO_REDIRECT;
> >
> > final UrlInfo urlInfo = parseRequest(request);
> >
> > // check if the URL is long enough and starts with the
> > proper segments
> > if (urlInfo != null)
> > {
> > PageComponentInfo info =
> > urlInfo.getPageComponentInfo();
> > Class pageClass =
> > urlInfo.getPageClass();
> > PageParameters pageParameters =
> > urlInfo.getPageParameters();
> >
> > if (info == null)
> > {
> > // if there are is no page instance
> > information
> > // then this is a simple bookmarkable
> URL
> > return processBookmarkable(pageClass,
> > pageParameters, redirectPolicy);
> > }
> > else if (info.getPageInfo().getPageId() != null
> &&
> > info.getComponentInfo() == null)
> > {
> > // if there is page instance information
> > in the URL but no component and
> > listener
> > // interface then this is a hybrid URL -
> > we need to try to reuse
> > existing page
> > // instance
> > return processHybrid(info.getPageInfo(),
> > pageClass, pageParameters,
> > null);
> > }
> > else if (info.getComponentInfo() != null)
> > {
> > // with both page instance and
> > component+listener this is a listener
> > interface URL
> > return processListener(info, pageClass,
> > pageParameters);
> > }
> > else if (info.getPageInfo().getPageId() == null)
> > {
> > return processBookmarkable(pageClass,
> > pageParameters, redirectPolicy);
> > }
> >
> > }
> > return null;
> > } catch (MapperRedirectException e) {
> > log.debug("Redirecting '{}' to canonical page: {}",
> > request.getUrl(),
> > e.getPageProvider());
> > //  return new RedirectRequestHandler(redirectUrl,
> > 301);
> > return new RenderPageRequestHandler(e.getPageProvider(),
> > RedirectPolicy.ALWAYS_REDIRECT);
> > }
> > }
> >
> > What it does is allow freeform root URI paths, e.g.
> > http://www.tuneeca.com/t-1113012 instead of the longer
> > http://www.tuneeca.com/product/t-1113012 .
> >
> > Now, requests to http://www.tuneeca.com/product/t-1113012 are also
> handled
> > by the same RequestMapper and will be redirected to
> > http://www.tuneeca.com/t-1113012 .
> >
> > However, currently it's using 302 temporary redirect. How to make it use
> > 301
> 

How to instruct RenderPageRequestHandler to redirect using 301 Permanent

2014-12-10 Thread Hendy Irawan
I currently have a custom SEO-friendly RequestMapper with the following
snippet:

@Override
public final IRequestHandler mapRequest(Request request) {
try {
final String userAgent = ((HttpServletRequest)
request.getContainerRequest()).getHeader("User-Agent");
final RedirectPolicy redirectPolicy = userAgent != null &&
BotUtils.isBot(userAgent) ? RedirectPolicy.NEVER_REDIRECT :
RedirectPolicy.AUTO_REDIRECT;

final UrlInfo urlInfo = parseRequest(request);

// check if the URL is long enough and starts with the proper 
segments
if (urlInfo != null)
{
PageComponentInfo info = urlInfo.getPageComponentInfo();
Class pageClass = 
urlInfo.getPageClass();
PageParameters pageParameters = 
urlInfo.getPageParameters();

if (info == null)
{
// if there are is no page instance information
// then this is a simple bookmarkable URL
return processBookmarkable(pageClass, 
pageParameters, redirectPolicy);
}
else if (info.getPageInfo().getPageId() != null &&
info.getComponentInfo() == null)
{
// if there is page instance information in the 
URL but no component and
listener
// interface then this is a hybrid URL - we 
need to try to reuse
existing page
// instance
return processHybrid(info.getPageInfo(), 
pageClass, pageParameters,
null);
}
else if (info.getComponentInfo() != null)
{
// with both page instance and 
component+listener this is a listener
interface URL
return processListener(info, pageClass, 
pageParameters);
}
else if (info.getPageInfo().getPageId() == null)
{
return processBookmarkable(pageClass, 
pageParameters, redirectPolicy);
}

}
return null;
} catch (MapperRedirectException e) {
log.debug("Redirecting '{}' to canonical page: {}", 
request.getUrl(),
e.getPageProvider());
//  return new RedirectRequestHandler(redirectUrl, 301);
return new RenderPageRequestHandler(e.getPageProvider(),
RedirectPolicy.ALWAYS_REDIRECT);
}
}

What it does is allow freeform root URI paths, e.g.
http://www.tuneeca.com/t-1113012 instead of the longer
http://www.tuneeca.com/product/t-1113012 .

Now, requests to http://www.tuneeca.com/product/t-1113012 are also handled
by the same RequestMapper and will be redirected to
http://www.tuneeca.com/t-1113012 .

However, currently it's using 302 temporary redirect. How to make it use 301
permanent redirect?

Thank you.

Hendy


--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-instruct-RenderPageRequestHandler-to-redirect-using-301-Permanent-tp4668716.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Wicket and microdata

2014-11-19 Thread Hendy Irawan
Here's what I came up with :
https://github.com/soluvas/soluvas-web/commit/8cfbe121bc8589502154bf72fff9bd94762dd7cb

While my usage is for e-commerce websites, with sufficient definitions it's
usable for any kind of site, primarily using schema.org vocabulary. IMHO
it's quite convenient (thanks to Wicket's Behavior programming model, yay!)
and also type-safe (no Strings, ma!).

Usage examples:

final WebMarkupContainer productDiv = new WebMarkupContainer("productDiv");
productDiv.add(new ItemScopeBehavior(SchemaOrgClass.PRODUCT));

...

protected void populateItem(final ListItem imageItem) {
imageItem.add(new ImageMicrodataBehavior());

...

final Label descLabel = new Label("descriptionHtml", new
PropertyModel(model, "descriptionHtml"));
descLabel.add(new ItemPropBehavior(SchemaOrgProperty.DESCRIPTION));

...

inStockLabel = new Label("inStockStatus", "In Stock");
inStockLabel.add(new ItemPropEnumBehavior(SchemaOrgProperty.AVAILABILITY,
ItemAvailability.IN_STOCK));
add(inStockLabel);
outOfStockLabel = new Label("outOfStockStatus", "Out of Stock");
outOfStockLabel.add(new ItemPropEnumBehavior(SchemaOrgProperty.AVAILABILITY,
ItemAvailability.OUT_OF_STOCK));
add(outOfStockLabel);

...

currencyPriceAfterDiscountLbl.add(new
ItemPropContentBehavior(SchemaOrgProperty.PRICE_CURRENCY, 
new PropertyModel(selectedProductModel, 
"currency")));
add(currencyPriceAfterDiscountLbl);
final Label priceAfterDiscountsLabel = new MoneyLabel("price",
priceAfterDiscountsModel);
priceAfterDiscountsLabel.add(new
ItemPropContentBehavior(SchemaOrgProperty.PRICE, 
priceAfterDiscountsModel));

...

localSkuCtr.add(new Label("localSkuValue", new PropertyModel<>(productModel,
"localSku"))
.add(new ItemPropBehavior(SchemaOrgProperty.SKU)) );

Hendy


--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Wicket-and-microdata-tp4661135p4668470.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Wicket and microdata

2014-11-19 Thread Hendy Irawan
Hi Dirk and Martin,


Dirk Forchel wrote
> 
> Martin Grigorov-4 wrote
>> Another way is to add these attributes directly in the markup. No need to
>> add Behavior to the components for something that is always true.
> Yes, but I prefer the "dynamic" way. A Component/Page provides some kind
> of "microdata" and implements an interface. The AttributeAppender takes
> the information and writes the appropriate attribute at the tag.

I agree. Some markups are customizable by designers, I'd rather let them
worry about presentation structure rather than semantic data, which are
closer to the model.


Martin Grigorov-4 wrote
>> seen this before)? Or is this marker value for internal use only? At
>> least
>> the generated HTML code looks like intended.
>> I would like to know whether there is a kind of general solution to deal
>> with "microdata", say a bunch of Behavior-classes to add this kind of
>> data.
>>
> 
> AttributeModifier is a Behavior itself.
> There is no special code in Wicket for microdata. This specification is
> not
> broadly used.

I thought someone has had the same requirements within his project and came
with a general solution for this specification. Okay, fair enough.


Martin, "This [microdata] specification is not broadly used." some of us
disagree with that ("some" refers to Google, Bing, and Yahoo, for a start)
;-) : https://blog.kissmetrics.com/get-started-using-schema/

Dirk, yes I have exactly the same requirements as yours for  Bippo
  . Do you share your solution somewhere?

I'm planning to put my work as part of  soluvas-web project on GitHub
   since it's most comfortable
within our build environment, but if anybody wants it in wicketstuff I can
also contribute.

Thanks.


--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Wicket-and-microdata-tp4661135p4668468.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: [ANNOUNCE] Apache Wicket 6.17.0 released

2014-09-08 Thread Hendy Irawan
After 3 days Wicket 6.17.0 is still not available from Maven Central:

http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.apache.wicket%22%20AND%20a%3A%22wicket-core%22

Please check.

Ironically (but good) Wicketstuff 6.17.0 is already available in Maven
Central.

Hendy

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/ANNOUNCE-Apache-Wicket-6-17-0-released-tp4667360p4667383.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: How to get PageClass from BufferedResponseRequestHandler ? And how to "link" related requests?

2014-06-17 Thread Hendy Irawan
Thank you Martin!

Filed https://issues.apache.org/jira/browse/WICKET-5621

Hendy

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-get-PageClass-from-BufferedResponseRequestHandler-And-how-to-link-related-requests-tp4666247p4666286.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: How to get PageClass from BufferedResponseRequestHandler ? And how to "link" related requests?

2014-06-16 Thread Hendy Irawan
It seems ignoring BufferedResponseRequestHandler is harder than I thought
because IResponseFilter is only called during
BufferedResponseRequestHandler, not during the preceding
IPageRequestHandler.

What is the best way to achieve my goal? i.e. during the begin and end of
IPageRequestHandler I need to perform tasks
(i.e. noting the start values, calculating the delta of values during
request processing, and then manipulate the response).

for begin and end we have RequestCycleListener.onRequestHandlerResolved and
onEndRequest, but I don't know how to manipulate the response there (in
onEndRequest)??

The response manipulation is quite simple (adding dynamic JavaScripts before
) but I'd like to do it in CPU-efficient way if possible.

Hendy

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-get-PageClass-from-BufferedResponseRequestHandler-And-how-to-link-related-requests-tp4666247p4666282.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: How to get PageClass from BufferedResponseRequestHandler ? And how to "link" related requests?

2014-06-13 Thread Hendy Irawan
Thank you Martin.

Currently I went with this solution:
https://github.com/soluvas/soluvas-web/blob/3c3cb8a923e06522ccee156725196a8ab15fba0b/site/src/main/java/org/soluvas/web/site/metrics/ThreadMetricsRequestCycleListener.java

I'll follow your advice and just ignored it, then :)

Hendy

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-get-PageClass-from-BufferedResponseRequestHandler-And-how-to-link-related-requests-tp4666247p4666252.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: How to get PageClass from BufferedResponseRequestHandler ? And how to "link" related requests?

2014-06-13 Thread Hendy Irawan
I also tried requestCycle.setMetaData() but the metadata is also gone for the
next related request. :(

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-get-PageClass-from-BufferedResponseRequestHandler-And-how-to-link-related-requests-tp4666247p4666248.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



How to get PageClass from BufferedResponseRequestHandler ? And how to "link" related requests?

2014-06-13 Thread Hendy Irawan
Hi,

How to get PageClass from BufferedResponseRequestHandler ?

At little background: I'm sending processing metrics to Google Analytics,
mentioning the PageClass (if available), used memory, and processing time.
I'm using RequestCycleListener to do the crux of this.

When Wicket's using IPageClassRequestHandler, things are fine.

However, on the "second request" (after redirect to ?pageVersion), Wicket's
using BufferedResponseRequestHandler, and I can't get the PageClass.

A related question is how do I "link" related requests? Logically, I want
this to happen:

1. User navigates to /contact
2. [http-thread-1] Begin RequestGroup -> sets starting mem usage, page
class, etc.
3. [http-thread-1] page processing
4. Wicket redirects to /contact?0
5. [http-thread-2] page rendered
6. [http-thread-2] End RequestGroup -> calculates mem usage, etc. between
#2..#6

I tried to use ThreadLocal but since thread is different, the information
stored in step #2 is lost.

Thank you.


--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-get-PageClass-from-BufferedResponseRequestHandler-And-how-to-link-related-requests-tp4666247.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: ListenerInvocationNotAllowedException and EmptyRequestHandler

2014-06-04 Thread Hendy Irawan
It turns out it happens because I was using a custom AjaxChannel with name
"autodisable".

Changing the AjaxChannel name to "0" solves the problem.

BTW, Can I request AjaxChannel.DEFAULT public static constant with a value
of "0" ? I don't feel comfortable typing "0" there, I much prefer a
constant.

--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/ListenerInvocationNotAllowedException-and-EmptyRequestHandler-tp4663618p4666114.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: ListenerInvocationNotAllowedException and EmptyRequestHandler

2014-06-04 Thread Hendy Irawan
I also get the same error:

org.apache.wicket.core.request.handler.ListenerInvocationNotAllowedException:
Behavior rejected interface invocation. Component: [NumberTextField
[Component id = qty]] Behavior:
id.co.bippo.inventory.web.VariantQtyEditor$2$2$1@530459be Listener:
[RequestListenerInterface name=IBehaviorListener, method=public abstract
void org.apache.wicket.behavior.IBehaviorListener.onRequest()]
at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:237)
~[RequestListenerInterface.class:6.15.0]
at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:250)
~[ListenerInterfaceRequestHandler.class:6.15.0]
at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:236)
~[ListenerInterfaceRequestHandler.class:6.15.0]
at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:862)
~[RequestCycle$HandlerExecutor.class:6.15.0]
at
org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
~[RequestHandlerStack.class:6.15.0]
at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
[RequestCycle.class:6.15.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
[RequestCycle.class:6.15.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
[RequestCycle.class:6.15.0]
at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
[WicketFilter.class:6.15.0]
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
[WicketFilter.class:6.15.0]
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
[WicketFilter.class:6.15.0]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
[catalina.jar:8.0.5]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[catalina.jar:8.0.5]
at
org.soluvas.web.site.servlet.ShiroPrincipalsServletFilter.doFilter(ShiroPrincipalsServletFilter.java:59)
[classes/:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
[catalina.jar:8.0.5]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[catalina.jar:8.0.5]
at
org.soluvas.web.site.servlet.MoreMdcServletFilter.doFilter(MoreMdcServletFilter.java:62)
[classes/:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
[catalina.jar:8.0.5]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[catalina.jar:8.0.5]
at
ch.qos.logback.classic.helpers.MDCInsertingServletFilter.doFilter(MDCInsertingServletFilter.java:51)
[MDCInsertingServletFilter.class:na]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
[catalina.jar:8.0.5]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[catalina.jar:8.0.5]
at
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
[AbstractShiroFilter.class:1.2.3]
at
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
[AbstractShiroFilter$1.class:1.2.3]
at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
[SubjectCallable.class:1.2.3]
at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
[SubjectCallable.class:1.2.3]
at
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
[DelegatingSubject.class:1.2.3]
at
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
[AbstractShiroFilter.class:1.2.3]
at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
[OncePerRequestFilter.class:1.2.3]
at
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
[DelegatingFilterProxy.class:3.2.9.RELEASE]
at
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
[DelegatingFilterProxy.class:3.2.9.RELEASE]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
[catalina.jar:8.0.5]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[catalina.jar:8.0.5]
at
com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97)
[AbstractInstrumentedFilter.class:3.0.2]
at
org.apache.catalina.core.Applicati

Re: How to increase number of stored pages in PageStore for Wicket 6.8?

2013-09-24 Thread Hendy Irawan
Forgive me for asking one more thing.

If I want to offload the wicket store to another server, how is the best
way to do this?

1. Mount the Wicket Store folder from an NFS share; or
2. Configure Wicket-specific other Store implementation (JDBC?); or
3. Configure Wicket to store in session (how?) and let Tomcat's
PersistentManager handle this?

I've been reading
https://cwiki.apache.org/confluence/display/WICKET/Page+Storage but it
seems it only applies to Wicket 1.5 ?

Thank you.

Hendy


Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on
LinkedIn<http://id.linkedin.com/in/hendyirawan>
Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
Bisnis | Bandung


On Tue, Sep 24, 2013 at 3:46 PM, Hendy Irawan  wrote:

> Thank you Francois and Martin.
>
> So the 3 pages are actually because Wicket limits to size (not number of
> pages?)
>
> Is it possible to set this on a per-request basis?
>
> I'd like to set guests to have the default size 10 MB, more for
> authenticated users (50 MB?) and even more for privileged/selected users.
> Is this possible?
>
> Thank you.
>
> Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on 
> LinkedIn<http://id.linkedin.com/in/hendyirawan>
> Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
> Bisnis | Bandung
>
>>
>>
> Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on 
> LinkedIn<http://id.linkedin.com/in/hendyirawan>
> Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
> Bisnis | Bandung
>
>
> On Tue, Sep 24, 2013 at 3:44 PM, Martin Grigorov-4 [via Apache Wicket] <
> ml-node+s1842946n4661461...@n4.nabble.com> wrote:
>
>> Hi,
>>
>> See org.apache.wicket.settings.IStoreSettings#setMaxSizePerSession
>> By default Wicket gives 10Mb per session. How many pages will fit inside
>> these 10Mb depends on the pages themselves.
>>
>>
>> On Tue, Sep 24, 2013 at 10:34 AM, Hendy Irawan <[hidden 
>> email]<http://user/SendEmail.jtp?type=node&node=4661461&i=0>>
>> wrote:
>>
>> > Hi,
>> >
>> > When I checked the work/.../wicketFilter-filestore folder it seems that
>> for
>> > every session Wicket stores the last 3 stateful pages.
>> >
>> > Will this cause problems when a user opens more than 3 (stateful) tabs
>> at
>> > once?
>> >
>> > How do I increase this number? Is it possible to increase this number
>> for
>> > select requests only? (i.e. only for logged in users having specific
>> > authorization/security roles, while guests and regular users get the
>> > standard 3 pages)
>> >
>> > Thank you.
>> >
>> > Hendy
>> >
>> >
>> >
>> > --
>> > View this message in context:
>> >
>> http://apache-wicket.1842946.n4.nabble.com/How-to-increase-number-of-stored-pages-in-PageStore-for-Wicket-6-8-tp4661459.html
>> > Sent from the Users forum mailing list archive at Nabble.com.
>> >
>> > -
>> > To unsubscribe, e-mail: [hidden 
>> > email]<http://user/SendEmail.jtp?type=node&node=4661461&i=1>
>> > For additional commands, e-mail: [hidden 
>> > email]<http://user/SendEmail.jtp?type=node&node=4661461&i=2>
>> >
>> >
>>
>>
>> --
>>  If you reply to this email, your message will be added to the
>> discussion below:
>>
>> http://apache-wicket.1842946.n4.nabble.com/How-to-increase-number-of-stored-pages-in-PageStore-for-Wicket-6-8-tp4661459p4661461.html
>>  To unsubscribe from How to increase number of stored pages in PageStore
>> for Wicket 6.8?, click 
>> here<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4661459&code=aGVuZHlAc29sdXZhcy5jb218NDY2MTQ1OXwxNTI0Njc4NzUy>
>> .
>> NAML<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
>




--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-increase-number-of-stored-pages-in-PageStore-for-Wicket-6-8-tp4661459p4661463.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: How to increase number of stored pages in PageStore for Wicket 6.8?

2013-09-24 Thread Hendy Irawan
Thank you Francois and Martin.

So the 3 pages are actually because Wicket limits to size (not number of
pages?)

Is it possible to set this on a per-request basis?

I'd like to set guests to have the default size 10 MB, more for
authenticated users (50 MB?) and even more for privileged/selected users.
Is this possible?

Thank you.

Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on
LinkedIn<http://id.linkedin.com/in/hendyirawan>
Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
Bisnis | Bandung

>
>
Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on
LinkedIn<http://id.linkedin.com/in/hendyirawan>
Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
Bisnis | Bandung


On Tue, Sep 24, 2013 at 3:44 PM, Martin Grigorov-4 [via Apache Wicket] <
ml-node+s1842946n4661461...@n4.nabble.com> wrote:

> Hi,
>
> See org.apache.wicket.settings.IStoreSettings#setMaxSizePerSession
> By default Wicket gives 10Mb per session. How many pages will fit inside
> these 10Mb depends on the pages themselves.
>
>
> On Tue, Sep 24, 2013 at 10:34 AM, Hendy Irawan <[hidden 
> email]<http://user/SendEmail.jtp?type=node&node=4661461&i=0>>
> wrote:
>
> > Hi,
> >
> > When I checked the work/.../wicketFilter-filestore folder it seems that
> for
> > every session Wicket stores the last 3 stateful pages.
> >
> > Will this cause problems when a user opens more than 3 (stateful) tabs
> at
> > once?
> >
> > How do I increase this number? Is it possible to increase this number
> for
> > select requests only? (i.e. only for logged in users having specific
> > authorization/security roles, while guests and regular users get the
> > standard 3 pages)
> >
> > Thank you.
> >
> > Hendy
> >
> >
> >
> > --
> > View this message in context:
> >
> http://apache-wicket.1842946.n4.nabble.com/How-to-increase-number-of-stored-pages-in-PageStore-for-Wicket-6-8-tp4661459.html
> > Sent from the Users forum mailing list archive at Nabble.com.
> >
> > -
> > To unsubscribe, e-mail: [hidden 
> > email]<http://user/SendEmail.jtp?type=node&node=4661461&i=1>
> > For additional commands, e-mail: [hidden 
> > email]<http://user/SendEmail.jtp?type=node&node=4661461&i=2>
> >
> >
>
>
> --
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://apache-wicket.1842946.n4.nabble.com/How-to-increase-number-of-stored-pages-in-PageStore-for-Wicket-6-8-tp4661459p4661461.html
>  To unsubscribe from How to increase number of stored pages in PageStore
> for Wicket 6.8?, click 
> here<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4661459&code=aGVuZHlAc29sdXZhcy5jb218NDY2MTQ1OXwxNTI0Njc4NzUy>
> .
> NAML<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-increase-number-of-stored-pages-in-PageStore-for-Wicket-6-8-tp4661459p4661462.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



How to increase number of stored pages in PageStore for Wicket 6.8?

2013-09-24 Thread Hendy Irawan
Hi,

When I checked the work/.../wicketFilter-filestore folder it seems that for
every session Wicket stores the last 3 stateful pages.

Will this cause problems when a user opens more than 3 (stateful) tabs at
once?

How do I increase this number? Is it possible to increase this number for
select requests only? (i.e. only for logged in users having specific
authorization/security roles, while guests and regular users get the
standard 3 pages)

Thank you.

Hendy



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-increase-number-of-stored-pages-in-PageStore-for-Wicket-6-8-tp4661459.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: StalePageException's followed by "An error occurred while checking whether a page is stateless. Assuming it is stateful."

2013-09-23 Thread Hendy Irawan
Hi,

I'm not sure if this is related, I'm suspecting the StalePageException's are
a cause to this: sometimes the page response are "misrouted" from the
request:

1. A user clicks an AjaxLink/AjaxButton, but gets redirected to a totally
unrelated page (like the search page) which seems to be for another HTTP
request
2. A user clicks a BookmarkablePageLink, but gets redirected to a totally
unrelated page (like the search page) which seems to be for another HTTP
request
3. A user clicks a BookmarkablePageLink, but the browser then displays a
Wicket AJAX XML response for totally unrelated request

With a concurrent user of around 50, this happens in about 1 out of 100
clicks for a single user.

BTW we're using Wicket 6.8.0, the NIO HTTP Connector and Atmosphere 0.10.

Any idea how this could happen? Or a way to diagnose the cause?

Hendy



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/StalePageException-s-followed-by-An-error-occurred-while-checking-whether-a-page-is-stateless-Assumi-tp4661457p4661458.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



StalePageException's followed by "An error occurred while checking whether a page is stateless. Assuming it is stateful."

2013-09-23 Thread Hendy Irawan
We're getting a lot of StalePageException, immediately followed by "An error
occurred while checking whether a page is stateless. Assuming it is
stateful." on stateful pages and especially when crawled by Google bot.

Any idea why this is happening?

@timestamp  2013-09-24T01:42:47-04:00
caller  Caller+0 at
org.apache.wicket.request.RequestHandlerStack.detach(RequestHandlerStack.java:184)
Caller+1 at
org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:636)
Caller+2 at
org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:589)
Caller+3 at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293)
Caller+4 at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
level   ERROR
logger  org.apache.wicket.request.RequestHandlerStack
message Error detaching RequestHandler
req.queryString   
0-1.IBehaviorListener.1-productStatusPanel-addToCartRegion-1-productCartComposeForm-quantityProductPanel-quantity
req.remoteHost  127.0.0.1
req.requestURI
/tuneeca_prd_commerce/app/product/gamis-je-t-aime-champs-elyses
req.requestURL
http://localhost:8201/tuneeca_prd_commerce/app/product/gamis-je-t-aime-champs-elyses
req.sessionId   369EE
req.userAgent   Mozilla/5.0 (compatible; Googlebot/2.1;
+http://www.google.com/bot.html)
req.xForwardedFor   66.249.66.172
thread  http-nio-8201-exec-17
throwable   
org.apache.wicket.core.request.mapper.StalePageException: null

followed by :

@timestamp  2013-09-24T01:42:47-04:00
caller  Caller+0 at
org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:170)
Caller+1 at
org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:98)
Caller+2 at
org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:73)
Caller+3 at
org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest(PageAccessSynchronizer.java:281)
Caller+4 at 
org.apache.wicket.Application$2.onDetach(Application.java:1628)
level   WARN
logger  org.apache.wicket.page.RequestAdapter
message An error occurred while checking whether a page is stateless.
Assuming it is stateful.
req.queryString   
0-1.IBehaviorListener.1-productStatusPanel-addToCartRegion-1-productCartComposeForm-quantityProductPanel-quantity
req.remoteHost  127.0.0.1
req.requestURI
/tuneeca_prd_commerce/app/product/gamis-je-t-aime-champs-elyses
req.requestURL
http://localhost:8201/tuneeca_prd_commerce/app/product/gamis-je-t-aime-champs-elyses
req.sessionId   369EE916
req.userAgent   Mozilla/5.0 (compatible; Googlebot/2.1;
+http://www.google.com/bot.html)
req.xForwardedFor   66.249.66.172
thread  http-nio-8201-exec-17
throwable   java.lang.NullPointerException: null
at
id.co.bippo.product.web.pub.ProductShowPage.getAddToCartRegion(ProductShowPage.java:207)
~[id.co.bippo.product.web-5.1.0-SNAPSHOT.jar:na]
at
id.co.bippo.springapp.SoluvasWebApplication.composeComponent(SoluvasWebApplication.java:377)
~[SoluvasWebApplication.class:na]
at
id.co.bippo.springapp.SoluvasWebApplication$1.onInitialize(SoluvasWebApplication.java:352)
~[SoluvasWebApplication$1.class:na]
at
org.apache.wicket.application.ComponentInitializationListenerCollection$1.notify(ComponentInitializationListenerCollection.java:40)
~[wicket-core-6.8.0.jar:6.8.0]
at
org.apache.wicket.application.ComponentInitializationListenerCollection$1.notify(ComponentInitializationListenerCollection.java:36)
~[wicket-core-6.8.0.jar:6.8.0]
at
org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80)
~[wicket-util-6.8.0.jar:6.8.0]
at
org.apache.wicket.application.ComponentInitializationListenerCollection.onInitialize(ComponentInitializationListenerCollection.java:35)
~[wicket-core-6.8.0.jar:6.8.0]
at org.apache.wicket.Component.fireInitialize(Component.java:873)
~[wicket-core-6.8.0.jar:6.8.0]
at
org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:955)
~[wicket-core-6.8.0.jar:6.8.0]
at org.apache.wicket.Page.isPageStateless(Page.java:451)
~[wicket-core-6.8.0.jar:6.8.0]
at
org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:166)
~[wicket-core-6.8.0.jar:6.8.0]
at
org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:98)
~[wicket-core-6.8.0.jar:6.8.0]
at
org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:73)
~[wicket-core-6.8.0.jar:6.8.0]
at
org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest(PageAccessSynchronizer.java:281)
~[wicket-core-6.8.0.jar:6.8.0]
at org.apache.wicket.Application$2.onDetach(Applicat

Re: How to use DEPLOYMENT configuration but retain the detailed exception page?

2013-09-16 Thread Hendy Irawan
THANK YOU Martin !

Awesome!

To those who want the same as me, put this on your WebApplication's init() :

// we need this even for DEPLOYMENT at least for now
getExceptionSettings().setUnexpectedExceptionDisplay(IExceptionSettings.SHOW_EXCEPTION_PAGE);



Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on
LinkedIn<http://id.linkedin.com/in/hendyirawan>
Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
Bisnis | Bandung


On Mon, Sep 16, 2013 at 9:11 PM, Martin Grigorov-4 [via Apache Wicket] <
ml-node+s1842946n466134...@n4.nabble.com> wrote:

>
> https://github.com/apache/wicket/blob/master/wicket-core/src/main/java/org/apache/wicket/Application.java?source=cc#L308
>
>
> On Mon, Sep 16, 2013 at 5:06 PM, Hendy Irawan <[hidden 
> email]<http://user/SendEmail.jtp?type=node&node=4661342&i=0>>
> wrote:
>
> > Hi all,
> >
> > How to use DEPLOYMENT configuration but retain the detailed exception
> page?
> >
> > Or how to re-enable the detailed exception page feature?
> >
> > Thank you.
> >
> > Hendy
> >
> >
> >
> > --
> > View this message in context:
> >
> http://apache-wicket.1842946.n4.nabble.com/How-to-use-DEPLOYMENT-configuration-but-retain-the-detailed-exception-page-tp4661341.html
> > Sent from the Users forum mailing list archive at Nabble.com.
> >
> > -
> > To unsubscribe, e-mail: [hidden 
> > email]<http://user/SendEmail.jtp?type=node&node=4661342&i=1>
> > For additional commands, e-mail: [hidden 
> > email]<http://user/SendEmail.jtp?type=node&node=4661342&i=2>
> >
> >
>
>
> --
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://apache-wicket.1842946.n4.nabble.com/How-to-use-DEPLOYMENT-configuration-but-retain-the-detailed-exception-page-tp4661341p4661342.html
>  To unsubscribe from How to use DEPLOYMENT configuration but retain the
> detailed exception page?, click 
> here<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4661341&code=aGVuZHlAc29sdXZhcy5jb218NDY2MTM0MXwxNTI0Njc4NzUy>
> .
> NAML<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-use-DEPLOYMENT-configuration-but-retain-the-detailed-exception-page-tp4661341p4661343.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



How to use DEPLOYMENT configuration but retain the detailed exception page?

2013-09-16 Thread Hendy Irawan
Hi all,

How to use DEPLOYMENT configuration but retain the detailed exception page?

Or how to re-enable the detailed exception page feature?

Thank you.

Hendy



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/How-to-use-DEPLOYMENT-configuration-but-retain-the-detailed-exception-page-tp4661341.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Are Wicket models loaded concurrently ?

2012-12-26 Thread Hendy Irawan
I think I just found a "bug" ... LoadableDetachableModel is potentially
non-threadsafe.

I experience weird behavior, my concurrent models are chained (i.e. calls
other models getObject()), and my concurrent models extend
LoadableDetachableModel. The weird behavior is that sometimes (!!) the
models return null. But if debugged, they're not null. It's like a timing
and race condition problem.

Now I think I know why. LoadableDetachableModel, upon getObject(), sets
attached=true before caling load(), which can take some time. If
getObject() gets called again, it then immediately returns the "loaded
object", which was still null (sometimes.).

Should I report this as bug?

On Wed, Dec 26, 2012 at 6:14 PM, Siefart, Olaf [via Apache Wicket] <
ml-node+s1842946n4655056...@n4.nabble.com> wrote:

> Hi,
>
> A dashboard with unrelated web services is exactly the usecase of our
> christmas project (https://github.com/osiefart/wicket-christmas).
>
> @Hendy: I would not start the execution immediately upon model creation. I
> would choose a Visitor - onConfigure - Solution. Then it is possible to
> check the visibility of the component before loading data...
>
> Kindly regards,
> Olaf
>
> -Ursprüngliche Nachricht-
> Von: Serban.Balamaci [mailto:[hidden 
> email]<http://user/SendEmail.jtp?type=node&node=4655056&i=0>]
>
> Gesendet: Mittwoch, 26. Dezember 2012 11:45
> An: [hidden email] <http://user/SendEmail.jtp?type=node&node=4655056&i=1>
> Betreff: Re: Are Wicket models loaded concurrently ?
>
> Hello guys.
> For sure this would be useful. I encountered many cases where the models
> are using different unrelated web services and starting the requests in
> parallel would be a nice improvement.
>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Are-Wicket-models-loaded-concurrently-tp4655046p4655055.html
>
> Sent from the Users forum mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=4655056&i=2>
> For additional commands, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=4655056&i=3>
>
>
> -
> To unsubscribe, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=4655056&i=4>
> For additional commands, e-mail: [hidden 
> email]<http://user/SendEmail.jtp?type=node&node=4655056&i=5>
>
>
>
> --
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://apache-wicket.1842946.n4.nabble.com/Are-Wicket-models-loaded-concurrently-tp4655046p4655056.html
>  To unsubscribe from Are Wicket models loaded concurrently ?, click 
> here<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4655046&code=aGVuZHlAc29sdXZhcy5jb218NDY1NTA0NnwxNTI0Njc4NzUy>
> .
> NAML<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>



-- 
Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on
LinkedIn<http://id.linkedin.com/in/hendyirawan>
Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
Bisnis | Bandung




--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Are-Wicket-models-loaded-concurrently-tp4655046p4655067.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: Are Wicket models loaded concurrently ?

2012-12-25 Thread Hendy Irawan
Thank you Olaf and Michael.

I think this is workable... We can create an abstract base class that
instead of doing load() directly, the signature would be something like:

public Future load(ExecutorService executor);

The async load() will execute immediately upon model creation, and during
the "actual" LoadableDetachableModel.load(), it will simply wait for the
future to complete (if it hasn't completed). Since there can be multiple
futures executing at one time, no model is blocked by the loading of
another model.

That's in theory... Hopefully it will actually work as intended. :)

Is there a plan to make this asynchronous model support built-in in Wicket?
With asynchronous frameworks like Play and vert.x, I think Wicket needs to
improve on this front too to keep itself relevant. If anyone else also have
a need for this (at least there are 3 of us) I can file a ticket.

Hendy

On Tue, Dec 25, 2012 at 6:49 PM, michael mosmann [via Apache Wicket] <
ml-node+s1842946n4655050...@n4.nabble.com> wrote:

> If you want to speedup thing, you should trigger some model loading as
> early as possible.. (It is too late, if a component calls
> IModel.getObject() (should return the right value)). Because wicket uses
> one thread per request you must use an other thread for loading.
>
> This way you could speedup a pageload for one user..  but not for more
> than one (you have to load it anyway) .. there is a good chance to make it
> worse. I think you choose a threaded model loading if most other options
> failed (use a cache, change the query, ...)
>
> Mm:)
>
>
>
>
> Hendy Irawan <[hidden 
> email]<http://user/SendEmail.jtp?type=node&node=4655050&i=0>>
> schrieb:
>
> >
> >Hi friends,
> >
> >If I have 5 Wicket (LoadableDetachable)models on a page, will Wicket
> >load
> >each model sequentially, or will the 5 models loaded concurrently ?
> >
> >We're using different servers for each database connection (MongoDB,
> >Neo4j,
> >etc.) so it will be a more effective use to load the models
> >concurrently.
> >
> >Thank you.
> >
> >
> >
> >--
> >View this message in context:
> >
> http://apache-wicket.1842946.n4.nabble.com/Are-Wicket-models-loaded-concurrently-tp4655046p4655047.html
> >Sent from the Users forum mailing list archive at Nabble.com.
> >
> >-
> >To unsubscribe, e-mail: [hidden 
> >email]<http://user/SendEmail.jtp?type=node&node=4655050&i=1>
> >For additional commands, e-mail: [hidden 
> >email]<http://user/SendEmail.jtp?type=node&node=4655050&i=2>
>
> --
> Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail
> gesendet.
>
> --
>  If you reply to this email, your message will be added to the discussion
> below:
>
> http://apache-wicket.1842946.n4.nabble.com/Are-Wicket-models-loaded-concurrently-tp4655046p4655050.html
>  To unsubscribe from Are Wicket models loaded concurrently ?, click 
> here<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4655046&code=aGVuZHlAc29sdXZhcy5jb218NDY1NTA0NnwxNTI0Njc4NzUy>
> .
> NAML<http://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>



-- 
Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on
LinkedIn<http://id.linkedin.com/in/hendyirawan>
Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
Bisnis | Bandung




--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Are-Wicket-models-loaded-concurrently-tp4655046p4655051.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Are Wicket models loaded concurrently ?

2012-12-24 Thread Hendy Irawan

Hi friends,

If I have 5 Wicket (LoadableDetachable)models on a page, will Wicket load
each model sequentially, or will the 5 models loaded concurrently ?

We're using different servers for each database connection (MongoDB, Neo4j,
etc.) so it will be a more effective use to load the models concurrently.

Thank you. 



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Are-Wicket-models-loaded-concurrently-tp4655046p4655047.html
Sent from the Users forum mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org