Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

The intend of this wiki page is to document the key concepts around CDAP Application.

Artifacts repository

  • Deployed JARS
    • Can be application, can be plugin or anything that CDAP supports.
    • Identified by typename and version.
    • Deployed JARS are immutable
      • For snapshot jar deployment, the deployment timestamp will be used to generate a unique version
        • Similar to how maven repo works

Application

  • An Application can declares what configuration properties it needs
  • Configure method to generate Application Specification
    • Through the configurer
    • A set of properties can be submitted on application deployment and available in the Application.configure method
      • Application can configure itself based on those properties
  • Application can be extended by cloning. Conceptually it is like prototypal inheritance. There is no class (template), only instance (Application).
    • On cloning, a set of properties can be submitted through the clone (REST) call
    • The Application.configure() method will be called again to generate a new Application Specification for the newly cloned app
      • The set of properties submitted through the clone call will be merged with the source app properties
      • There can be a known set of properties that the platform will interpret automatically (same applies to the original app deployment)
        • Adding of schedulers, plugins usage, etc.

 

Program

  • A Program can declares what configuration properties it needs

 

Properties

There are three places where property values can be defined:

  • When application is configured
  • Per cluster (preferences store)
  • When program starts (runtime arguments)

When a program runs, property values defined in all these places should be merged to form a single set of properties with the precedence of

  Application configure < Preferences store < Runtime arguments

Some properties can be marked as "final" so that it cannot be modified after application configured.

  • Do we need "final" at different level?

 

 

  • No labels