[ 
https://issues.apache.org/jira/browse/JENA-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15446001#comment-15446001
 ] 

ASF GitHub Bot commented on JENA-1228:
--------------------------------------

Github user afs commented on a diff in the pull request:

    https://github.com/apache/jena/pull/165#discussion_r76614257
  
    --- Diff: 
jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java ---
    @@ -18,82 +18,58 @@
     
     package org.apache.jena.sparql.algebra.optimize;
     
    -import org.apache.jena.query.ARQ ;
     import org.apache.jena.sparql.ARQConstants ;
    -import org.apache.jena.sparql.SystemARQ ;
    -import org.apache.jena.sparql.algebra.* ;
    -import org.apache.jena.sparql.algebra.op.OpLabel ;
    +import org.apache.jena.sparql.algebra.Op ;
     import org.apache.jena.sparql.engine.ExecutionContext ;
     import org.apache.jena.sparql.util.Context ;
    -import org.apache.jena.sparql.util.Symbol ;
    -import org.slf4j.Logger ;
    -import org.slf4j.LoggerFactory ;
     
    -
    -public class Optimize implements Rewrite
    +/** Optimization of algebra expressions. 
    + * <p>
    + *  New optimization processes can be installed via a global change:
    + *  <pre>
    + *    Optimize.setFactory((cxt)->new MyOptimize(cxt)) ;</pre>
    + *  or on a per-context basis: 
    + *  <pre>
    + *    Optimize.RewriterFactory f = (cxt)->new MyOptimize(cxt) ;
    + *    context.set(ARQConstants.sysOptimizerFactory, f) ;<pre>
    + */
    +public class Optimize
     {
    -    static private Logger log = LoggerFactory.getLogger(Optimize.class) ;
    -
    -    // A small (one slot) registry to allow plugging in an alternative 
optimizer
    +    /** Factory for rewriters */
    --- End diff --
    
    What difference does it make? It's an interface; there is no 
static/enclosing distinction.


> Allow application code to replace part of the standard "Optimize" sequence.
> ---------------------------------------------------------------------------
>
>                 Key: JENA-1228
>                 URL: https://issues.apache.org/jira/browse/JENA-1228
>             Project: Apache Jena
>          Issue Type: Improvement
>            Reporter: Andy Seaborne
>            Priority: Minor
>
> A different optimization step can be installed with a global change:
> {noformat}
>     Optimize.setFactory((cxt)->new MyNewOptimize(cxt)) ;
> {noformat}
> or on a specific {{Context}}:
> {noformat}
>     Optimize.RewriterFactory f = (cxt)->new OptimizeTQ(cxt) ;
>     context.set(ARQConstants.sysOptimizerFactory, f) ;
> {noformat}
> This is a complete replacement.
> This JIRA is to allow specific steps to be replaced. This would be quite 
> useful for development when specific transforms are being fixed or improved.
> One way to do this is to make {{Optimize}} have protected methods for each 
> optimization step thereby exposing the standard policy with the possibility 
> of different transforms within that policy.
> Thus:
> {noformat}
> class MyNewOptimize extends Optimize
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to