----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/64029/#review200001 -----------------------------------------------------------
.gitignore Lines 1-5 (original), 1-8 (patched) <https://reviews.apache.org/r/64029/#comment280538> These changes probably shouldn't be part of this patch. If we do want to add these to .gitignore, we should do that as a separate JIRA. client/pom.xml Lines 96 (patched) <https://reviews.apache.org/r/64029/#comment280539> version shouldn't be in non-root pom client/src/main/java/org/apache/oozie/cli/ApiJarFactory.java Lines 41 (patched) <https://reviews.apache.org/r/64029/#comment280540> Looks like this is used only by unit tests. If so, then perhaps this should be moved to a test package and made package private? I just want to make sure users won't start trying to use this class when they shouldn't be. client/src/main/java/org/apache/oozie/cli/ApiJarFactory.java Lines 79-80 (patched) <https://reviews.apache.org/r/64029/#comment280541> Please add curly braces for the if statement client/src/main/java/org/apache/oozie/cli/ApiJarLoader.java Lines 58 (patched) <https://reviews.apache.org/r/64029/#comment280543> We check that ````mainClass```` is not null here, but we should also check that ````mainClassName```` is not null before trying to load it on line 56. Otherwise, I imagine you'll get a CNFE or NPE or something ugly. If we add a check for ````mainClassName````, we can give a clear message that they're missing the manifest's main class property. Also, what happens if the jar has no manifest at all? Does ````apiJar.getManifest()```` return null? If so, we need to check for that too. client/src/main/java/org/apache/oozie/cli/OozieCLI.java Line 991 (original), 1006 (patched) <https://reviews.apache.org/r/64029/#comment280544> I don't think we need to declare ````IllegalAccessException```` and ````ClassNotFoundException```` here. The new method calls you added only ever throw ````OozieClientException````. client/src/main/java/org/apache/oozie/cli/WorkflowFactoryCompiler.java Lines 36 (patched) <https://reviews.apache.org/r/64029/#comment280545> Again, if this is for unit tests, we should move it to a different test and limit its scope if possible. client/src/main/java/org/apache/oozie/cli/WorkflowFactoryCompiler.java Lines 65 (patched) <https://reviews.apache.org/r/64029/#comment280546> Let's not turn this into Hadoop :) If this isn't working, it looks like the fileManager can be used to do something equivalent and you can throw away the ````options````. Take a look at the second answer on the StackOverflow. core/src/main/java/org/apache/oozie/BaseLocalOozieClient.java Lines 558-559 (original), 559-568 (patched) <https://reviews.apache.org/r/64029/#comment280547> Doesn't this change the V0 and V1 APIs? core/src/main/resources/oozie-default.xml Lines 3326 (patched) <https://reviews.apache.org/r/64029/#comment280551> A few things with this path: 1. I think "jobs" and "application" is a little redundent. 2. I'm also not sure we need to go 3 levels deep; 1 is probably enough. 3. I could easily see a user having a "jobs" or "application" directory already existing in their home dir. I think we should try to pick something more unique and more obviously for Oozie. Perhaps ```` /user/${user.name}/oozie-generated/ ```` or something like that? docs/src/site/twiki/DG_CommandLineTool.twiki Lines 110 (patched) <https://reviews.apache.org/r/64029/#comment280552> ````V2ValidateServlet```` is an implementation detail. We shouldn't mention it in the user-facing docs or CLI. docs/src/site/twiki/DG_CommandLineTool.twiki Lines 114 (patched) <https://reviews.apache.org/r/64029/#comment280553> "an HDFS location" docs/src/site/twiki/DG_CommandLineTool.twiki Lines 117 (patched) <https://reviews.apache.org/r/64029/#comment280554> Again, ````DAGEngine```` is an implementation detail that we don't need to expose to the user. docs/src/site/twiki/DG_CommandLineTool.twiki Lines 118 (patched) <https://reviews.apache.org/r/64029/#comment280555> "an HDFS location" docs/src/site/twiki/DG_CommandLineTool.twiki Lines 1095 (patched) <https://reviews.apache.org/r/64029/#comment280558> ````queueName```` is a custom user-defined property, isn't it? Just like ````nameNode```` and ````JobTracker````. Does the Jobs API always require these three properties? While commonly used (because users often copy the examples where these are used), they're not officially standard. docs/src/site/twiki/DG_CommandLineTool.twiki Lines 1132 (patched) <https://reviews.apache.org/r/64029/#comment280559> Again, no need to mention ````DAGEngine```` docs/src/site/twiki/DG_JobsAPI.twiki Lines 11-13 (patched) <https://reviews.apache.org/r/64029/#comment280563> I think we shouldn't phrase this so anti-Oozie. Oozie competitors could then point at Oozie's docs and say "see, even Oozie itself thinks it's bad." Perhaps something like this: XML is the standard way of defining workflow, coordinator, or bundle jobs. For users who prefer an alternative, the Jobs API provides a Java interface instead. docs/src/site/twiki/DG_JobsAPI.twiki Lines 17 (patched) <https://reviews.apache.org/r/64029/#comment280564> "the following ways" docs/src/site/twiki/DG_JobsAPI.twiki Lines 19 (patched) <https://reviews.apache.org/r/64029/#comment280568> This also supports MapReduce. docs/src/site/twiki/DG_JobsAPI.twiki Lines 21 (patched) <https://reviews.apache.org/r/64029/#comment280569> You can also submit a generic wf, coord, or bundle via HTTP as well. docs/src/site/twiki/DG_JobsAPI.twiki Lines 23 (patched) <https://reviews.apache.org/r/64029/#comment280566> "to HDFS beforehand" docs/src/site/twiki/DG_JobsAPI.twiki Lines 28 (patched) <https://reviews.apache.org/r/64029/#comment280567> "to HDFS beforehand" docs/src/site/twiki/DG_JobsAPI.twiki Lines 34 (patched) <https://reviews.apache.org/r/64029/#comment280571> I don't think kill falls into this category. Only start and end are required: kill is not. Plus, you can have multiple kill nodes with more complicated logic. It sounds like this sentence isn't finished: "still need to ....." what? docs/src/site/twiki/DG_JobsAPI.twiki Lines 37 (patched) <https://reviews.apache.org/r/64029/#comment280572> Does the Jobs API not enforce this? docs/src/site/twiki/DG_JobsAPI.twiki Lines 46 (patched) <https://reviews.apache.org/r/64029/#comment280573> "define dependencies" docs/src/site/twiki/DG_JobsAPI.twiki Lines 47 (patched) <https://reviews.apache.org/r/64029/#comment280574> As a general thing on all of these bullet points in this doc, I think we should treat these as sentences; it's a bit inconsistent now. i.e. Start with a capital letter and end all sentences with a period. e.g. [E]liminate all boilerplate actions and transitions. Only the necessary bits should be defined[.] docs/src/site/twiki/DG_JobsAPI.twiki Lines 59 (patched) <https://reviews.apache.org/r/64029/#comment280575> Other places in the docs/CLI talk about coords and bundles, but here we say they're not supported. The statement about EL expressions is misleading. While it's not supported directly as Java equivalents, it is supported if you enter the EL expressions as strings in the right places. We should clarify this. docs/src/site/twiki/DG_JobsAPI.twiki Lines 61 (patched) <https://reviews.apache.org/r/64029/#comment280576> How does this work for backwards compatibility? i.e. If I generate a jar using wf schema 1.0 and then upgrade Oozie which includes a 1.1 schema, is my jar no longer accepted by Oozie? Do I need to recompile? Is it possible that the API has changed and it won't compile anymore? We should make sure to have a good story around backwards compatibility. I think it's reasonable to only _generate_ jars using the latest schema, but we should at least accept older jars, ideally without recompiling. docs/src/site/twiki/DG_JobsAPI.twiki Lines 62 (patched) <https://reviews.apache.org/r/64029/#comment280580> Another non-goal is user-supplied custom actions/XSDs. Only the built-in ones are supported. docs/src/site/twiki/DG_JobsAPI.twiki Lines 99 (patched) <https://reviews.apache.org/r/64029/#comment280582> Let's call this class ````MyFirstWorkflow```` docs/src/site/twiki/DG_JobsAPI.twiki Lines 108-109 (patched) <https://reviews.apache.org/r/64029/#comment280577> Can we switch the order of these two? I know it doesn't really matter, but it's easier to follow if we switch them. docs/src/site/twiki/DG_JobsAPI.twiki Lines 122 (patched) <https://reviews.apache.org/r/64029/#comment280578> "like this:" docs/src/site/twiki/DG_JobsAPI.twiki Lines 125 (patched) <https://reviews.apache.org/r/64029/#comment280579> Not a big deal (and this would be elsewhere in the actual code), but it would be nice if the generated workflow only contained references to the schemas that it's actually using. docs/src/site/twiki/DG_JobsAPI.twiki Lines 161 (patched) <https://reviews.apache.org/r/64029/#comment280583> Let's call this ````MySecondWorkflow```` docs/src/site/twiki/DG_JobsAPI.twiki Lines 162 (patched) <https://reviews.apache.org/r/64029/#comment280587> I like these examples - I think they're good for showing the new API. It would be great if we could add some examples to the examples module so users could more easily play with it. As you know, many users copy our example XML workflows as a starting place, so it would be good to provide some Java ones too. This can be done as a followup JIRA: please file one. docs/src/site/twiki/DG_JobsAPI.twiki Lines 198 (patched) <https://reviews.apache.org/r/64029/#comment280584> "like this:" docs/src/site/twiki/DG_JobsAPI.twiki Lines 277 (patched) <https://reviews.apache.org/r/64029/#comment280585> Again, let's not say how bad XML is: "tries to abstract away the task of assembly job" docs/src/site/twiki/DG_JobsAPI.twiki Lines 290-297 (patched) <https://reviews.apache.org/r/64029/#comment280586> These are empty.... jobs/jobs-api/pom.xml Lines 111-120 (patched) <https://reviews.apache.org/r/64029/#comment280590> It's unfortunate that we have to keep this manually :( I hope we don't forget to update this when adding new schema versions. Perhaps there's some way to write a unit test that would fail if a developer added a newer schema version and didn't update this? That would prevent this issue. jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ActionAttributes.java Lines 29 (patched) <https://reviews.apache.org/r/64029/#comment280592> Now that we're on Yarn, we should rename all ````jobTracker```` and similar to ````resourceManager```` and similar. The earlier version of the schemas the Jobs API is supporting is 1.0 (and friends), which all allow for ````<resource-manager>```` so we should use that and just never even start with anything Job Tracker. The generated XML should also use ````<resource-manager>```` only too. jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ErrorHandler.java Lines 23-34 (patched) <https://reviews.apache.org/r/64029/#comment280593> It would be good to add info about this to the twiki docs. It's a common pattern to have an email action from an error transition before hitting a kill node. Adding an example of that in the twiki docs would be great too :) jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Launcher.java Lines 38 (patched) <https://reviews.apache.org/r/64029/#comment280594> This constructor should be package private, right? jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/factory/SimpleWorkflowFactory.java Lines 34 (patched) <https://reviews.apache.org/r/64029/#comment280596> I think this should either be in the test archive/package and/or in the example artifact. jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/Decision.java Lines 32 (patched) <https://reviews.apache.org/r/64029/#comment280597> Should we make this, and other nodes that the user shouldn't need to use, private (or at least package-private the constructor)? jobs/jobs-client/pom.xml Lines 39 (patched) <https://reviews.apache.org/r/64029/#comment280600> I don't think setting the ````<version>```` here should be necessary. jobs/jobs-client/pom.xml Lines 45 (patched) <https://reviews.apache.org/r/64029/#comment280601> I don't think setting the ````<version>```` here should be necessary. jobs/jobs-client/pom.xml Lines 72 (patched) <https://reviews.apache.org/r/64029/#comment280599> I don't think setting the ````<version>```` here should be necessary. jobs/jobs-client/pom.xml Lines 78 (patched) <https://reviews.apache.org/r/64029/#comment280602> I don't think setting the ````<version>```` here should be necessary. jobs/jobs-client/pom.xml Lines 90 (patched) <https://reviews.apache.org/r/64029/#comment280603> I don't think setting the ````<version>```` here should be necessary. jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/examples/TestJavaMainExample.java Lines 35 (patched) <https://reviews.apache.org/r/64029/#comment280604> What are the "Test___Example" classes for? They look like they're unit tests but don't actually assert anything. While it's nice to have examples of all of the actions, I don't think anyone's going to look at these. Users won't because they won't know to look here for examples, and Oozie devs won't because these won't be failing (unless something is really wrong). Perhaps we should repurpose these for actual examples in the examples artifact instead? I suggested in a different comment that it would be good to have these because users often start with our XML examples when writing workflows. We can make this a followup JIRA if you want. In their current state, I'm not sure these are helping anyone. - Robert Kanter On March 20, 2018, 9:58 p.m., András Piros wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/64029/ > ----------------------------------------------------------- > > (Updated March 20, 2018, 9:58 p.m.) > > > Review request for oozie, Attila Sasvari, Peter Cseh, and Robert Kanter. > > > Repository: oozie-git > > > Description > ------- > > OOZIE-2339 Provide an API for writing jobs based on the XSD schemas > > > Diffs > ----- > > .gitignore a4285a0d77ac2e4e8fc4afbfa21bf9fd287b3e4d > client/pom.xml 31cd43fa5311484f92cc8d33b4fc7b4cf13d66c4 > client/src/main/java/org/apache/oozie/cli/ApiJarFactory.java PRE-CREATION > client/src/main/java/org/apache/oozie/cli/ApiJarLoader.java PRE-CREATION > client/src/main/java/org/apache/oozie/cli/OozieCLI.java > 4abc7502c0c9d8b59ded2baaed30c407ad073008 > client/src/main/java/org/apache/oozie/cli/WorkflowFactoryCompiler.java > PRE-CREATION > client/src/main/java/org/apache/oozie/client/OozieClient.java > 4c8175628ba5ee346d97ad984532662032b88acc > core/src/main/java/org/apache/oozie/BaseLocalOozieClient.java > 38fb006980c0acb582b4f91175be1ced8a1afa79 > core/src/main/java/org/apache/oozie/local/LocalOozie.java > 9ab646cd53223d903e387eb92aa103a7b6577d0f > core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java > e1bd3cf61aabfa4311881b2944fc9f10ffe9145d > core/src/main/java/org/apache/oozie/servlet/BaseJobsServlet.java > d4b08711223356c8d4f58a3391b6b87efa0a2b73 > core/src/main/java/org/apache/oozie/servlet/ServletUtilities.java > 9cdd915c02a3e34ad211cf6cced2e64f3a1196a0 > core/src/main/java/org/apache/oozie/servlet/V0JobsServlet.java > ff50f3d121d8af7d607124424915e1bf30ffb109 > core/src/main/java/org/apache/oozie/servlet/V1JobsServlet.java > c1ca65fd2f8bf0f3e5c618dddcba3bf52eaf5420 > core/src/main/java/org/apache/oozie/servlet/V2ValidateServlet.java > b86fa6ace43aead115302aad3ae15368b15f1923 > core/src/main/resources/oozie-default.xml > 966dd29b20ffb4a627418d62403c0cec166dd147 > core/src/test/java/org/apache/oozie/client/TestOozieCLI.java > 3395cc25d27805444ba0b6463357c4ecff977ac1 > core/src/test/java/org/apache/oozie/test/MiniOozieTestCase.java > 12ede028655f2a30613a9f802e48cd3a27af6ed9 > docs/src/site/twiki/DG_CommandLineTool.twiki > a94201ded8451cc725b40e9f73182ecaa52be88a > docs/src/site/twiki/DG_JobsAPI.twiki PRE-CREATION > jobs/jobs-api/pom.xml PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/Condition.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/GraphVisualization.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/ModifyOnce.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ActionAttributes.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ActionAttributesBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Builder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ChFSBase.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ChFSBaseBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Chgrp.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ChgrpBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Chmod.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ChmodBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Delete.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/DistcpAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/DistcpActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/EmailAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/EmailActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ErrorHandler.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/FSAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/FSActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/HasAttributes.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Hive2Action.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Hive2ActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/HiveAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/HiveActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/JavaAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/JavaActionBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Launcher.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/LauncherBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/MapReduceAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/MapReduceActionBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Mkdir.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Move.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Node.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/NodeBuilderBaseImpl.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/PigAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/PigActionBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Pipes.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/PipesBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Prepare.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/PrepareBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ShellAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/ShellActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/SparkAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/SparkActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/SqoopAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/SqoopActionBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/SshAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/SshActionBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Streaming.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/StreamingBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/SubWorkflowAction.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/SubWorkflowActionBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/action/Touchz.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/factory/SimpleWorkflowFactory.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/factory/WorkflowFactory.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/BooleanToFLAGConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/BooleanToShellFLAGConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/BooleanToSshFLAGConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/CredentialsConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/DecisionConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/DistcpConfigurationConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/DistcpPrepareConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/DozerBeanMapperSingleton.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/ExplicitNodeConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/ForkConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/GlobalConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/GraphNodes.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/GraphNodesToWORKFLOWAPPConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/GraphToWORKFLOWAPPConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/Hive2ConfigurationConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/Hive2LauncherConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/Hive2PrepareConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/HiveConfigurationConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/HiveLauncherConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/HivePrepareConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/InlineWorkflowConfigurationConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/InlineWorkflowLauncherConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/InlineWorkflowPrepareConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/JoinConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/MapToConfigurationPropertyConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/ParametersConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/RealChildLocator.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/ShellConfigurationConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/ShellLauncherConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/ShellPrepareConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/SparkConfigurationConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/SparkLauncherConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/SparkPrepareConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/SqoopConfigurationConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/SqoopLauncherConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/SqoopPrepareConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/mapping/StartConverter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/DagNodeWithCondition.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/Decision.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/DecisionJoin.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/End.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/ExplicitNode.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/Fork.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/Graph.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/Join.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/JoiningNodeBase.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/NodeBase.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/oozie/dag/Start.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/serialization/WorkflowMarshaller.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/ConfigurationEntry.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/Credential.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/Credentials.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/CredentialsBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/Global.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/GlobalBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/Parameter.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/Parameters.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/ParametersBuilder.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/Workflow.java > PRE-CREATION > > jobs/jobs-api/src/main/java/org/apache/oozie/jobs/api/workflow/WorkflowBuilder.java > PRE-CREATION > jobs/jobs-api/src/main/resources/action_mappings.xml PRE-CREATION > jobs/jobs-api/src/main/resources/checkstyle-header.txt PRE-CREATION > jobs/jobs-api/src/main/resources/checkstyle.xml PRE-CREATION > jobs/jobs-api/src/main/resources/dozer_config.xml PRE-CREATION > jobs/jobs-api/src/main/resources/mappingGraphToWORKFLOWAPP.xml PRE-CREATION > jobs/jobs-api/src/main/xjb/bindings.xml PRE-CREATION > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/NodesToPng.java > PRE-CREATION > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/TestCondition.java > PRE-CREATION > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/TestModifyOnce.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestActionAttributesBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestChBaseBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestChgrpBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestChmodBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestDelete.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestDistcpActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestEmailActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestErrorHandler.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestFSActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestHive2ActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestHiveActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestJavaActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestLauncherBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestMapReduceActionBuilder.java > PRE-CREATION > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestMove.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestNodeBuilderBaseImpl.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestPigActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestPipesBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestPrepareBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestShellActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestSparkActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestSqoopActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestSshActionBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestStreamingBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestSubWorkflowBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/action/TestTouchz.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestConfigurationMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestControlNodeMappingBase.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestCredentialsMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestDecisionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestDeleteMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestDistcpActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestEmailActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestEndMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestExplicitNodeMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestFSActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestForkMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestGlobalMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestGraphMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestHive2ActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestHiveActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestJavaActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestJoinMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestMapReduceActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestMappings.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestMkdirMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestParametersMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestPigActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestPipesMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestPrepareMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestShellActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestSparkActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestSqoopActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestSshActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestStartMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestStreamingMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/mapping/TestSubWorkflowActionMapping.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestDecision.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestDecisionJoin.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestEnd.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestExplicitNode.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestFork.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestGraph.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestJoin.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestJoiningNodeBase.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestNodeBase.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/oozie/dag/TestStart.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/workflow/TestCredentialsBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/workflow/TestGlobalBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/workflow/TestParametersBuilder.java > PRE-CREATION > > jobs/jobs-api/src/test/java/org/apache/oozie/jobs/api/workflow/TestWorkflowBuilder.java > PRE-CREATION > jobs/jobs-client/pom.xml PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/examples/TestCredentialsExample.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/examples/TestGlobalExample.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/examples/TestJavaMainExample.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/examples/TestParametersExample.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/examples/TestShellExample.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/examples/TestSparkExample.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/jaxb/TestJAXBWorkflow.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestDistcpAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestEmailAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestFSAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestHive2Action.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestHiveAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestJavaAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestMapReduceAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestPigAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestShellAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestSparkAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestSqoopAction.java > PRE-CREATION > > jobs/jobs-client/src/test/java/org/apache/oozie/jobs/client/minitest/TestSshAction.java > PRE-CREATION > jobs/jobs-client/src/test/resources/workflow-all-actions.xml PRE-CREATION > jobs/jobs-client/src/test/resources/workflow-mapreduce-action.xml > PRE-CREATION > jobs/pom.xml PRE-CREATION > minitest/pom.xml 220cdfd3ef4ecfd2038485d3da6330c58c3435e8 > minitest/src/test/java/org/apache/oozie/test/TestWorkflow.java > 4257b60b132d40a9bbaf24ec75ae1a125ecb6855 > minitest/src/test/java/org/apache/oozie/test/WorkflowTestCase.java > PRE-CREATION > pom.xml 274a04715935437f74601e44a8522649dcd1c433 > > > Diff: https://reviews.apache.org/r/64029/diff/5/ > > > Testing > ------- > > More hundred JUnit test cases under `jobs-api` module. Some of these leverage > `TestWorkflow` from `minitest` that uses `OozieClient`, `MiniDFSCluster`, > `MiniMRCluster` for integration testing. > > > Thanks, > > András Piros > >
