Skip to main content
DevOps icon showing cogs

This post is from the XebiaLabs blog and has not been updated since the original publish date.

Last Updated Feb 18, 2013 — DevOps Expert

XL Deploy Cookbook: Creating a Deployment Package using the XL Deploy UI


Deployment Packages are usually created outside of XL Deploy. For example, packages are built by tools like Maven or Jenkins and then imported using a XL Deploy plugin. (See documentation of the Maven XL Deploy Plugin and Jenkins XL Deploy Plugin). Or you manually write a Manifest.MF file for the XL Deploy Archive format (DAR format) and import the package using the XL Deploy UI. Designing a Deployment Package can sometimes be a cumbersome process. To quickly assemble a package, it is more convenient to edit it in the XL Deploy UI.Note: You should be running XL Deploy 3.8 or higher.

Creating an application

In XL Deploy, all deployable content is stored in a Deployment Package. The Deployment Package will contain the EAR files, HTML files, SQL scripts, DataSource definitions, etc. Deployment Packages are versions of an Application. An application will contain one or more Deployment Packages. So before we can create a Deployment Package, we need to create an Application. To create an application, login to the XL Deploy UI and go to the Repository tab. Right-click on Applications and choose New ► udm ► udm.ApplicationimageGive it the name 'MyApp' and press save.

Creating a Deployment Package

Now let's create a Deployment Package that has all the content of version 1.0 of Myapp. Right-click on MyApp and choose New ► udm.DeploymentPackageimageGive it the name '1.0' and press save. We now have an empty MyApp 1.0 package.

Adding Deployable content

We're now ready to add actual deployable content to the package. Remember that in XL Deploy, all configuration items (nodes in the repository tree) are typed. That is, you have to tell XL Deploy on beforehand which type a configuration item is, so XL Deploy will know what to do with it. First we'll add a simple deployable without file content. Let's create a deployable DataSource in the package. Right-click on MyApp and choose New ► jee ► jee.DataSourceSpecimageGive it the name 'MyDataSource' and JNDI-name 'jdbc/my-data-source'. Press Save. That's it! We've just created a functional Deployment Package that will create a DataSource when deployed to a JEE Application Server like JBoss or WebSphere.

Adding artifacts

Artifacts are configuration items that contain files. Examples are EAR files, WAR files, but also plain files or folders. Let's add an EAR file to our MyApp/1.0 deployment package. It will be of type jee.Ear. Note that if you're using specific middleware like WebSphere or WebLogic, you also have the option to add and EAR of type was.Earor wls.Ear. Only use this if you really need WebSphere or WebLogic-specific features. The jee.Eartype will deploy just fine too. Right-click on MyApp and choose New ► jee ► jee.EarimageGive it the name 'PetClinic.ear'. We can now upload the actual EAR file. Hit 'Browse file' and select an EAR file from your local workstation. If you're running the XL Deploy Server locally, you can find an example EAR file in XL Deploy-server/importablePackages/PetClinic-ear/1.0/PetClinic-1.0.ear. When creating artifacts (configuration items with file content), there are some things to take into account. First, you can only upload files when creating the configuration item. It's not possible to change the content afterwards. The reason for this is that Deployment Packages should effectively be read-only. If you change the contents, you may create inconsistencies between what has deployed onto the middleware and what is in the XL Deploy repository. This may lead to surprising errors. Placeholder scanning of files is only done when they're uploaded. Use the 'Scan Placeholder' checkbox to enable or disable placeholder scanning of files. When uploading entire directories for the file.Folder type, you will need to zip the directory first, since you can only select a single file for browser upload.

Specifying property placeholders

It's easy to specify property placeholders. For any deployable configuration item, you can enter a value surrounded by double curly brackets. For example: {{PLACEHOLDER}}. The actual value used in a deployment will be looked up from a dictionary when a deployment mapping is made. For example, open MyDataSource and enter JNDI_VALUE as placeholder:imageThe value for Jndi Name will be looked up form the dictionary associated with environment you deploy to.

Export as DAR

When you're finished modeling the application, you can export it as a DAR file. Once downloaded, you can unzip it and inspect its contents. For example, the generated manifest file can server as a basis for automatic generation of the DAR. To export as DAR, right-click on '1.0' and choose 'Export'image

More from the Blog

View more
Ascension Launch Banner
Apr 26, 2022

Get ready for peak performance with’s newest AI-Powered DevOps Platform Ascension Release

Today, is excited to announce our latest AI-Powered DevOps ...
Read More
Jan 24, 2022 Value Stream Delivery for SAFe®: The key to amazing business outcomes

The Scaled Agile Framework (SAFe) is the world’s leading framework for ...
Read More
Dec 09, 2021

How SaaS and cloud-based solutions helped the U.S. Department of Veterans Affairs achieve digital transformation

Modernizing legacy systems was an ongoing goal for the U.S. Department ...
Read More
Nov 29, 2021

Increase velocity and reduce risk with AI and machine learning

Artificial Intelligence (AI) and machine learning (ML) have proven use ...
Read More
Contact Us