On Jul 28, 2008, at 1:02 PM, Vincent Massol wrote: > > On Jul 28, 2008, at 12:53 PM, Thomas Mortagne wrote: > >> On Mon, Jul 28, 2008 at 12:17 PM, Markus Lanthaler >> <[EMAIL PROTECTED]> wrote: >>> Hi Ludovic, >>> >>> I just created a class OpenIDHelper which has a static method >>> findOpenIDUser(). That method is called in the already existent >>> class >>> MyFormAuthenticator which I extended a bit. Shouldn't the >>> component manager >>> be set up already in that "context"? Do you need any other details? >> >> Yes i did not look close enough the stack trace. So I don't >> understand >> why this is not already initialized... > > I think I know why: because the code doesn't work :) > > The AbstractQueryManager should implement Composable. > > I'm looking into it.
Markus, Could you svn up, rebuild and try again. I think I've fixed it but since this is not code I know well (it's just been added by Artem) I haven't tested my change. I'm not even sure the Query Manager is working at all since the issue isn't closed: http://jira.xwiki.org/jira/browse/XWIKI-2444 Artem, could you please let us know the status? Thanks -Vincent >>>> I think it's "prop.value =:identifier" (not ':identifier') >>>> otherwise >>>> hibernate will consider you use the value ":identifier" and will >>>> not >>>> replace it. >>> >>> OK Thomas, I fixed that. Thanks! >>> >>> >>> ----- Original Message ----- >>> From: "Ludovic Dubost" <[EMAIL PROTECTED]> >>> To: "XWiki Developers" <[email protected]> >>> Sent: Monday, July 28, 2008 11:53 AM >>> Subject: [gsoc] Re: [xwiki-devs] Problems creating a query using the >>> QueryManager >>> >>> >>>> >>>> Hi Markus, >>>> >>>> Line 73 of AbstractQueryManager >>>> >>>> query = (Query) componentManager.lookup(Query.ROLE, language); >>>> >>>> Your componentManager is null.. This probably means that you >>>> have not >>>> activated the component manager from plexus properly. >>>> Probably Vincent can help, but he will probably need to know how >>>> you >>>> have build your code. >>>> >>>> Ludovic >>>> >>>> Markus Lanthaler wrote: >>>>> Hi, >>>>> >>>>> I'm currently implementing the last things to finish OpenID >>>>> authentication >>>>> support but I have some problems with the query manager. I'm >>>>> trying to >>>>> get >>>>> the document (should be only one) which an attached >>>>> OpenIdIdentifier >>>>> object >>>>> whose "identifier" string property's value has some specific >>>>> value. I >>>>> didn't >>>>> found any documentation apart >>>>> http://markmail.org/message/jt6m2huqr4r6hvk6 >>>>> and >>>>> http://dev.xwiki.org/xwiki/bin/view/Design/XWiki+Query+Language+Specification >>>>> >>>>> . >>>>> >>>>> I tried to achieve this by the following code: >>>>> >>>>> public static String findOpenIDUser(String openid_identifier, >>>>> XWikiContext context) throws XWikiException >>>>> { >>>>> XWiki xwiki = context.getWiki(); >>>>> >>>>> QueryManager qm = xwiki.getStore().getQueryManager(); >>>>> Query search_user; >>>>> >>>>> if (qm.hasLanguage(Query.HQL)) { >>>>> search_user = >>>>> qm.createQuery(", BaseObject as obj, >>>>> StringProperty as >>>>> prop >>>>> where doc.fullName = obj.name and obj.className = >>>>> 'XWiki.OpenIdIdentifier' >>>>> and obj.id=prop.id.id and prop.id.name='identifier' and >>>>> prop.value = >>>>> ':identifier'", Query.HQL); >>>>> } else if (qm.hasLanguage(Query.XPATH)) { >>>>> search_user = >>>>> qm.createQuery("/*/*[obj/XWiki/OpenIdIdentifier/@xp:identifier = >>>>> ':identifier'] ", Query.XPATH); >>>>> } else >>>>> throw new RuntimeException(); >>>>> >>>>> search_user.bindValue("identifier", openid_identifier); >>>>> >>>>> List<XWikiDocument> found_users = >>>>> search_user.setLimit(1).execute(); >>>>> if (found_users.size() > 0) { >>>>> if (log.isDebugEnabled()) { >>>>> log.debug("OpenID " + openid_identifier + " already >>>>> registered."); >>>>> } >>>>> return found_users.get(0).getFullName(); >>>>> } >>>>> >>>>> return null; >>>>> } >>>>> >>>>> >>>>> but all I get is a NullPointerException when qm.createQuery(..., >>>>> Query.HQL) >>>>> is called. What's wrong with my code? >>>>> >>>>> java.lang.NullPointerException >>>>> at >>>>> com >>>>> .xpn >>>>> .xwiki >>>>> .store >>>>> .query >>>>> .AbstractQueryManager.createQuery(AbstractQueryManager.java:73) >>>>> at >>>>> com >>>>> .xpn >>>>> .xwiki >>>>> .user.impl.openid.OpenIDHelper.findOpenIDUser(OpenIDHelper.java: >>>>> 109) >>>>> at >>>>> com >>>>> .xpn >>>>> .xwiki >>>>> .user >>>>> .impl >>>>> .xwiki.MyFormAuthenticator.processLogin(MyFormAuthenticator.java: >>>>> 201) >>>>> at >>>>> com >>>>> .xpn >>>>> .xwiki >>>>> .user >>>>> .impl >>>>> .xwiki.MyFormAuthenticator.processLogin(MyFormAuthenticator.java: >>>>> 178) >>>>> at >>>>> com >>>>> .xpn >>>>> .xwiki >>>>> .user >>>>> .impl >>>>> .xwiki.XWikiAuthServiceImpl.checkAuth(XWikiAuthServiceImpl.java: >>>>> 205) >>>>> at com.xpn.xwiki.XWiki.checkAuth(XWiki.java:3518) >>>>> at >>>>> com >>>>> .xpn >>>>> .xwiki >>>>> .user >>>>> .impl >>>>> .xwiki >>>>> .XWikiRightServiceImpl.checkAccess(XWikiRightServiceImpl.java:139) >>>>> at com.xpn.xwiki.XWiki.checkAccess(XWiki.java:3526) >>>>> at com.xpn.xwiki.XWiki.prepareDocuments(XWiki.java:4432) >>>>> at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:190) >>>>> at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:115) >>>>> at >>>>> org >>>>> .apache >>>>> .struts >>>>> .action >>>>> .RequestProcessor.processActionPerform(RequestProcessor.java:431) >>>>> at >>>>> org >>>>> .apache >>>>> .struts.action.RequestProcessor.process(RequestProcessor.java:236) >>>>> at >>>>> org >>>>> .apache.struts.action.ActionServlet.process(ActionServlet.java: >>>>> 1196) >>>>> at >>>>> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java: >>>>> 432) >>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) >>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core >>>>> .ApplicationFilterChain >>>>> .internalDoFilter(ApplicationFilterChain.java:290) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core >>>>> .ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>>>> at >>>>> com >>>>> .xpn >>>>> .xwiki >>>>> .web >>>>> .SavedRequestRestorerFilter >>>>> .doFilter(SavedRequestRestorerFilter.java:287) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core >>>>> .ApplicationFilterChain >>>>> .internalDoFilter(ApplicationFilterChain.java:235) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core >>>>> .ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>>>> at >>>>> com >>>>> .xpn >>>>> .xwiki >>>>> .web >>>>> .SetCharacterEncodingFilter >>>>> .doFilter(SetCharacterEncodingFilter.java:112) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core >>>>> .ApplicationFilterChain >>>>> .internalDoFilter(ApplicationFilterChain.java:235) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core >>>>> .ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core.StandardContextValve.invoke(StandardContextValve.java:175) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java: >>>>> 128) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: >>>>> 102) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina >>>>> .core.StandardEngineValve.invoke(StandardEngineValve.java:109) >>>>> at >>>>> org >>>>> .apache >>>>> .catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) >>>>> at >>>>> org >>>>> .apache >>>>> .coyote.http11.Http11Processor.process(Http11Processor.java:844) >>>>> at >>>>> org.apache.coyote.http11.Http11Protocol >>>>> $Http11ConnectionHandler.process(Http11Protocol.java:583) >>>>> at >>>>> org.apache.tomcat.util.net.JIoEndpoint >>>>> $Worker.run(JIoEndpoint.java:447) >>>>> at java.lang.Thread.run(Thread.java:619) _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

