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 Detail

      • SCHEMAS_DIR

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

        static final com.yahoo.path.Path SEARCH_DEFINITIONS_DIR
      • 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
      • 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
    • Method Detail

      • getApplicationName

        @Deprecated
        String getApplicationName()
        Deprecated.
        do not use
        The name of the application package
        Returns:
        the name of the application (i.e the directory where the application package was deployed from)
      • 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)
      • searchDefinitionContents

        @Deprecated
        default Collection<com.yahoo.io.reader.NamedReader> searchDefinitionContents()
        Deprecated.
        use getSchemas() instead
        Readers for all the search definition files for this.
        Returns:
        a list of readers for search definitions
      • 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
      • getClientSecurityFile

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

        String getHostSource()
      • getServicesSource

        String getServicesSource()
      • 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)
      • 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()
      • 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