diff --git a/docs/manual/deployment/packaging.md b/docs/manual/deployment/packaging.md index 0642eb8..e887ad9 100644 --- a/docs/manual/deployment/packaging.md +++ b/docs/manual/deployment/packaging.md @@ -11,7 +11,7 @@ Frank configurations can be packaged as `.zip` or `.jar` files for deployment. R ## Archive Structure ``` -my-config/BuildInfo.properties +META-INF/MANIFEST.MF my-config/Configuration.xml my-config/Data.xml my-config/webcontent/index.html @@ -24,15 +24,6 @@ Rules: - Frontend code goes in `/webcontent/` - Java `.class` files are siblings of the configuration root directory (not inside it) -## BuildInfo.properties - -```properties -configuration.version=1 -configuration.timestamp=20250807-163000 -``` - -Version information is read from `BuildInfo.properties` in uploaded archives for database deployment. - ## Maven Parent POM Use the Frank!Framework configuration parent POM to handle packaging automatically: @@ -41,7 +32,7 @@ Use the Frank!Framework configuration parent POM to handle packaging automatical org.frankframework configuration-parent - 10.1.0 + 10.2.0 ``` @@ -61,6 +52,69 @@ The resulting `.war` file (in `target/`) is deployed by placing it in the applic WAR-based deployments integrate with CI/CD pipelines (Jenkins, GitLab CI, GitHub Actions). -## Loading Multiple Configurations +## Uploading Multiple Configurations in the console Pack all configuration JAR files into a single `.zip` file. Use the "Multiple Configurations" checkbox in the "Upload Configuration" screen and upload the zip. + +## Using autoload of multiple configurations with Docker compose + +When using Docker, you can autoload multiple configurations by placing them in a directory and mounting it to `/opt/frank/configurations` in the container. +The Frank!Framework will automatically load all configurations found in that directory if you use: +``` + environment: + - configurations.directory.autoLoad=true +``` + +We have a maven module which defines the base for a configuration jar file. This is the `configuration-parent` module. It is available in the +Maven Central repository. You can use it as a parent POM for your configuration project. +Assuming you have two configurations named `Configuration1` and `Configuration2` residing in the `src/main/configurations` directory of your project. +There's also a `src/main/resources` directory which contains some resources that will be copied to the root of the jar file. The `pom.xml` file would look +like this: + +``` + + + 4.0.0 + + + org.frankframework + configuration-parent + 10.3.0-SNAPSHOT + + + multiple-configs + + + Configuration1, Configuration2 + 10.3.0-SNAPSHOT + 25 + 25 + UTF-8 + + + + install + + + ${project.basedir}/src/main/configurations + + + ${project.basedir}/src/main/resources + + + ... + +``` + +Building this would result in a `.jar` file with the following structure: +* META-INF + * MANIFEST.MF +* Configuration1 + * Configuration.xml +* Configuration2 + * Configuration.xml +* DeploymentSpecifics.properties (copied from `/src/main/resources`) +* resources.yml (copied from `/src/main/resources`) + +In the pom.xml file we have defined the configurations that are contained in the jar file using the property `Configuration1, Configuration2`. +The configuration names must differ from the `${instance.name}` property.