FALCON-2073 Handle with NULL corner case

Changes:
1. EntityGraph::getDependents should return empty list instead of NULL value if there is no dependent entities. Affected method include OozieWorkflowEngine::updateDependant and AbstractEntityManager::getDependencies. Also removed unnecessary existing NULL checks after the change.
2. In LogProvider::populateActionLogUrls, handle with the NULL case where there is no file status under the specified path.
3. FalconClient::getDependency should return empty list instead of NULL value if there is no dependent entities. Affected method include FalconEntityCLI::entityCommand.

Extra minor changes in this patch:
4. A regular expression misusage in LogProvider::getActionName. To match special character ".", should use "[.]" instead of "." which will try to match any character.
5. Fix a rat check error in Falcon CLI due to the introduction of Spring shell commands.

Author: yzheng-hortonworks <yzheng@hortonworks.com>

Reviewers: Peeyush <peeyushb@apache.org>, Balu <balu@apache.org>

Closes #223 from yzheng-hortonworks/FALCON-2073 and squashes the following commits:

526b0ad [yzheng-hortonworks] review by balu
33c5420 [yzheng-hortonworks] revision
c69f9a4 [yzheng-hortonworks] FALCON-2073 Handle with NULL corner case
7 files changed
tree: 04745cb117f2ccef518185457e508baef1970ae4
  1. acquisition/
  2. addons/
  3. archival/
  4. build-tools/
  5. cli/
  6. client/
  7. common/
  8. distro/
  9. docs/
  10. examples/
  11. extensions/
  12. falcon-regression/
  13. falcon-ui/
  14. hadoop-dependencies/
  15. html5-ui/
  16. lifecycle/
  17. messaging/
  18. metrics/
  19. monitoring/
  20. oozie/
  21. oozie-el-extensions/
  22. prism/
  23. replication/
  24. rerun/
  25. retention/
  26. scheduler/
  27. src/
  28. test-tools/
  29. test-util/
  30. titan/
  31. unit/
  32. webapp/
  33. .gitignore
  34. .reviewboardrc
  35. CHANGES.txt
  36. falcon_merge_pr.py
  37. Installation-steps.txt
  38. LICENSE.txt
  39. NOTICE.txt
  40. pom.xml
  41. README.md
README.md

Apache Falcon

Falcon is a feed processing and feed management system aimed at making it easier for end consumers to onboard their feed processing and feed management on hadoop clusters.

Why Apache Falcon?

  • Dependencies across various data processing pipelines are not easy to establish. Gaps here typically leads to either incorrect/partial processing or expensive reprocessing. Repeated duplicate definition of a single feed multiple times can lead to inconsistencies / issues.

  • Input data may not arrive always on time and it is required to kick off the processing without waiting for all data to arrive and accommodate late data separately

  • Feed management services such as feed retention, replications across clusters, archival etc are tasks that are burdensome on individual pipeline owners and better offered as a service for all customers.

  • It should be easy to onboard new workflows/pipelines

  • Smoother integration with metastore/catalog

  • Provide notification to end customer based on availability of feed groups (logical group of related feeds, which are likely to be used together)

Online Documentation

You can find the documentation on Apache Falcon website.

How to Contribute

Before opening a pull request, please go through the Contributing to Apache Falcon wiki. It lists steps that are required before creating a PR and the conventions that we follow. If you are looking for issues to pick up then you can look at starter tasks or open tasks

Release Notes

You can download release notes of previous releases from the following links.

0.8

0.7