Introduction
WSO2 App Factory supports the development of many types of enterprise applications such as Web apps, JAX-WS Service, JAX-RS Service, BPEL process, Data Services etc. We work on facilitating all of the commonly-used application types with every new version. In the meantime, if you cannot find a particular application type, you can add it using the <ApplicationType>
element in <AF_HOME>/repository/conf/appfactory/appfactory.xml
file. It defines maven archetype properties used to generate the project structure.
You can add your own application types into App Factory, provided they are related to the supported types. i.e. Web Applications, JAX-RS, JAX-WS, Jaggery etc.
Sample configuration
Following sample code shows how to add a new application type to App Factory:
<ApplicationType name="war"> <Property name="ProcessorClassName">org.wso2.carbon.appfactory.utilities.application.type.MavenBasedApplicationTypeProcessor</Property> <Property name="DisplayName">Web Application</Property> <Property name="Extension">war</Property> <Property name="Description">Web Application Archive file</Property> <Property name="BuildJobTemplate">maven</Property> <Property name="MavenArcheTypeRequest">-DarchetypeGroupId=org.wso2.carbon.appfactory.maven.archetype -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.0.0 -DgroupId=org.wso2.af -Dversion=SNAPSHOT -DinteractiveMode=false -DarchetypeCatalog=local</Property> <Property name="ServerDeploymentPaths">webapps</Property> <Property name="Enable">enabled</Property> </ApplicationType>
The elements of the sample configuration are explained below. You can use this information to edit the file according to your requirements.
XML elements of the sample code
Property Name | Description | Type | Default Value | Fixed Values | Mandatory/Optional |
---|---|---|---|---|---|
<ApplicationType name=""> | The type of the application archive. Currently App Factory supports Web Application (war), JAX-RS (jaxrs), JAX-WS (jaxws), WSO2 BPS (bpel), Data Services (dbs) and WSO2 Jaggery (jaggery). You can specify a type on your own as well, but they should be related to the supported types | String | |||
<Property name="ProcessorClassName"> | Class name of application implementation type. | ||||
<Property name="DisplayName"> | Display name of application type. This is the name that you will be shown as "Application Type", when you are selecting the application type at the time of Application creation. | String | |||
<Property name="Extension"> | Extension of application archive. App Factory supports the following types and archive names: Web Application: war JAX-RS: war JAX-WS: war WSO2 BPS: zip Data Services: dbs WSO2 Jaggery: war | String | war, zip, dbs | ||
<Property name="Description"> | Detailed description of application type. | String | |||
<Property name="BuildJobTemplate"> | Build job configuration template name for jenkins application build. | ||||
<Property name="MavenArcheTypeRequest"> | Maven Archetype Request for build. Change archive type based on application type. | ||||
<Property name="ServerDeploymentPaths"> | Server deployment path. | ||||
<Property name="Enable"> | Define application type is enabled or not. | String | enabled, disabled |
For information on creating different types of applications, see Creating an Application.