Interface ApplicationPackage


public interface ApplicationPackage
Represents an application package, that is, used as input when creating a VespaModel and as a general reference to all contents in an application.
Author:
Vegard Havdal
  • Field Details

    • HOSTS

      static final String HOSTS
      See Also:
    • SERVICES

      static final String SERVICES
      See Also:
    • SCHEMAS_DIR

      static final com.yahoo.path.Path SCHEMAS_DIR
    • SEARCH_DEFINITIONS_DIR

      static final com.yahoo.path.Path SEARCH_DEFINITIONS_DIR
    • COMPONENT_DIR

      static final String COMPONENT_DIR
      See Also:
    • SEARCHCHAINS_DIR

      static final String SEARCHCHAINS_DIR
      See Also:
    • DOCPROCCHAINS_DIR

      static final String DOCPROCCHAINS_DIR
      See Also:
    • PROCESSORCHAINS_DIR

      static final String PROCESSORCHAINS_DIR
      See Also:
    • ROUTINGTABLES_DIR

      static final String ROUTINGTABLES_DIR
      See Also:
    • MODELS_DIR

      static final com.yahoo.path.Path MODELS_DIR
      Machine-learned models - only present in user-uploaded package instances
    • MODELS_GENERATED_DIR

      static final com.yahoo.path.Path MODELS_GENERATED_DIR
      Files generated from machine-learned models
    • MODELS_GENERATED_REPLICATED_DIR

      static final com.yahoo.path.Path MODELS_GENERATED_REPLICATED_DIR
      Files generated from machine-learned models which should be replicated in ZooKeeper
    • CONSTANTS_DIR

      static final com.yahoo.path.Path CONSTANTS_DIR
      Constant tensors
    • CONFIG_DEFINITIONS_DIR

      static final String CONFIG_DEFINITIONS_DIR
      Do not use
      See Also:
    • QUERY_PROFILES_DIR

      static final com.yahoo.path.Path QUERY_PROFILES_DIR
    • QUERY_PROFILE_TYPES_DIR

      static final com.yahoo.path.Path QUERY_PROFILE_TYPES_DIR
    • PAGE_TEMPLATES_DIR

      static final com.yahoo.path.Path PAGE_TEMPLATES_DIR
    • RULES_DIR

      static final com.yahoo.path.Path RULES_DIR
    • DEPLOYMENT_FILE

      static final com.yahoo.path.Path DEPLOYMENT_FILE
    • VALIDATION_OVERRIDES

      static final com.yahoo.path.Path VALIDATION_OVERRIDES
    • SECURITY_DIR

      static final com.yahoo.path.Path SECURITY_DIR
    • SD_NAME_SUFFIX

      static final String SD_NAME_SUFFIX
      See Also:
    • RANKEXPRESSION_NAME_SUFFIX

      static final String RANKEXPRESSION_NAME_SUFFIX
      See Also:
    • RANKPROFILE_NAME_SUFFIX

      static final String RANKPROFILE_NAME_SUFFIX
      See Also:
    • RULES_NAME_SUFFIX

      static final String RULES_NAME_SUFFIX
      See Also:
    • EXT_DIR

      static final String EXT_DIR
      See Also:
    • PERMANENT_SERVICES

      static final String PERMANENT_SERVICES
      See Also:
  • Method Details

    • getApplicationId

      com.yahoo.config.provision.ApplicationId getApplicationId()
    • getServices

      Reader getServices()
      Contents of services.xml. Caller must close reader after use.
      Returns:
      a Reader, or null if no services.xml present
    • getHosts

      Reader getHosts()
      Contents of hosts.xml. Caller must close reader after use.
      Returns:
      a Reader, or null if no hosts.xml present
    • getUserIncludeDirs

      default List<String> getUserIncludeDirs()
      Returns the include dirs given by the user in the services.xml file.
    • validateIncludeDir

      default void validateIncludeDir(String dirName)
    • getAllExistingConfigDefs

      Map<com.yahoo.vespa.config.ConfigDefinitionKey,UnparsedConfigDefinition> getAllExistingConfigDefs()
      Returns all the config definitions available in this package as unparsed data.
    • getFiles

      List<com.yahoo.io.reader.NamedReader> getFiles(com.yahoo.path.Path pathFromRoot, String suffix, boolean recurse)
      Returns the files in a directory as readers. The readers must be closed by the caller.
      Parameters:
      pathFromRoot - the relative path string from the root of the application package
      suffix - the suffix of files to return, or null to return all
      recurse - return files in all subdirectories (recursively) as well
      Returns:
      a list of the files at this location, or an empty list (never null) if the directory does not exist or is empty. The list gets owned by the caller and can be modified freely.
    • getFiles

      default List<com.yahoo.io.reader.NamedReader> getFiles(com.yahoo.path.Path pathFromRoot, String suffix)
      Same as getFiles(pathFromRoot, suffix, false)
    • getMajorVersion

      default Optional<Integer> getMajorVersion()
      Returns the major version this application is valid for, or empty if it is valid for all versions
    • getFile

      ApplicationFile getFile(com.yahoo.path.Path relativePath)
      Returns information about a file
      Parameters:
      relativePath - the relative path of the file within this application package.
      Returns:
      information abut the file, returned whether or not the file exists
    • getQueryProfileFiles

      default List<com.yahoo.io.reader.NamedReader> getQueryProfileFiles()
      Does getFiles(com.yahoo.path.Path, java.lang.String, boolean) on the query profile directory and gets all xml files
    • getQueryProfileTypeFiles

      default List<com.yahoo.io.reader.NamedReader> getQueryProfileTypeFiles()
      Does getFiles(com.yahoo.path.Path, java.lang.String, boolean) on the query profile directory and gets all xml files
    • getPageTemplateFiles

      default List<com.yahoo.io.reader.NamedReader> getPageTemplateFiles()
      Does getFiles(com.yahoo.path.Path, java.lang.String, boolean) on the page template directory and gets all xml files
    • getClientSecurityFile

      default ApplicationFile getClientSecurityFile()
      Returns handle for the file containing client certificate authorities
    • getHostSource

      String getHostSource()
    • getServicesSource

      String getServicesSource()
    • getDeployment

      Optional<Reader> getDeployment()
    • getValidationOverrides

      Optional<Reader> getValidationOverrides()
    • getComponentsInfo

      List<ComponentInfo> getComponentsInfo(com.yahoo.component.Version vespaVersion)
    • getRankingExpression

      Reader getRankingExpression(String name)
      Reads a ranking expression from file to a string and returns it.
      Parameters:
      name - the name of the file to return, relative to the search definition directory in the application package
      Returns:
      the content of a ranking expression file
      Throws:
      IllegalArgumentException - if the file was not found or could not be read
    • getFileName

      static String getFileName(JarEntry je)
      The name of an SD in a JarEntry
    • getMetaData

      ApplicationMetaData getMetaData()
      Gets the ApplicationMetaData instance for this application package.
      Returns:
      an ApplicationMetaData instance
    • getFileReference

      File getFileReference(com.yahoo.path.Path pathRelativeToAppDir)
    • validateXML

      default void validateXML() throws IOException
      Throws:
      IOException
    • validateXMLFor

      default void validateXMLFor(Optional<com.yahoo.component.Version> vespaVersion) throws IOException
      Throws:
      IOException
    • writeMetaData

      default void writeMetaData() throws IOException
      Throws:
      IOException
    • getAllocatedHosts

      default Optional<com.yahoo.config.provision.AllocatedHosts> getAllocatedHosts()
      Returns the host allocation info of this, or empty if no allocation is available
    • getFileRegistries

      default Map<com.yahoo.component.Version,FileRegistry> getFileRegistries()
    • legacyOverrides

      default Map<String,String> legacyOverrides()
    • getSchemas

      Collection<com.yahoo.io.reader.NamedReader> getSchemas()
      Readers for all the schema files.
      Returns:
      a collection of readers for schemas
    • preprocess

      default ApplicationPackage preprocess(com.yahoo.config.provision.Zone zone, DeployLogger logger) throws IOException
      Preprocess an application for a given zone and return a new application package pointing to the preprocessed application package. This is the entry point for the multi environment application package support. This method will not mutate the existing application package.
      Parameters:
      zone - A valid Zone instance, used to decide which parts of services to keep and remove
      logger - A DeployLogger to add output that will be returned to the user
      Returns:
      A new application package instance pointing to a new location
      Throws:
      IOException