[ 
https://issues.apache.org/jira/browse/SOLR-6194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aaron LaBella reopened SOLR-6194:
---------------------------------


Thanks shalin!   I'm attaching one more small patch that opens up a couple 
other methods.  Now with these fixes I have the ability to actually run the 
entity queries from my data import handler for easier debug/inspection, 
*without* actually having to run an import.  Can you please review and commit 
this small patch as well?

Aaron

> Allow access to DataImporter and DIHConfiguration
> -------------------------------------------------
>
>                 Key: SOLR-6194
>                 URL: https://issues.apache.org/jira/browse/SOLR-6194
>             Project: Solr
>          Issue Type: Improvement
>          Components: contrib - DataImportHandler
>    Affects Versions: 4.10
>            Reporter: Aaron LaBella
>            Assignee: Shalin Shekhar Mangar
>             Fix For: 4.10
>
>         Attachments: SOLR-6194.patch, SOLR-6194.patch
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> I'd like to change the visibility and access to a couple of the internal 
> classes of DataImportHandler, specifically DataImporter and DIHConfiguration. 
>  My reasoning is that I've added the ability for a new data import handler 
> "command" called *getquery* that will return the exact queries (fully 
> resolved) that are executed for an entity within the data import 
> configuration.  This makes it much easier to debug the dih, rather than 
> turning on debug/verbose flags and digging through the raw response.  
> Additionally, it gives me a "service" that I can then go take the queries 
> from and run them.
> Here's a snippet of Java code that I can now execute now that I have access 
> to the DIHConfiguration:
> {code:title=Snippet.java|borderStyle=solid}
>   /**
>    * @return a map of all the queries for each entity in the given config
>    */
>   protected Map<String,String> getEntityQueries(DIHConfiguration config, 
> Map<String,Object> params)
>   {
>     Map<String,String> queries = new LinkedHashMap<>();
>     if (config != null && config.getEntities() != null)
>     {
>       //make a new variable resolve
>       VariableResolver vr = new VariableResolver();
>       vr.addNamespace("dataimporter.request",params);
>       //for each entity
>       for (Entity e : config.getEntities())
>       {
>         //get the query and resolve it
>         if (e.getAllAttributes().containsKey(SqlEntityProcessor.QUERY))
>         {
>           String query = e.getAllAttributes().get(SqlEntityProcessor.QUERY);
>           query = query.replaceAll("\\s+", " ").trim();
>           String resolved = vr.replaceTokens(query);
>           resolved = resolved.replaceAll("\\s+", " ").trim();
>           queries.put(e.getName(),resolved);
>           queries.put(e.getName()+"_raw",query);
>         }
>       }
>     }
>     return queries;
>   }
> {code}
> I'm attaching a patch that I would appreciate someone have a look for 
> consideration.  It's fully tested -- please let me know if there is something 
> else I need to do/test.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to