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



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: 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



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

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



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.3]

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]
ml-node+s1842946n4668756...@n4.nabble.com 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



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? extends IRequestablePage 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: 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=nodenode=4668717i=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? extends IRequestablePage 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: [hidden email]
 http:///user/SendEmail.jtp?type=nodenode=4668717i=1
  For additional commands, e-mail: [hidden email]
 http:///user/SendEmail.jtp?type=nodenode=4668717i=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-instruct-RenderPageRequestHandler-to-redirect-using-301-Permanent-tp4668716p4668717.html
  To unsubscribe

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=nodenode=4668721i=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=nodenode=4668721i=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=nodenode=4668717i=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? extends IRequestablePage 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

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
http://www.bippo.co.id/  . Do you share your solution somewhere?

I'm planning to put my work as part of  soluvas-web project on GitHub
https://github.com/soluvas/soluvas-web   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: 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 ListItemProductImage imageItem) {
imageItem.add(new ImageMicrodataBehavior());

...

final Label descLabel = new Label(descriptionHtml, new
PropertyModelString(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 PropertyModelCurrencyUnit(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: [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
/body) 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



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: 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



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: 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

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



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

2013-09-24 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 

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

2013-09-24 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



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: 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
LinkedInhttp://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
LinkedInhttp://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=nodenode=4661461i=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=nodenode=4661461i=1
  For additional commands, e-mail: [hidden 
  email]http://user/SendEmail.jtp?type=nodenode=4661461i=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 
 herehttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4661459code=aGVuZHlAc29sdXZhcy5jb218NDY2MTQ1OXwxNTI0Njc4NzUy
 .
 NAMLhttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=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



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
LinkedInhttp://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 he...@soluvas.com 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 
 LinkedInhttp://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 
 LinkedInhttp://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=nodenode=4661461i=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=nodenode=4661461i=1
  For additional commands, e-mail: [hidden 
  email]http://user/SendEmail.jtp?type=nodenode=4661461i=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 
 herehttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4661459code=aGVuZHlAc29sdXZhcy5jb218NDY2MTQ1OXwxNTI0Njc4NzUy
 .
 NAMLhttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=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



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: 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
LinkedInhttp://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=nodenode=4661342i=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=nodenode=4661342i=1
  For additional commands, e-mail: [hidden 
  email]http://user/SendEmail.jtp?type=nodenode=4661342i=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 
 herehttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4661341code=aGVuZHlAc29sdXZhcy5jb218NDY2MTM0MXwxNTI0Njc4NzUy
 .
 NAMLhttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=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



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=nodenode=4655056i=0]

 Gesendet: Mittwoch, 26. Dezember 2012 11:45
 An: [hidden email] http://user/SendEmail.jtp?type=nodenode=4655056i=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=nodenode=4655056i=2
 For additional commands, e-mail: [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=4655056i=3


 -
 To unsubscribe, e-mail: [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=4655056i=4
 For additional commands, e-mail: [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=4655056i=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 
 herehttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4655046code=aGVuZHlAc29sdXZhcy5jb218NDY1NTA0NnwxNTI0Njc4NzUy
 .
 NAMLhttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=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
LinkedInhttp://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 FutureT 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=nodenode=4655050i=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=nodenode=4655050i=1
 For additional commands, e-mail: [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=4655050i=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 
 herehttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=4655046code=aGVuZHlAc29sdXZhcy5jb218NDY1NTA0NnwxNTI0Njc4NzUy
 .
 NAMLhttp://apache-wicket.1842946.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=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
LinkedInhttp://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