-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/38474/#review112102
-----------------------------------------------------------


These are comments for Page 1 and 2. Still I have not fully gone through and 
understood few of the classes. Will comment on those and the testcases/Page 3 
in next review.

At high level,

1) Noticed naming and EL function changed from design doc you had put up 
earlier. Liked those better.
   - Possible to rename <input-check> to <input-logic> as per the design doc
   - Possible to reuse the existing EL also as per design doc? i.e 
coord:dataIn(CorD) instead of coord:inputCheckDataIn(CorD) Keeps it simple for 
user.

2) User documentation missing as mentioned by Robert.
3) Couple of comments are my usual nitpicks on typos and variable naming.


client/src/main/resources/oozie-coordinator-0.5.xsd (line 115)
<https://reviews.apache.org/r/38474/#comment172502>

    type="coordinator:IDENTIFIER" . Same for other names.
    
    Shouldn't it be use="required" ?



client/src/main/resources/oozie-coordinator-0.5.xsd (lines 116 - 117)
<https://reviews.apache.org/r/38474/#comment172504>

    min and wait seems to be supported only at the data-in level.



client/src/main/resources/oozie-coordinator-0.5.xsd (line 139)
<https://reviews.apache.org/r/38474/#comment172503>

    Why does this need a name?



core/src/main/java/org/apache/oozie/CoordinatorActionBean.java (lines 822 - 826)
<https://reviews.apache.org/r/38474/#comment172561>

    Declare variables at the top along with other variables



core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
 (line 169)
<https://reviews.apache.org/r/38474/#comment172506>

    Nitpick. isPushDependenciesMeet  -> isPushDependenciesMet . 
    
    There are couple of other places as well. Please grep for meet and change 
to met.



core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
 
<https://reviews.apache.org/r/38474/#comment172552>

    Can we keep this log statement? Might not be exactly correct anymore if 
input-logic is defined, but still can be helpful to some extent in determining 
what to look for



core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
 (lines 172 - 174)
<https://reviews.apache.org/r/38474/#comment172553>

    Seems redundant.



core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
 (line 275)
<https://reviews.apache.org/r/38474/#comment172562>

    This is redundant. UPDATE_COORD_ACTION_FOR_INPUTCHECK only serializes pull 
missing dependencies



core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
 (line 436)
<https://reviews.apache.org/r/38474/#comment172565>

    Why public? Also method seems to be unused. To be removed?



core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
 (line 494)
<https://reviews.apache.org/r/38474/#comment172566>

    Why public? Also method seems to be unused as it is copied to 
CoordOldInputDependency. To be removed?



core/src/main/java/org/apache/oozie/command/coord/CoordActionUpdatePushMissingDependency.java
 (line 43)
<https://reviews.apache.org/r/38474/#comment172567>

    Seems wrong. Getter is that of push dependencies instead of pull.



core/src/main/java/org/apache/oozie/command/coord/CoordMaterializeTransitionXCommand.java
 (line 533)
<https://reviews.apache.org/r/38474/#comment172507>

    isInputLogicSpecified



core/src/main/java/org/apache/oozie/command/coord/CoordMaterializeTransitionXCommand.java
 (line 534)
<https://reviews.apache.org/r/38474/#comment172508>

    validateInputLogic



core/src/main/java/org/apache/oozie/command/coord/CoordPushDependencyCheckXCommand.java
 (line 123)
<https://reviews.apache.org/r/38474/#comment172576>

    Keep the info log statement. May not be fully correct when OR is involved, 
but still would be useful.
    
    List<String> availableList - This is not required. It will try to 
unregister already available stuff. Can just do 
unregisterAvailableDependencies(actionDep.getAvailableDependencies()); as before



core/src/main/java/org/apache/oozie/command/coord/CoordPushDependencyCheckXCommand.java
 (line 171)
<https://reviews.apache.org/r/38474/#comment172581>

    coordPushInputDependency.isDependencyMet() is redundant. Pushdependency 
cannot be met without changeindependency



core/src/main/java/org/apache/oozie/coord/CoordUtils.java (line 434)
<https://reviews.apache.org/r/38474/#comment172511>

    getInputLogic



core/src/main/java/org/apache/oozie/coord/CoordUtils.java (line 439)
<https://reviews.apache.org/r/38474/#comment172512>

    Nitpick. getDataInputFromString



core/src/main/java/org/apache/oozie/coord/input/dependency/AbstractCoordInputDependency.java
 (line 64)
<https://reviews.apache.org/r/38474/#comment172530>

    Nitpick. Does nothing and can be removed



core/src/main/java/org/apache/oozie/coord/input/dependency/AbstractCoordInputDependency.java
 (lines 299 - 300)
<https://reviews.apache.org/r/38474/#comment172548>

    Can write the boolean first and then map. Can stop deserializing if 
dependency is met for display purposes.



core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependency.java
 (line 33)
<https://reviews.apache.org/r/38474/#comment172519>

    V=1



core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependency.java
 (lines 96 - 98)
<https://reviews.apache.org/r/38474/#comment172547>

    join -> missingDependencies



core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependencyFactory.java
 (line 43)
<https://reviews.apache.org/r/38474/#comment172554>

    isInputCheck -> hasInputLogic. Other places too



core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependencyFactory.java
 (line 58)
<https://reviews.apache.org/r/38474/#comment172555>

    Nitpick. Pushinput -> PushInput



core/src/main/java/org/apache/oozie/util/WritableUtils.java (line 130)
<https://reviews.apache.org/r/38474/#comment172517>

    readStringList



core/src/main/java/org/apache/oozie/util/WritableUtils.java (line 154)
<https://reviews.apache.org/r/38474/#comment172518>

    writeStringList


- Rohini Palaniswamy


On Dec. 15, 2015, 7:33 p.m., Purshotam Shah wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/38474/
> -----------------------------------------------------------
> 
> (Updated Dec. 15, 2015, 7:33 p.m.)
> 
> 
> Review request for oozie.
> 
> 
> Bugs: OOZIE-1976
>     https://issues.apache.org/jira/browse/OOZIE-1976
> 
> 
> Repository: oozie-git
> 
> 
> Description
> -------
> 
> There are three components in this patch
> 
> 1. User interface
> A new tag is added to coordinator.xml
> ex.
> <input-check>
>     <or name="test">
>                   <and>
>                           <data-in dataset="A"/>"
>                           <data-in dataset="B"/>
>                    </and>
>                    <and>
>                           <data-in dataset="C"/>
>                           <data-in dataset="D"/>
>                    </and>
>                    
>          </or>;
> <input-check>
> 
> 
> input-check will have nested and/or/combine operation. It can have min and 
> wait at operator or at date-in.
> If input-check tag is missing then it consider to be old approach where all 
> data dependency are needed.
> 
> 2. Processing
> input-check is converted into logical expression
>       (a&&B)||(c&&d)
> We use jexl to parse the logical expression.
> 
> There are three phase in parsing.
> phase 1 : only resolved dataset are parsed ( only current).   
> phase 2 : once all current are resolved, then future/latest are parsed.
> phase 3 : Doesn't do any filecheck, just return what is being parsed by 
> phase1 and phase2. Is used for EL functions
> 
> 
> 3. Storage.
> if inputcheck is enable, push_missing_dependencies and missing_dependencies 
> are serialized and stored in DB.
> If then not then it's old approach, where they are stored in plan text. This 
> is backward compatible.
> 
> 
> Diffs
> -----
> 
>   client/src/main/resources/oozie-coordinator-0.5.xsd 
> e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   core/pom.xml b063dab79415447a86c1a33f5c3f5304e0dffca0 
>   core/src/main/java/org/apache/oozie/CoordinatorActionBean.java 
> 91bff4dca2ef2dece68ca7260724ba3e43b1a08e 
>   core/src/main/java/org/apache/oozie/ErrorCode.java 
> 6c1e3997c9a1cb0bb0de39d687a083af0a7b5f04 
>   
> core/src/main/java/org/apache/oozie/command/coord/CoordActionInputCheckXCommand.java
>  742d00dd47aab55392abc8fbc207f8100728b832 
>   
> core/src/main/java/org/apache/oozie/command/coord/CoordActionUpdatePushMissingDependency.java
>  4e1c5b3392358cb6b1e98e16e469310338f27fed 
>   core/src/main/java/org/apache/oozie/command/coord/CoordCommandUtils.java 
> 58ef483272264e0d391d4a1e6533dc1cab9940da 
>   
> core/src/main/java/org/apache/oozie/command/coord/CoordMaterializeTransitionXCommand.java
>  39e6ac15ce3a3ea7f2ed9178688537f7b1d7842d 
>   
> core/src/main/java/org/apache/oozie/command/coord/CoordPushDependencyCheckXCommand.java
>  b05344d89e8df0e11fe69c1aa725d19a18eb0a2b 
>   core/src/main/java/org/apache/oozie/coord/CoordELConstants.java 
> f010a817fc900821c0e429fc16e1d3902a98d8bb 
>   core/src/main/java/org/apache/oozie/coord/CoordELEvaluator.java 
> 8b2f4560ae66bbcd707a446382e647663ea67be1 
>   core/src/main/java/org/apache/oozie/coord/CoordELFunctions.java 
> 5d238663aa94f0dd55a9190b60bfe621439c7b53 
>   core/src/main/java/org/apache/oozie/coord/CoordUtils.java 
> 94c69740618110ea180b188ab0c5a02db76f8b4d 
>   core/src/main/java/org/apache/oozie/coord/SyncCoordAction.java 
> 44258eb5be40bf6769e32c8780117e8533d80d7e 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/AbstractCoordInputDependency.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependenciesBuilder.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependenciesChecker.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependenciesUtil.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependency.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependencyCheck.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependencyCheckPhaseOne.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependencyCheckPhaseThree.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependencyCheckPhaseTwo.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependencyCheckPhaseValidate.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputDependencyFactory.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordInputInstance.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordOldInputDependency.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordPullInputDependency.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordPushInputDependency.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/CoordUnResolvedInputDependency.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/InputLogicParser.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/OozieJexlEngine.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/main/java/org/apache/oozie/coord/input/dependency/OozieJexlInterpreter.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   core/src/main/java/org/apache/oozie/dependency/ActionDependency.java 
> c280d1dc2387c9b3df96d4e83ad5563e10b1e1ef 
>   core/src/main/java/org/apache/oozie/dependency/DependencyChecker.java 
> a5507575a3403103133f85a78c873c9976419857 
>   core/src/main/java/org/apache/oozie/util/WritableUtils.java 
> 76a68953541125cab05bd05c94aa73b50e5363ff 
>   core/src/main/resources/oozie-default.xml 
> faf37405757719554a5b6e3671d0c87723eb9959 
>   
> core/src/test/java/org/apache/oozie/command/coord/TestCoordActionInputCheckXCommand.java
>  1fe1b3adb5ceaa83985ef31278e49a3224cde0fb 
>   
> core/src/test/java/org/apache/oozie/command/coord/TestCoordCommandUtils.java 
> 7062e697e5162ac25688d9cb62352bd139a7013a 
>   
> core/src/test/java/org/apache/oozie/command/coord/TestCoordMaterializeTransitionXCommand.java
>  29e7ca145612fadee661fe975aa0ea2cab1cbfa3 
>   
> core/src/test/java/org/apache/oozie/command/coord/TestCoordSubmitXCommand.java
>  52eb9dd1fb903ac86294a55d6e2a6918390bf4e9 
>   
> core/src/test/java/org/apache/oozie/coord/input/dependency/TestCoordInputCheckPush.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/test/java/org/apache/oozie/coord/input/dependency/TestCoordinatorInputCheck.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   
> core/src/test/java/org/apache/oozie/coord/input/dependency/TestInputLogicParser.java
>  e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   core/src/test/resources/coord-action-sla.xml 
> f3f1bc09c51272a35d65edd7271599e7e8ba1ba4 
>   core/src/test/resources/coord-dataset-offset.xml 
> 5dfbb1b40ee86dfc3336031eea3c5ff3144b9f5a 
>   core/src/test/resources/coord-inputcheck-combine.xml 
> e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   core/src/test/resources/coord-inputcheck-hcat.xml 
> e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   core/src/test/resources/coord-inputcheck-latest.xml 
> e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   core/src/test/resources/coord-inputcheck-range-latest.xml 
> e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   core/src/test/resources/coord-inputcheck-range.xml 
> e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   core/src/test/resources/coord-inputcheck.xml 
> e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 
>   pom.xml a74ffab081defd15a1c5dbbf15355aa4e0455029 
> 
> Diff: https://reviews.apache.org/r/38474/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Purshotam Shah
> 
>

Reply via email to