project

Ultra Projects

Version: 17.07

Overview

px runtime

Ultra Project is the basic deployment unit of Project-X runtime. Each Ultra Project is a bundled archive with the extension .xpr. An Ultra Project can typically have several Integration Flows and Subflows within it. Apart from those Integration Flows and subflows, a project can contain a set of resources defined as Spring beans that are required by its Integration Flows. Some of frequently used such resource definitions are for Database connection factories, JMS transaction managers, etc. In addition to those, it is possible to have a set of << environment_and_tags.html#environment-evaluators,Environment Evaluators>> that decide the status of the Project at an environment state change.

A single Project-X runtime can be used to deploy one or more Ultra Projects. While an Ultra Project relies on the Project-X runtime to provide the framework level dependencies, each Ultra Project is expected to have all the other dependencies required by its connectors, processing elements, features or any other resource to be contained within the archive. This "self-contained design" allows multiple projects with different dependency versions to be deployed in the same Project-X runtime without conflicting with each other.

Although this "self-contained design" is expected to eliminate most of the conflicts between Projects, it does not guarantee that any two projects can be deployed together seamlessly. It is still possible for the inter-project conflicts to arise due to the situations such as accessing of the same set of operating system level resources such as network ports.

Ultra Project Hierarchy

The file hierarchy of a typical Ultra Project archive looks as below.

─ sample-project-1.0
    ├── META-INF
    │   ├── MANIFEST.MF
    │   ├── maven
    │   │   └── org.adroitlogic.x.sample
    │   │       └── sample-project
    │   │           ├── pom.properties
    │   │           └── pom.xml
    │   └── project-info.json
    ├── classes
    │   └── org
    │       └── adroitlogic
    │           └── x
    │               └── sample
    │                   └── processor
    │                       └── ResponseModifier.class
    ├── conf
    │   └── sample
    │       └── http
    │           ├── cbr-proxy.xcml
    │           ├── direct-proxy.xcml
    │           ├── transport-header-proxy.xcml
    │           └── xslt-proxy.xcml
    ├── lib
    │   ├── commons-codec-1.6.jar
    │   ├── commons-csv-1.4.jar
    │   ├── commons-lang3-3.4.jar
    │   ├── commons-pool2-2.4.2.jar
    │   ├── httpclient-4.2.6.jar
    │   ├── httpcore-4.4.jar
    │   ├── httpcore-nio-4.4.jar
    │   ├── jackson-core-2.8.1.jar
    │   ├── x-connector-nio-http-17.01.jar
    │   ├── x-feature-file-store-17.01.jar
    │   ├── x-feature-xml-17.01.jar
    │   ├── x-processor-regular-extractor-17.01.jar
    │   ├── x-processor-regular-flow-control-17.01.jar
    │   ├── x-processor-regular-header-management-17.01.jar
    │   ├── x-processor-regular-logger-17.01.jar
    │   ├── x-processor-regular-transform-17.01.jar
    │   ├── x-processor-regular-validate-17.01.jar
    │   └── x-transport-nio-http-17.01.jar
    ├── project.xpml
    ├── resources
    │   └── default.properties
    └── src
        └── org
            └── adroitlogic
                └── x
                    └── sample
                        └── processor
                            └── ResponseModifier.java
In this topic
In this topic
Contact Us