Content Package Properties

One of the most important meta files of a content package is the properties.xml which is present in the META-INF/vault directory. It defines defines several meta data around the content package itself which are just used for informational purpose (like lastModifiedBy) and other properties which actually influence how the package is installed (like subPackageHandling). In addition to that there is the MANIFEST.MF within META-INF which contains only informational metadata.

properties.xml

The properties.xml follows the format of a Java properties file in XML format as defined by java.util.Properties. The individual keys are defined within PackageProperties.

Example:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>FileVault Package Properties</comment>
<entry key="createdBy">admin</entry>
<entry key="name">acs-aem-commons-content</entry>
<entry key="lastModified">2018-06-14T11:50:32.369+02:00</entry>
<entry key="lastModifiedBy">admin</entry>
<entry key="requiresRestart">false</entry>
<entry key="acHandling">merge</entry>
<entry key="created">2018-06-14T11:50:34.431+02:00</entry>
<entry key="buildCount">1</entry>
<entry key="version">3.15.0</entry>
<entry key="requiresRoot">false</entry>
<entry key="dependencies">day/cq60/product:cq-content:6.2.136</entry>
<entry key="packageFormatVersion">2</entry>
<entry key="description">Maven Multimodule project for ACS AEM Commons.</entry>
<entry key="group">adobe/consulting</entry>
<entry key="lastWrapped">2018-06-14T11:50:32.369+02:00</entry>
<entry key="lastWrappedBy">admin</entry>
</properties>

Entries

PropertyDescriptionRequiredDefault
nameThe name of the package. Determines the entry node under which this package would be uploaded to a repository.yesn/a
groupThe group of the package, determines the ancestor node under which the package would be uploaded to a repository.yesn/a
versionThe version of the packageyesn/a
descriptionA description of the packagenoempty
lastModifiedA date string in the format ±YYYY-MM-DDThh:mm:ss.SSSTZD specifying when the package has been last modified (see also ISO8601)noempty
lastModifiedByA user name indicating who last modified this packagenoempty
buildCountAn integer indicating how often this package has been builtnoempty
dependenciesComma-separated list of dependencies. Each dependency has the format <group>:<name>:<version or versionrange>. See Dependencies.noempty
dependencies-locationsOptional comma-separated list of dependencies' locations. Each item has the format <package-id>=<uri>. Currently FileVault Package Maven Plugin is using a URI scheme for Maven coordinates like maven:<groupId>:<artifactId>:<version>[[:<classifier>]:packaging].noempty
createdA date string in the format ±YYYY-MM-DDThh:mm:ss.SSSTZD specifying when the package has been created initially (see also ISO8601)noempty
createdByA user name indicating who initially created this packagenoempty
lastWrappedA date string in the format ±YYYY-MM-DDThh:mm:ss.SSSTZD specifying when the package has been last wrapped (i.e. rebuilt) (see also ISO8601)noempty
lastWrappedByA user name indicating who last modified this packagenoempty
acHandlingSee AccessControlHandling.noignore
cndPatternA Java regular expression pattern which specifies where to look for CND files within the given package (in addition to all *.cnd files below META-INF/vault)no`^/(apps
requiresRootIf set to true indicates that only admin sessions can install this packagenofalse
requiresRestartIf set to true indicates that the system should be restarted after this package has been installednofalse
noIntermediateSavesIf set to true indicates no intermediate saves should be performed while installing this packagenofalse
subPackageHandlingsee SubPackageHandlingno*;install
useBinaryReferencesIf set to true indicates that binary references should be used instead of the actual binarynofalse
packageTypePossible values: application: An application package consists purely of application content. It serializes entire subtrees with no inclusion or exclusion filters. it does not contain any subpackages nor OSGi configuration or bundles.content: A content package consists only of content and user defined configuration. It usually serializes entire subtrees but can contain inclusion or exclusion filters. it does not contain any subpackages nor OSGi configuration or bundles.container: A container package only contains sub packages and OSGi configuration and bundles. The container package is only used as container for deployment.mixed: Catch all type for a combination of the above.Compare with JCRVLT-170no?
installhook.<name>.classThe FQN of the class which acts as an install hook. The <name> can be an arbitrary string (but must not contain a dot).non/a
packageFormatVersionThe version of this package as integer value. Versions newer than 2 are not yet supported during installation.no2
allowIndexDefinitionsIf set to true indicates that the package contains an Oak Index Definition. Otherwise the package is not supposed to contain an index definition. This may be important to know prior to installation as installing/updating an index definition might have a severe performance impact especially on large repositoriesnofalse
groupIdThe Maven groupId of the underlying Maven module from which this package was built. Only set if built via the FileVault Package Maven Pluginnon/a
artifactIdThe Maven artifactId of the underlying Maven module from which this package was built. Only set if built via the FileVault Package Maven Pluginnon/a

Manifest File

Since version 3.1.40 (JCRVLT-32) properties are now also partly stored within the MANIFEST.MF of the ZIP content package. Currently those are not evaluated during installation, though. All attributes which are currently being generated are listed in AbstractExporter.

AttributeDescription
Content-Package-DependenciesSame as dependencies within the properties.xml
Content-Package-Dependencies-LocationsSame as dependencies-locations within the properties.xml
Content-Package-DescriptionSame as description within the properties.xml
Content-Package-TypeSame as packageType within the properties.xml
Content-Package-IdThe string format of the PackageId
Content-Package-RootsAll filter roots coming from the filter.xml in a string. The individual roots are concatenated by ,
Import-PackageTaken over from the OSGi specification. Contains a list of all Java packages being used by scripts/classes contained in this content package. Currently only being generated by the filevault-package-maven-plugin but not through the exporter API.