2010-11-17 3 views
17

La mia azienda sta cercando soluzioni avanzate di ricerca e reporting e sta considerando (tra le altre opzioni) di creare qualcosa di simile a JIRA's JQL per la massima flessibilità.Atlassion ha creato JIRA Query Language (JQL) da zero?

Il mio google mi fa credere che Atlassian abbia creato JQL da zero, almeno come linguaggio con sintassi e parser, ma ho pensato di provare SO prima di concludere. Qualcuno sa, ad alto livello, come hanno fatto? C'era uno o più progetti Open Source su cui si basavano?

(Complimenti a Atlassian in entrambi i casi -! JQL è stupendo)

+2

per gli ultimi arrivati ​​a questo argomento; JQL potrebbe non essere open source ma IntelliJ ha implementato il [parser JQL] (https://github.com/JetBrains/intellij-community/blob/master/plugins/tasks/tasks-core/jira/src/com/intellij/tasks /jira/jql/JqlElementTypes.java). C'è una sintassi JQL formale nel commento. –

risposta

4

Penso che abbiano fatto da zero. L'architettura sottostante è nitida ma piuttosto complessa. Mi ci sono volute un paio d'ore per ottenerlo, basta leggere la fonte e la documentazione minima per l'utente.

~ Matt

+0

Inoltre, con Atlassian che sembra essere così aperto con il proprio business - blogging sullo sviluppo, ad esempio - si potrebbe pensare di dare qualche credito a tutte le tecnologie sottostanti che hanno usato per rimuoverlo se lo avessero fatto. Usiamo JIRA ospitato, quindi tutto quello che vedo è l'interfaccia utente - grazie per le informazioni. – peteorpeter

+13

Atlassian ha sviluppato JQL da zero. Il parser per il linguaggio è stato sviluppato usando [ANTLR] (http://www.antlr.org/). Una volta analizzato, viene trasformato nel set appropriato di query Lucene e database ed eseguito. La documentazione ANTLR ha un [buon, semplice esempio] (http://www.antlr.org/wiki/display/ANTLR3/Expression+evaluator) su come analizzare un'espressione e quindi "eseguirla". (Sono uno sviluppatore di JIRA, quindi stai leggendo la storia :)) –

0

Atlassian costruito JQL sulla parte superiore del Apache Lucene. Potresti dare un'occhiata a Elasticsearch o Solr, che sono alternative open source, anch'esse basate su Lucene.